Arduino - Gmail

In deze handleiding leert u hoe u de Arduino instelt om een e-mail te verzenden via uw Gmail-account. De e-mail wordt verstuurd vanaf een Gmail-account en kan worden ontvangen door elk willekeurig e-mailaccount.

Arduino Gmail

Voorbereiding

Om de code te gebruiken heeft u een Gmail-account en een speciaal wachtwoord voor de app nodig. Hier zijn de belangrijke aandachtspunten:

  1. Maak alstublieft een nieuw Gmail-account aan, speciaal voor testen, niet uw gebruikelijke account om problemen te voorkomen.
  2. Het wachtwoord in de Arduino-code verschilt van uw normale Gmail-inlogwachtwoord. U moet een “App Password” aanmaken via uw Google-account door de volgende stappen te volgen:

Hier zijn de stappen één voor één:

Gmail security
  1. Schakel 2-stapsverificatie in (U moet 2-stapsverificatie activeren om app-wachtwoorden te kunnen gebruiken).
  2. Ga naar de website voor Google App-wachtwoorden en maak een app-wachtwoord aan. U mag er zelf een naam voor kiezen.
Google App Passwords
  • Klik op de knop Maken (Create). U krijgt een 16-cijferig wachtwoord te zien, vergelijkbaar met dit:
Gmail App Passwords
  • Bewaar dit 16-cijferige wachtwoord goed. U zult het in de Arduino-code van de volgende stap gebruiken.

※ Notiz:

De gebruikersinterface van Google kan wijzigen. Als u "App-wachtwoorden" niet kunt vinden via bovenstaande stappen, zoek dan op "Hoe Google App-wachtwoorden aanmaken" voor de meest recente instructies.

Arduino Code

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

Snelle Stappen

  • Als u voor het eerst werkt met de Arduino Uno R4, bekijk dan eerst hoe u de Arduino Uno R4 configureert in de Arduino IDE.
  • Verbind de Arduino met uw PC via een USB-kabel.
  • Open de Arduino IDE op uw PC.
  • Selecteer het juiste Arduino-bord (Arduino Uno R4 WiFi) en de juiste COM-poort.
  • Open de Library Manager door te klikken op het Library Manager icoontje links in de Arduino IDE.
  • Zoek naar ESP Mail Client en selecteer de ESP Mail Client door Mobizt.
  • Klik op de Installeren knop om de ESP Mail Client bibliotheek te installeren.
Arduino ESP Mail Client library
  • Kopieer de code hierboven en open deze in de Arduino IDE.
  • Werk uw WiFi-gegevens bij door WIFI_SSID en WIFI_PASSWORD te vervangen door de SSID en het wachtwoord van uw netwerk.
  • Pas uw e-mailgegevens aan in de code door uw e-mailadres en wachtwoord in te vullen bij SENDER_EMAIL en SENDER_PASSWORD.
  • Wijzig het e-mailadres voor de ontvanger naar uw gewenste e-mailadres bij RECIPIENT_EMAIL. Let op: het ontvangeradres kan gelijk zijn aan het afzenderadres.

※ Notiz:

  • Het e-mailadres van de afzender moet een Gmail-account zijn.
  • Het wachtwoord voor de afzender is het App-wachtwoord dat u in de vorige stap heeft verkregen.
  • Het e-mailadres van de ontvanger kan van elk type zijn.
  • Klik op de Uploaden knop in de Arduino IDE om de code naar de Arduino te sturen.
  • Open de Seriële Monitor.
  • Bekijk het resultaat op de Seriële Monitor.
COM6
Send
#### Bericht succesvol verzonden > 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  
  • Controleer de inbox van het e-mailadres waarmee u heeft verzonden. U ontvangt een e-mail zoals deze:
Arduino verstuurt e-mail

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.

Bekijk onze video-tutorial voor visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap verder.

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