Arduino - Bewegungsmelder-E-Mail-Benachrichtigung

In diesem Leitfaden zeigen wir Ihnen, wie Sie einen Arduino und einen Bewegungsmelder verwenden, um E-Mails zu senden, wenn jemand ohne Ihre Erlaubnis Ihr Zimmer betritt. Wir werden erläutern, wie Sie alles einrichten, was Sie benötigen, und detaillierte Anleitungen zum Anschluss eines Arduino-Boards und eines Bewegungsmelders an ein E-Mail-System. Verbessern Sie die Sicherheit Ihres Zuhauses, indem Sie sofortige E-Mail-Benachrichtigungen vom Arduino erhalten.

Arduino-Bewegungssensor-E-Mail-Benachrichtigung

Über Bewegungssensor und Gmail

Wir bieten detaillierte Anleitungen zu Bewegungssensoren und Gmail. Jede Anleitung enthält vollständige Informationen und leicht nachvollziehbare Schritte zur Hardwareeinrichtung, Funktionsweise sowie zum Anschluss und zur Programmierung von Arduino. Erfahren Sie mehr, indem Sie diese Links besuchen:

Verdrahtungsdiagramm zwischen Bewegungsmelder und Arduino

Arduino-Bewegungssensor-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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(); } }

Schnelle Schritte

  • Wenn Sie Arduino zum ersten Mal verwenden, lernen Sie hier, wie Sie es mit der Arduino IDE einrichten: Anleitung zur Einrichtung der Arduino-Umgebung in der Arduino IDE.
  • Schließen Sie das Arduino-Board an den Bewegungsmelder an.
  • Schließen Sie das Arduino-Board über ein Micro-USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie die richtige Arduino-Board-Option, z. B. Arduino Dev Module, und den COM-Port aus.
  • Öffnen Sie den Library Manager, indem Sie auf das Symbol Library Manager auf der linken Seite der Arduino IDE klicken.
  • Suchen Sie nach "ESP Mail Client" und finden Sie die Version von Mobizt.
  • Drücken Sie die Schaltfläche Installieren, um die ESP Mail Client-Bibliothek hinzuzufügen.
Arduino ESP-Mail-Client-Bibliothek
  • Kopieren Sie den bereitgestellten Code und öffnen Sie ihn in der Arduino IDE.
  • Ändern Sie die WLAN-Daten (Netzwerkname und Passwort) im Code, indem Sie WIFI_SSID und WIFI_PASSWORD mit Ihren Netzwerkinformationen aktualisieren.
  • Ändern Sie die Absender-E-Mail-Adresse und das Passwort im Code, indem Sie SENDER_EMAIL und SENDER_PASSWORD mit Ihren E-Mail-Daten aktualisieren.
  • Ändern Sie die Empfänger-E-Mail im Code, indem Sie RECIPIENT_EMAIL mit der E-Mail-Adresse aktualisieren, unter der Sie Nachrichten erhalten möchten. Dies kann dieselbe sein wie die Absender-E-Mail.

※ Notiz:

  • Die E-Mail, die Sie zum Senden verwenden, muss eine Gmail-Adresse sein.
  • Verwenden Sie das App-Passwort, das Sie im vorherigen Schritt erhalten haben, als Passwort des Absenders.
  • Die E-Mail-Adresse, an die Sie senden, kann jede Art von E-Mail-Adresse sein.
  • Drücken Sie die Upload-Schaltfläche in der Arduino IDE, um den Code an Arduino zu senden.
  • Öffnen Sie den Seriemonitor.
  • Stellen Sie sich vor den Bewegungsmelder.
  • Schauen Sie im Seriemonitor nach, um die Ergebnisse zu sehen.
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  
  • Schauen Sie in das E-Mail-Postfach der Person, an die Sie es gesendet haben. Sie werden eine E-Mail erhalten, die dem Folgenden ähnlich ist:
Arduino Bewegungssensor E-Mail

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!