Arduino Nano ESP32 - Türöffnungs-E-Mail-Benachrichtigung

Dieser Leitfaden zeigt Ihnen, wie Sie einen Arduino Nano ESP32 einrichten, um E-Mails zu senden, wenn eine Tür geöffnet wird. Wir besprechen, welche Komponenten notwendig sind, wie man sie einrichtet, und liefern eine Schritt-für-Schritt-Anleitung zum Verbinden eines Arduino Nano ESP32 mit einem Türsensor und einem E-Mail-Dienst. Dies wird Ihnen helfen, sofortige E-Mail-Benachrichtigungen zu erhalten, wann immer die Tür geöffnet wird, und Ihre Sicherheit zu Hause zu verbessern.

Arduino Nano ESP32 Türöffnung E-Mail-Benachrichtigung

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Türsensor
1×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Türsensor und Gmail

Wir bieten detaillierte Anleitungen zu Türsensoren und Gmail. Jede Anleitung enthält ausführliche Informationen und einfache, Schritt-für-Schritt-Anleitungen zum Einrichten der Hardware, zum Verständnis der Funktionsweise sowie zum Anschließen und Programmieren des Arduino Nano ESP32. Erfahren Sie mehr über diese Anleitungen, indem Sie auf diese Links klicken.

Schaltplan zwischen Türsensor und Arduino Nano ESP32

Arduino Nano ESP32 Türsensor-Schaltplan

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

Arduino Nano ESP32 Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-door-open-email-notification */ #include <WiFi.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 DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin D2 connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door 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(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door is opened"); String subject = "Email Notification from ESP32"; String textMsg = "This is an email sent from ESP32.\n"; textMsg += "Your door is opened"; gmail_send(subject, textMsg); } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door is closed"); } } 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.printf("Connection error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), smtp.errorReason().c_str()); 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.printf("Error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), 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()) { Serial.println("----------------"); Serial.printf("Email sent success: %d\n", status.completedCount()); Serial.printf("Email sent failed: %d\n", status.failedCount()); Serial.println("----------------\n"); for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.printf("Message No: %d\n", i + 1); Serial.printf("Status: %s\n", result.completed ? "success" : "failed"); Serial.printf("Date/Time: %s\n", MailClient.Time.getDateTimeString(result.timestamp, "%B %d, %Y %H:%M:%S").c_str()); Serial.printf("Recipient: %s\n", result.recipients.c_str()); Serial.printf("Subject: %s\n", result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Schnelle Schritte

Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Nano ESP32 in der Arduino IDE Tutorial zur Einrichtung der Umgebung für Arduino Nano ESP32 in der Arduino IDE.
  • Verbinden Sie das Arduino Nano ESP32-Board gemäß dem bereitgestellten Diagramm mit dem Türsensor.
  • Befestigen Sie den Türsensor an Ihrer Tür.
  • Verbinden Sie das Arduino Nano ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
  • Klicken Sie in der Arduino IDE auf das Library Manager-Symbol im linken Menü, um es zu öffnen.
  • Geben Sie im Suchfeld ESP Mail Client ein und suchen Sie ESP Mail Client von Mobizt.
  • Klicken Sie auf die Schaltfläche Install, um die ESP Mail Client-Bibliothek hinzuzufügen.
Arduino Nano ESP32 ESP-Mail-Client-Bibliothek
  • Kopieren Sie den gegebenen Code und öffnen Sie ihn in der Arduino IDE.
  • Geben Sie Ihre WiFi-Daten im Code ein. Ersetzen Sie WIFI_SSID und WIFI_PASSWORD durch Ihren Netzwerknamen und Ihr Passwort.
  • Ändern Sie die Absender-E-Mail-Adresse und das Passwort im Code. Ersetzen Sie SENDER_EMAIL und SENDER_PASSWORD durch Ihre eigene E-Mail-Adresse und Ihr Passwort.
  • Aktualisieren Sie RECIPIENT_EMAIL auf die E-Mail-Adresse, unter der Sie Nachrichten erhalten möchten. Dies kann bei Bedarf Ihre eigene E-Mail-Adresse sein.

※ Notiz:

Stellen Sie sicher, dass die E-Mail des Absenders von Gmail stammt. Verwenden Sie das App-Passwort, das Sie zuvor erhalten haben, als Passwort des Absenders. Die E-Mail-Adresse des Empfängers kann von jedem E-Mail-Anbieter stammen.

  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code an den Arduino Nano ESP32 zu senden.
  • Öffnen Sie den seriellen Monitor.
  • Öffnen Sie die Tür.
  • Überprüfen Sie die Ergebnisse auf dem seriellen Monitor.
COM6
Send
The door is opened #### 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 Nano ESP32 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Überprüfen Sie das E-Mail-Postfach der Person, an die Sie die E-Mail gesendet haben. Sie werden eine E-Mail finden, die so aussieht:
Arduino Nano ESP32 Türsensor 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!