Arduino UNO R4 - E-mail

Deze tutorial legt uit hoe u de Arduino UNO R4 programmeert om een e-mail te versturen vanuit uw Gmail-account.

Arduino UNO R4 Email

Voorbereidingen

Om de code te gebruiken, heeft u een Gmail-account en een speciaal wachtwoord nodig. Hier zijn de belangrijkste details om te onthouden:

  • Maak een nieuw Gmail-account specifiek voor testdoeleinden aan. Gebruik niet uw reguliere account om uw account te beschermen tegen beveiligingsproblemen.
  • Het wachtwoord in de Arduino UNO R4 code is niet hetzelfde als uw Gmail-inlogwachtwoord. U moet een "App-wachtwoord" genereren vanuit uw Google-account.

U kunt een "App-wachtwoord" genereren vanuit uw Google-account door de onderstaande stappen te volgen:

Gmail security
  • Schakel verificatie in twee stappen in (Het is nodig om verificatie in twee stappen in te schakelen om app-wachtwoorden te maken).
  • Bezoek de Google App-wachtwoorden webpagina en maak een app-wachtwoord aan. U kunt het elke gewenste naam geven.
Google App Passwords
  • Klik op de Maken knop om een 16-cijferig wachtwoord te ontvangen dat als volgt wordt weergegeven:
Gmail App Passwords
  • Bewaar en onthoud dit 16-cijferige nummer. U heeft het nodig voor de Arduino UNO R4 code in de volgende stap.

※ Notiz:

Google's interface kan worden bijgewerkt. Als u "App-wachtwoorden" niet kunt vinden zoals beschreven, zoek dan online naar "Hoe krijg je Google App-wachtwoorden" om de nieuwste instructies te vinden.

Arduino UNO R4 Code

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-email */ #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(); } }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het opzetten van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Sluit het Arduino Uno R4 board aan op uw computer met een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Kies de juiste Arduino UNO R4 board optie (Arduino UNO R4 R4 WiFi) en COM-poort.
  • Open de Library Manager door op het Library Manager icoon aan de linkerkant van het Arduino IDE scherm te klikken.
  • Zoek naar ESP Mail Client om de ESP Mail Client door Mobizt te vinden.
  • Klik op de Install knop om de ESP Mail Client library toe te voegen.
Arduino UNO R4 ESP Mail Client library
  • Kopieer de bovenstaande code en open deze in de Arduino IDE.
  • Werk uw WiFi-netwerknaam en wachtwoord bij waar WIFI_SSID en WIFI_PASSWORD staat.
  • Werk uw e-mail en wachtwoord bij in de constanten: SENDER_EMAIL en SENDER_PASSWORD.
  • Werk RECIPIENT_EMAIL bij met het e-mailadres waar u berichten wilt ontvangen. Dit kan hetzelfde zijn als het e-mailadres van de verzender.

※ Notiz:

  • Het e-mailadres van de verzender moet Gmail gebruiken.
  • Gebruik het App-wachtwoord van eerder als het wachtwoord van de verzender.
  • Elk type e-mail kan het e-mailadres van de ontvanger zijn.
  • Druk op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 te uploaden.
  • Open de Serial Monitor.
  • Bekijk de uitvoer op de Serial 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 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kijk in de e-mailinbox van de ontvanger. U zult een e-mail vinden die vergelijkbaar is met deze:
Arduino UNO R4 sends email

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!