Arduino - Notification par email du capteur de mouvement

Dans ce guide, nous vous montrerons comment utiliser un Arduino et un capteur de mouvement pour envoyer des e-mails lorsque quelqu'un entre dans votre pièce sans permission. Nous couvrirons comment tout configurer, ce dont vous avez besoin, et des instructions détaillées sur la connexion d'un Arduino et d'un capteur de mouvement à un système de messagerie électronique. Améliorez votre sécurité à domicile en recevant des notifications par e-mail instantanées grâce à l'Arduino.

Notification par e-mail du capteur de mouvement Arduino

Préparation du matériel

1×Arduino UNO R4 WiFi
1×USB Cable Type-C
1×HC-SR501 Motion Sensor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4
1×(Recommended) Breadboard Shield For Arduino UNO R4
1×(Recommended) Enclosure For Arduino UNO R4
1×(Recommended) Power Splitter For Arduino UNO R4

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de mouvement et de Gmail

Nous proposons des guides détaillés sur le capteur de mouvement et Gmail. Chaque guide fournit des informations complètes et des étapes faciles à suivre sur l'installation du matériel, son fonctionnement et comment connecter et programmer l'Arduino. Pour en savoir plus, visitez ces liens :

Schéma de câblage entre le détecteur de mouvement et l'Arduino

Schéma de câblage du capteur de mouvement Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-motion-sensor-email-notification */ #include <WiFiS3.h> #include <ESP_Mail_Client.h> #define WIFI_SSID "YOUR_WIFI_SSID" // CHANGE IT #define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" // CHANGE IT // the sender email credentials #define SENDER_EMAIL "xxxxxx@gmail.com" // CHANGE IT #define SENDER_PASSWORD "xxxx xxxx xxxx xxxx" // CHANGE IT to your Google App password #define RECIPIENT_EMAIL "xxxxxx@gmail.com" // CHANGE IT #define SMTP_HOST "smtp.gmail.com" #define SMTP_PORT 587 #define MOTION_SENSOR_PIN 2 // Arduino pin connected to motion sensor's pin int motion_state; // current state of motion sensor int prev_motion_state; // previous state of motion sensor SMTPSession smtp; void setup() { Serial.begin(9600); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("Connecting to Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); } Serial.println(); Serial.print("Connected with IP: "); Serial.println(WiFi.localIP()); Serial.println(); pinMode(MOTION_SENSOR_PIN, INPUT); motion_state = digitalRead(MOTION_SENSOR_PIN); // read state } void loop() { prev_motion_state = motion_state; // save the last state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // state change: LOW -> HIGH Serial.println("Motion detected! Someone is in your room!"); String subject = "Email Notification from ESP32"; String textMsg = "This is an email sent from ESP32.\n"; textMsg += "Motion detected! Someone is in your room!"; gmail_send(subject, textMsg); } } void gmail_send(String subject, String textMsg) { // set the network reconnection option MailClient.networkReconnect(true); smtp.debug(1); smtp.callback(smtpCallback); Session_Config config; // set the session config config.server.host_name = SMTP_HOST; config.server.port = SMTP_PORT; config.login.email = SENDER_EMAIL; config.login.password = SENDER_PASSWORD; config.login.user_domain = F("127.0.0.1"); config.time.ntp_server = F("pool.ntp.org,time.nist.gov"); config.time.gmt_offset = 3; config.time.day_light_offset = 0; // declare the message class SMTP_Message message; // set the message headers message.sender.name = F("ESP32"); message.sender.email = SENDER_EMAIL; message.subject = subject; message.addRecipient(F("To Whom It May Concern"), RECIPIENT_EMAIL); message.text.content = textMsg; message.text.transfer_encoding = "base64"; message.text.charSet = F("utf-8"); message.priority = esp_mail_smtp_priority::esp_mail_smtp_priority_low; // set the custom message header message.addHeader(F("Message-ID: <abcde.fghij@gmail.com>")); // connect to the server if (!smtp.connect(&config)) { Serial.println("Connection error"); return; } if (!smtp.isLoggedIn()) { Serial.println("Not yet logged in."); } else { if (smtp.isAuthenticated()) Serial.println("Successfully logged in."); else Serial.println("Connected with no Auth."); } // start sending Email and close the session if (!MailClient.sendMail(&smtp, &message)) { Serial.println("Connection error: "); Serial.print("- Status Code: "); Serial.println(smtp.statusCode()); Serial.print("- Error Code: "); Serial.println(smtp.errorCode()); Serial.print("- Reason: "); Serial.println(smtp.errorReason().c_str()); } } // callback function to get the Email sending status void smtpCallback(SMTP_Status status) { // print the current status Serial.println(status.info()); // print the sending result if (status.success()) { for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.print("Status: "); if (result.completed) Serial.println("success"); else Serial.println("failed"); Serial.print("Recipient: "); Serial.println(result.recipients.c_str()); Serial.print("Subject: "); Serial.println(result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Étapes rapides

  • Si vous utilisez Arduino pour la première fois, apprenez à le configurer avec l'IDE Arduino ici : Installation du logiciel Arduino..
  • Branchez la carte Arduino au capteur de mouvement.
  • Connectez la carte Arduino à votre ordinateur à l'aide d'un câble micro USB.
  • Démarrez l'IDE Arduino sur votre ordinateur.
  • Choisissez l'option de carte Arduino correcte, par exemple, Module de développement Arduino, et le port COM.
  • Accédez au Gestionnaire de Bibliothèques en cliquant sur l'icône du Gestionnaire de Bibliothèques à gauche de l'IDE Arduino.
  • Cherchez "ESP Mail Client" et trouvez la version par Mobizt.
  • Appuyez sur le bouton Installer pour ajouter la bibliothèque ESP Mail Client.
Bibliothèque Arduino ESP Mail Client
  • Copiez le code fourni et ouvrez-le dans l'IDE Arduino.
  • Modifiez les détails WiFi (nom du réseau et mot de passe) dans le code en mettant à jour WIFI_SSID et WIFI_PASSWORD avec vos informations réseau.
  • Changez l'email et le mot de passe de l'expéditeur dans le code en mettant à jour SENDER_EMAIL et SENDER_PASSWORD avec vos informations d'email.
  • Changez l'email du destinataire dans le code en mettant à jour RECIPIENT_EMAIL avec l'adresse email où vous souhaitez recevoir les messages. Cela peut être le même que l'email de l'expéditeur.

※ Note:

  • L'email que vous utilisez pour envoyer doit être un Gmail.
  • Utilisez le mot de passe de l'application que vous avez reçu à l'étape précédente pour le mot de passe de l'expéditeur.
  • L'adresse email à laquelle vous envoyez peut être de n'importe quel type.
  • Appuyez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à Arduino.
  • Ouvrez le Moniteur Série.
  • Déplacez-vous devant le capteur de mouvement.
  • Regardez le Moniteur Série pour voir les résultats.
COM6
Send
Motion detected! Someone is in your room! #### Email sent successfully > C: Email sent successfully ---------------- Message sent success: 1 Message sent failed: 0 ---------------- Message No: 1 Status: success Date/Time: May 27, 2024 04:42:50 Recipient: xxxxxx@gmail.com Subject: Email Notification from Arduino ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Regardez dans la boîte de réception de l'email de la personne à qui vous l'avez envoyé. Elle recevra un email similaire au suivant :
Capteur de mouvement Arduino email

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!