ESP8266 - Gmail

Dieser Leitfaden zeigt Ihnen, wie Sie ein ESP8266 einrichten, um eine E-Mail über Ihr Gmail-Konto zu senden. Die E-Mail wird von einem Gmail-Konto aus gesendet und kann von jedem E-Mail-Konto empfangen werden.

ESP8266 NodeMCU Gmail

Erforderliche Hardware

1×ESP8266 NodeMCU
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×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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.

Vorbereitung

Um den Code zu verwenden, benötigen Sie ein Gmail-Konto und ein spezielles App-Passwort. Hier sind die wichtigsten Details, an die Sie sich erinnern sollten:

  1. Erstelle ein neues Gmail-Konto, das speziell zum Testen gedacht ist, statt dein reguläres Konto zu verwenden, um Probleme zu vermeiden.
  2. Das in dem ESP8266-Code verwendete Passwort ist nicht dasselbe wie dein Gmail-Konto-Passwort. Du musst ein "App-Passwort" aus deinem Google-Konto erhalten, indem du bestimmten Anweisungen folgst.

Hier sind die Schritte, eins nach dem anderen:

  • Erstellen Sie ein neues Gmail-Konto.
  • Melden Sie sich bei dem von Ihnen erstellten Konto an.
  • Gehen Sie zu Ihrem Google-Konto.
  • Klicken Sie auf den Bereich „Sicherheit“.
Gmail-Sicherheit
  • Aktivieren Sie die Zwei-Schritte-Verifizierung (Dies ist Voraussetzung, bevor Sie App-Passwörter verwenden können).
  • Besuchen Sie die Google App-Passwörter-Website und erstellen Sie ein App-Passwort. Sie können es benennen, wie Sie möchten.
Google-App-Passwörter
  • Klicken Sie auf die Schaltfläche Erstellen, und Ihnen wird ein 16-stelliges Passwort angezeigt.
Gmail-App-Passwörter
  • Speichern Sie diese 16-stellige Nummer. Sie benötigen sie im nächsten Schritt für den ESP8266-Code.

※ Notiz:

Die Benutzeroberfläche von Google kann sich ändern. Wenn Sie nach den oben genannten Schritten nicht „App-Passwörter“ sehen, suchen Sie nach „Wie man Google App-Passwörter erhält“, um aktualisierte Anleitungen zu finden.

ESP8266-Code

/* * 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-gmail */ #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 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(); String subject = "Email Notification from ESP8266"; String textMsg = "This is an email sent from ESP8266.\n"; textMsg += "Sensor value: "; textMsg += "15"; // OR replace this value read from a sensor gmail_send(subject, textMsg); } void loop() { // YOUR OTHER CODE HERE } 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("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 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("Message sent success: %d\n", status.completedCount()); Serial.printf("Message 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 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 Umgang mit ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Verbinde das ESP8266-Board über ein USB-Kabel mit deinem Computer.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Klicke im Arduino IDE links auf das Bibliotheks-Manager-Symbol.
  • Suche nach ESP Mail Client und wähle die von Mobizt.
  • Drücke die Installieren-Schaltfläche, um die ESP Mail Client-Bibliothek hinzuzufügen.
ESP8266 NodeMCU ESP Mail Client Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE.
  • Aktualisiere deine WiFi-Informationen, indem du WIFI_SSID und WIFI_PASSWORD auf die SSID und das Passwort deines WiFi-Netzwerks änderst.
  • Gib deine E-Mail-Adresse und dein Passwort im Code unter SENDER_EMAIL und SENDER_PASSWORD ein.
  • Aktualisiere die E-Mail-Adresse des Empfängers in RECIPIENT_EMAIL ggf. auf deine eigene E-Mail-Adresse. Sie kann dieselbe wie die des Absenders sein.

※ Notiz:

  • Die E-Mail-Adresse des Absenders sollte ein Gmail-Konto sein.
  • Das Passwort des Absenders ist das im vorherigen Schritt angegebene App-Passwort.
  • Die E-Mail-Adresse des Empfängers kann jede Art von E-Mail-Adresse sein.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code an ESP8266 zu senden.
  • Öffnen Sie den seriellen Monitor.
  • Überprüfen Sie die Ergebnisse im seriellen Monitor.
COM6
Send
#### Message sent successfully > C: message 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 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Schauen Sie in den Posteingang der Person, an die Sie die E-Mail gesendet haben. Sie werden eine E-Mail finden, die der folgenden ähnlich ist:
ESP8266 NodeMCU sendet E-Mails

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!