Dieser Leitfaden zeigt Ihnen, wie Sie einen ESP8266 so einrichten, dass E-Mails gesendet werden, wenn eine Tür geöffnet wird. Wir werden den Einrichtungsprozess, die benötigten Teile abdecken und Schritt-für-Schritt-Anleitungen geben, wie Sie einen ESP8266 mit einem Türsensor und einem E-Mail-Dienst verbinden. Dies erhöht die Sicherheit Ihres Zuhauses, da Sie sofort per E-Mail benachrichtigt werden, sobald die Tür geöffnet wird.
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 vollständige Details und einfache Schritt-für-Schritt-Anweisungen zum Einrichten der Hardware, zum Verständnis, wie sie funktioniert, und dazu, wie man den ESP8266 verbindet und programmiert. Weitere Informationen zu diesen Anleitungen erhalten Sie, indem Sie diesen Links folgen:
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-door-open-email-notification*/#include <ESP8266WiFi.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 D7 // ESP8266 pin D7 connected to door sensor's pinint door_state; // current state of door sensorint prev_door_state; // previous state of door sensorSMTPSessionsmtp;voidsetup() {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 ESP8266 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state}voidloop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new stateif (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGHSerial.println("The door is opened");String subject = "Email Notification from ESP8266";String textMsg = "This is an email sent from ESP8266.\n"; textMsg += "Your door is opened"; gmail_send(subject, textMsg); } elseif (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOWSerial.println("The door is closed"); }}void gmail_send(String subject, String textMsg) {// set the network reconnection optionMailClient.networkReconnect(true);smtp.debug(1);smtp.callback(smtpCallback); Session_Config config;// set the session configconfig.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("ESP8266"); 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 serverif (!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.");elseSerial.println("Connected with no Auth."); }// start sending Email and close the sessionif (!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 statusvoid smtpCallback(SMTP_Status status) {// print the current statusSerial.println(status.info());// print the sending resultif (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 memorysmtp.sendingResult.clear(); }}
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:
Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Kontakt mit ESP8266 ist. [BASE_URL/tutorials/esp8266/esp8266-software-installation]
Verbinde die Bauteile wie im Diagramm gezeigt.
Montiere den Türsensor an deiner Tür.
Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
Öffne die Arduino IDE auf deinem Computer.
Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
In der Arduino IDE klicke auf das Library Manager-Symbol im linken Menü, um es zu öffnen.
Suche nach ESP Mail Client und finde ESP Mail Client von Mobizt.
Klicke auf die Install-Schaltfläche, um die ESP Mail Client-Bibliothek hinzuzufügen.
Kopieren Sie den Code und öffnen Sie ihn mit der Arduino IDE.
Geben Sie Ihre WiFi-Informationen (Netzwerkname und Passwort) im Code ein. Aktualisieren Sie WIFI_SSID und WIFI_PASSWORD mit Ihren Angaben.
Ändern Sie die E-Mail-Adresse und das Passwort des Absenders im Code. Ändern Sie SENDER_EMAIL und SENDER_PASSWORD auf Ihre E-Mail-Adresse und Ihr Passwort.
Aktualisieren Sie die E-Mail-Adresse des Empfängers in RECIPIENT_EMAIL gegebenenfalls auf Ihre eigene E-Mail. Sie kann dieselbe wie die des Absenders sein.
※ Notiz:
Stellen Sie sicher, dass die Absender-E-Mail Gmail verwendet. Verwenden Sie das zuvor erstellte App-Passwort als Passwort des Absenders. Die E-Mail-Adresse des Empfängers kann beliebig sein.
Klicke in der Arduino-IDE auf die Upload-Schaltfläche, um den Code auf den ESP8266 zu übertragen.
Öffne den Serial Monitor.
Öffne die Tür.
Überprüfe die Ergebnisse im Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
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 ESP8266
----------------
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
Prüfe den E-Mail-Posteingang der Person, an die du die E-Mail gesendet hast. Du solltest eine E-Mail finden, die so aussieht:
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.
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!