ESP32 S3 - Gmail

Dieses Tutorial zeigt Ihnen, wie der ESP32 S3 eine E-Mail über Ihr Gmail-Konto senden kann. Die Nachricht wird von einer Gmail-Adresse gesendet, kann aber an jeden beliebigen E-Mail-Anbieter zugestellt werden.

Was Sie bauen werden:

  1. Ein ESP32 S3 Projekt, das sich mit Ihrem WLAN verbindet
  2. Einen Absender, der sich mit einem App-Passwort bei Gmail anmeldet
  3. Ein Benachrichtigungssystem, das E-Mails an eine beliebige Adresse Ihrer Wahl sendet
  4. Einen Ausgangspunkt, den Sie erweitern können, um E-Mails zu senden, wenn ein Sensor oder Ereignis auslöst
ESP32 S3 Gmail

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
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) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
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

Bevor Sie mit dem Programmieren beginnen, benötigen Sie ein Gmail-Konto und ein App-Passwort dafür. Bitte lesen Sie zuerst die folgenden Punkte.

  • Verwenden Sie nicht Ihr Haupt-Gmail-Konto. Erstellen Sie ein neues Konto nur zum Testen, damit Ihr persönliches Konto sicher bleibt.
  • Der ESP32 S3 Code verwendet nicht Ihr normales Gmail-Anmeldepasswort. Stattdessen nutzt er ein spezielles „App-Passwort“, das Sie in den Einstellungen Ihres Google-Kontos erstellen.

Gehen Sie wie folgt vor:

  • Registrieren Sie ein neues Gmail-Konto.
  • Melden Sie sich mit dem neuen Konto an.
  • Öffnen Sie die Seite Ihres Google-Kontos.
  • Gehen Sie zum Bereich „Sicherheit“.
Gmail-Sicherheit
  • Aktivieren Sie die Bestätigung in zwei Schritten. App-Passwörter sind nur verfügbar, wenn die Bestätigung in zwei Schritten aktiv ist.
  • Öffnen Sie die Seite Google App-Passwörter und erstellen Sie ein neues App-Passwort. Der Name ist beliebig.
Google App-Passwörter
  • Klicken Sie auf die Schaltfläche „Erstellen“. Google zeigt Ihnen ein 16-stelliges Passwort wie das unten gezeigte an:
Gmail App-Passwörter
  • Kopieren Sie dieses 16-stellige Passwort und bewahren Sie es sicher auf. Sie werden es im nächsten Abschnitt in den ESP32 S3 Code eintragen.

※ Notiz:

Google aktualisiert gelegentlich das Aussehen seiner Seiten. Wenn Sie mit den obigen Schritten nicht zu den „App-Passwörtern“ gelangen, suchen Sie online nach „Google App-Passwörter erstellen“, um die neueste Anleitung zu finden.

ESP32 S3 Code

Der folgende Code richtet den ESP32 S3 so ein, dass er sich mit dem WLAN verbindet und mithilfe der Bibliothek ESP Mail Client eine E-Mail über Gmail sendet. Tragen Sie vor dem Hochladen Ihre WLAN-Daten, die Gmail-Adresse des Absenders, das App-Passwort und die E-Mail-Adresse des Empfängers ein.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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/esp32-s3/esp32-s3-gmail */ #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 SMTPSession smtp; void setup() { Serial.begin(115200); 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 ESP32 S3"; String textMsg = "This is an email sent from ESP32 S3.\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("ESP32 S3"); 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

  • Verwenden Sie den ESP32 S3 zum ersten Mal? Arbeiten Sie unsere Anleitung Erste Schritte mit dem ESP32 S3 durch, bevor Sie fortfahren.
  • Schließen Sie das ESP32 S3 Board mit einem USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP32 S3 Board und den COM-Port.
  • Klicken Sie auf das Symbol Library Manager auf der linken Seite der Arduino IDE, um ihn zu öffnen.
  • Geben Sie ESP Mail Client in das Suchfeld ein und suchen Sie die Bibliothek ESP Mail Client von Mobizt.
  • Klicken Sie auf die Schaltfläche Install, um die Bibliothek ESP Mail Client hinzuzufügen.
  • Search for ESP Mail Client created by Mobizt and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ESP Mail Client by Mobizt
The library also supported other Arduino devices using Clients interfaces e.g. WiFiClient, EthernetClient, and GSMClient. More info
3.4.21
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Ersetzen Sie den WLAN-Namen und das Passwort durch Ihre eigenen, indem Sie die beiden Konstanten WIFI_SSID und WIFI_PASSWORD bearbeiten.
  • Ersetzen Sie die Absender-E-Mail und das Passwort durch Ihre eigenen, indem Sie die beiden Konstanten SENDER_EMAIL und SENDER_PASSWORD bearbeiten.
  • Ersetzen Sie die Empfänger-E-Mail durch Ihre eigene, indem Sie die Konstante RECIPIENT_EMAIL bearbeiten. Sie können dieselbe Adresse wie beim Absender verwenden.

※ Notiz:

  • Die Absender-E-Mail MUSS eine Gmail-Adresse sein
  • Das Absender-Passwort ist das App-Passwort, das Sie zuvor erstellt haben
  • Die Empfänger-E-Mail kann von jedem beliebigen E-Mail-Anbieter stammen
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP32 S3 hochzuladen.
  • Öffnen Sie den Serial Monitor.
  • Sehen Sie sich die Ausgabe im Serial Monitor an.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
#### Message sent successfully > C: message sent successfully ---------------- Message sent success: 1 Message sent failed: 0 ---------------- Message No: 1 Status: success Date/Time: Jan 15, 2026 09:21:05 Recipient: xxxxxx@gmail.com Subject: Email Notification from ESP32 S3 ----------------
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2
  • Öffnen Sie den Posteingang der Empfänger-E-Mail. Sie sollten eine E-Mail wie die unten gezeigte sehen.
ESP32 S3 sendet E-Mail
  • Profi-Tipp: Legen Sie Ihre Zugangsdaten in einer separaten Konfigurations-Header-Datei ab und tragen Sie diese Datei in .gitignore ein. So geben Sie Ihre privaten Informationen nicht versehentlich weiter.

Anwendungen

Das Senden von E-Mails mit dem ESP32 S3 ist in vielen IoT-Alarmprojekten nützlich. Hier sind einige beliebte Beispiele:

  1. Sicherheitswarnungen: Erhalten Sie sofort eine E-Mail, wenn ein Bewegungsmelder oder Türsensor auslöst.
  2. Umweltüberwachung: Werden Sie benachrichtigt, wenn Temperatur, Luftfeuchtigkeit oder Luftqualität einen festgelegten Grenzwert überschreiten.
  3. Wasserleck-Erkennung: Erhalten Sie eine Warnung, sobald ein Wassersensor Feuchtigkeit erkennt.
  4. Gerätestatusberichte: Senden Sie regelmäßig E-Mails, um zu bestätigen, dass ein entferntes Gerät noch online ist und funktioniert.
  5. Ereignisprotokollierung: Senden Sie nach einem festen Zeitplan eine Zusammenfassung von Sensorwerten oder Ereignissen per 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.

Das folgende Video führt Sie Schritt für Schritt durch dieses ESP32 S3 Projekt.

Herausforderungen

Sobald das einfache Senden von E-Mails funktioniert, können Sie das Projekt verbessern und dazulernen. Probieren Sie diese Aufgaben aus, wann immer Sie bereit sind.

  1. Anfänger: Ändern Sie den Code so, dass er in einem Durchlauf zwei E-Mails an jeweils unterschiedliche Empfänger sendet. Prüfen Sie dann, ob beide E-Mails ankommen.
  2. Fortgeschritten: Schließen Sie einen Taster an den ESP32 S3 an und senden Sie eine E-Mail nur beim Drücken des Tasters statt direkt nach dem Start.
  3. Experte: Fügen Sie einen DHT22-Temperatur- und Feuchtigkeitssensor hinzu und senden Sie automatisch eine Warn-E-Mail, wenn die Temperatur einen einstellbaren Grenzwert überschreitet.

※ 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!