ESP8266 - Türöffnung E-Mail-Benachrichtigung
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.
Oder Sie können die folgenden Kits kaufen:
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.
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:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
#include <ESP8266WiFi.h>
#include <ESP_Mail_Client.h>
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
#define SENDER_EMAIL "xxxxxx@gmail.com"
#define SENDER_PASSWORD "xxxx xxxx xxxx xxxx"
#define RECIPIENT_EMAIL "xxxxxx@gmail.com"
#define SMTP_HOST "smtp.gmail.com"
#define SMTP_PORT 587
#define DOOR_SENSOR_PIN D7
int door_state;
int prev_door_state;
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);
door_state = digitalRead(DOOR_SENSOR_PIN);
}
void loop() {
prev_door_state = door_state;
door_state = digitalRead(DOOR_SENSOR_PIN);
if (prev_door_state == LOW && door_state == HIGH) {
Serial.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);
} else if (prev_door_state == HIGH && door_state == LOW) {
Serial.println("The door is closed");
}
}
void gmail_send(String subject, String textMsg) {
MailClient.networkReconnect(true);
smtp.debug(1);
smtp.callback(smtpCallback);
Session_Config 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;
SMTP_Message message;
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;
message.addHeader(F("Message-ID: <abcde.fghij@gmail.com>"));
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.");
}
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());
}
void smtpCallback(SMTP_Status status) {
Serial.println(status.info());
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++) {
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");
smtp.sendingResult.clear();
}
}
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.
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
----------------
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.