Arduino Nano ESP32 - Gmail

Dieser Leitfaden zeigt Ihnen, wie Sie den Arduino Nano ESP32 konfigurieren, um eine E-Mail über Ihr Gmail-Konto zu senden. Sie können E-Mails von Ihrem Gmail-Konto an jedes andere E-Mail-Konto senden.

Arduino Nano ESP32 Gmail

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×(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.

Vorbereitung

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

  1. Erstellen Sie ein neues Gmail-Konto speziell zum Testen, nicht Ihr reguläres Konto, um Probleme zu vermeiden.
  2. Das im Arduino Nano ESP32-Code verwendete Passwort ist nicht dasselbe wie Ihr Gmail-Passwort. Sie müssen ein „App-Passwort“ von Ihrem Google-Konto erhalten, indem Sie bestimmte Schritte befolgen.

Hier sind die Schritte der Reihe nach:

Gmail-Sicherheit
  • Aktivieren Sie die Bestätigung in zwei Schritten (Es ist notwendig, die Bestätigung in zwei Schritten zu aktivieren, bevor Sie App-Passwörter verwenden).
  • Besuchen Sie die Google App Passwords-Website und erstellen Sie ein App-Passwort. Sie können es beliebig benennen.
Google-App-Passwörter
  • Klicken Sie auf die Schaltfläche Erstellen. Ein 16-stelliges Passwort wird wie folgt angezeigt:
Gmail-App-Passwörter
  • Speichern Sie diese 16-stellige Nummer. Sie benötigen sie für den Arduino Nano ESP32-Code im nächsten Schritt.

※ Notiz:

Das Layout von Google kann aktualisiert werden. Wenn Sie die Option "App-Passwörter" mit den obigen Schritten nicht finden können, suchen Sie nach "Wie man Google App-Passwörter erhält", um die neuesten Anweisungen zu erhalten.

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-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(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 ESP32"; String textMsg = "This is an email sent from ESP32.\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"); 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 Arduino Nano ESP32 zu beginnen, folgen Sie diesen Schritten:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Verbinden Sie das Arduino Nano ESP32-Board mit Ihrem Computer über ein USB-Kabel.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und seinen entsprechenden COM-Port aus.
  • Öffnen Sie den Library Manager-Symbol auf der linken Seite der Arduino IDE.
  • Suchen Sie nach ESP Mail Client und finden Sie die Bibliothek von Mobizt.
  • Klicken Sie auf die Install-Schaltfläche, um die ESP Mail Client-Bibliothek zu installieren.
Arduino Nano ESP32 ESP Mail Client-Bibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Geben Sie den Namen Ihres WiFi-Netzwerks und das Passwort dort ein, wo WIFI_SID und WIFI_PASSWORD steht.
  • Geben Sie Ihre E-Mail-Adresse und Ihr Passwort in die Felder SENDER_EMAIL und SENDER_PASSWORD im Code ein.
  • Aktualisieren Sie RECIPIENT_EMAIL auf die E-Mail-Adresse, unter der Sie Nachrichten erhalten möchten. Das kann bei Bedarf Ihre eigene E-Mail-Adresse sein.

※ Notiz:

  • Die E-Mail-Adresse des Absenders sollte ein Gmail-Konto sein.
  • Verwenden Sie das App-Passwort, das Ihnen zuvor gegeben wurde, als Passwort für den Absender.
  • Die E-Mail-Adresse des Empfängers kann jede Art von E-Mail-Adresse sein.
  • Drücken Sie die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano ESP32 zu übertragen.
  • Öffnen Sie den seriellen Monitor.
  • Prüfen Sie die Ausgabe 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 Arduino Nano ESP32 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Schauen Sie in das E-Mail-Postfach des Empfängers. Dort finden Sie eine E-Mail, die der folgenden ähnlich ist:
Arduino Nano ESP32 sendet eine 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!