Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans ce tutoriel, je vais vous montrer comment détecter l'événement d'ouverture de porte et envoyer une notification via Gmail en utilisant Arduino Uno.
Si vous êtes débutant, vous pouvez en apprendre davantage sur le wifi et le capteur dans les didacticiels Arduino - WiFi et Arduino - Capteur de porte.
Commençons!
Détection d'événement d'ouverture de porte Le capteur magnétique que j'ai utilisé comprend deux parties: le capteur et l'aimant. Lorsque deux pièces sont à proximité, la broche de sortie du capteur est HAUTE, sinon la broche de sortie est BAS. Profitant de cette fonctionnalité, j'ai installé une partie du capteur sur le vantail de la porte et l'autre sur le cadre de la porte. En vérifiant l'état de la broche de sortie, nous pouvons détecter quand la porte est ouverte, puis émettre une alerte ou envoyer une notification.
Gestion de l'événement
Lorsque l'événement d'ouverture de porte se produit, une notification est envoyée via Gmail.
Étape 1: choses dont nous avons besoin
1. Arduino UNO ou Genuino UNO
2. Bouclier PHPoC pour Arduino
3. Capteur magnétique
Étape 2: Assemblage
1. Empilez PHPoC Shield sur Arduino.
2. Connectez le câble LAN au blindage pour Ethernet.
3. Câblage des broches entre l'Arduino et le capteur.
----5v --------- goupille rouge.
----A0-------broche noire.
Étape 3: Installez cet ensemble sur la porte
1. Fixez la partie capteur, l'ensemble Arduino (y compris le bouclier PHPoC) au cadre de la porte
2. Fixez la partie magnétique sur le vantail de la porte.
3. Alimentation Arduino
4. Connectez-vous à Internet via un câble LAN ou une clé USB Wifi.
Étape 4: Téléchargez et installez la bibliothèque sur Arduino
Installer PHPoC et la bibliothèque ezButton
Étape 5: Code Arduino
#comprendre
#inclure l'e-mail PhpocEmail; Bouton ezButton (A0); // crée un objet Button qui s'attache à la broche A0; void setup() { Serial.begin(9600); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP); //Phpoc.beginIP6(); décommentez cette ligne si vous allez utiliser le bouton IPv6.setDebounceTime(100); // définit le temps d'anti-rebond à 100 millisecondes } void loop() { button.loop(); // DOIT d'abord appeler la fonction loop() if(button.isPressed()) { // si la porte est ouverte… email.setOutgoingServer("smtp.gmail.com", 587); email.setOutgoingLogin("Google ID", "Google Password"); email.setFrom("Adresse Gmail ", "Nom de l'expéditeur"); email.setTo("Adresse e-mail du destinataire", "Nom du destinataire"); email.setSubject("La porte est ouverte. [#905]"); // Objet du courrier // Contenu du courrier email.beginMessage(); email.println("#905"); email.println(""); email.println("La porte est ouverte."); email.endMessage(); if (email.send() > 0) // Envoyer un e-mail Serial.println("Votre courrier a été envoyé avec succès"); else Serial.println("Votre courrier n'est pas envoyé"); } else if (button.isReleased()) { // si la porte est fermée… // Écrire les codes de la même manière } }
Étape 6: Références de fonction
- boucle()
- mettre en place()
- Serial.begin()
- Serial.println()
- retard()
- pour boucle
- boucle while
- sinon
- Chaîne.àInt()