Arduino - Gmail

In diesem Leitfaden lernen wir, wie man den Arduino so einrichtet, dass er eine E-Mail über Ihr Gmail-Konto sendet. Die E-Mail wird von einem Gmail-Konto aus gesendet und kann von jedem E-Mail-Konto empfangen werden.

Arduino Gmail

Vorbereitung

Um den Code verwenden zu können, benötigen wir ein Gmail-Konto und ein spezielles App-Passwort. Hier sind die wichtigen Details, an die man sich erinnern sollte:

  1. Bitte erstelle ein neues Gmail-Konto nur zum Testen, nicht dein übliches Konto, um Probleme zu vermeiden.
  2. Das Passwort im Arduino-Code ist anders als dein Gmail-Anmeldepasswort. Du musst dir ein App-Passwort aus deinem Google-Konto holen, indem du bestimmten Schritten folgst.

Hier sind die Schritte der Reihe nach:

Gmail-Sicherheit
  1. Aktivieren Sie die Zwei-Faktor-Authentifizierung (Sie müssen die Zwei-Faktor-Authentifizierung aktivieren, um App-Passwörter verwenden zu können).
  2. Gehen Sie zur Website Google App-Passwörter und erstellen Sie ein App-Passwort. Sie können dafür jeden beliebigen Namen verwenden.
Google App-Passwörter
  • Drücken Sie die Schaltfläche Erstellen. Sie erhalten ein 16-stelliges Passwort, das fol gendermaßen aussieht:
Gmail-App-Passwörter
  • Bewahren Sie diese 16-stellige Zahl auf und speichern Sie sie. Sie werden sie im nächsten Schritt im Arduino-Code verwenden.

※ Notiz:

Die Benutzeroberfläche von Google könnte sich ändern. Wenn Sie „App-Passwörter“ nicht finden können, indem Sie die oben genannten Schritte befolgen, suchen Sie nach „Wie man Google App-Passwörter erhält“, um aktualisierte Anweisungen zu finden.

Arduino-Quellcode

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-gmail */ #include <WiFiS3.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 Arduino"; String textMsg = "This is an email sent from Arduino.\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("Arduino"); 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.println("Connection error: "); Serial.print("- Status Code: "); Serial.println(smtp.statusCode()); Serial.print("- Error Code: "); Serial.println(smtp.errorCode()); Serial.print("- Reason: "); Serial.println(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.println("Connection error: "); Serial.print("- Status Code: "); Serial.println(smtp.statusCode()); Serial.print("- Error Code: "); Serial.println(smtp.errorCode()); Serial.print("- Reason: "); Serial.println(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()) { for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.print("Status: "); if (result.completed) Serial.println("success"); else Serial.println("failed"); Serial.print("Recipient: "); Serial.println(result.recipients.c_str()); Serial.print("Subject: "); Serial.println(result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Schnelle Schritte

  • Wenn Sie Arduino Uno R4 zum ersten Mal verwenden, sehen Sie So richten Sie die Umgebung für Arduino Uno R4 in der Arduino IDE ein.
  • Verbinden Sie das Arduino-Board über ein USB-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige Arduino-Board (Arduino Uno R4 WiFi) und den COM-Port aus.
  • Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Bibliotheks-Manager-Symbol auf der linken Seite der Arduino IDE klicken.
  • Suchen Sie nach ESP Mail Client und finden Sie den ESP Mail Client von Mobizt.
  • Klicken Sie auf die Schaltfläche Installieren, um die ESP Mail Client-Bibliothek zu installieren.
Arduino ESP-Mail-Client-Bibliothek
  • Kopiere den obigen Code und öffne ihn in der Arduino IDE.
  • Aktualisiere deine WLAN-Daten, indem du WIFI_SSID und WIFI_PASSWORD durch die SSID deines WLAN-Netzwerks und dein Passwort ersetzt.
  • Ändere deine E-Mail-Daten im Code, indem du deine E-Mail-Adresse und dein Passwort in SENDER_EMAIL und SENDER_PASSWORD eingibst.
  • Ändere die E-Mail-Adresse für den Empfang von Nachrichten auf deine E-Mail, indem du RECIPIENT_EMAIL aktualisierst. Hinweis: Die Empfänger-E-Mail-Adresse kann dieselbe sein wie die Absender-E-Mail.

※ Notiz:

  • Die E-Mail-Adresse des Absenders muss ein Gmail-Konto sein.
  • Das Passwort des Absenders ist das App-Passwort, das Sie im vorherigen Schritt erhalten haben.
  • Die E-Mail-Adresse des Empfängers kann jeder Art von E-Mail entsprechen.
  • Klicken Sie im Arduino IDE auf die Schaltfläche Hochladen, um Code an Arduino zu senden.
  • Öffnen Sie den seriellen Monitor.
  • Schauen Sie sich das Ergebnis im seriellen Monitor an.
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 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Prüfen Sie den E-Mail-Posteingang der Person, an die Sie die E-Mail gesendet haben. Sie erhalten eine E-Mail wie die folgende:
Arduino 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!