Arduino Nano ESP32 - Gmail

Ce guide vous montrera comment configurer l'Arduino Nano ESP32 pour envoyer un email via votre compte Gmail. Vous pouvez envoyer des emails de votre compte Gmail vers tout autre compte de messagerie.

Arduino Nano ESP32 Gmail

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano
1×(Recommended) Breakout Expansion Board for Arduino Nano
1×(Recommended) Power Splitter For Arduino Nano ESP32

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Pré-préparation

Pour utiliser le code, vous avez besoin d'un compte Gmail et d'un mot de passe d'application spécial. Voici les points clés à retenir :

  • I. Créez un nouveau compte Gmail spécialement pour les tests, pas votre compte habituel, afin d'éviter tout problème.
  • I. Le mot de passe utilisé dans le code Arduino Nano ESP32 n'est pas le même que votre mot de passe Gmail. Vous devez obtenir un "Mot de passe d'application" depuis votre compte Google en suivant certaines étapes.

Voici les étapes une par une :

Sécurité de Gmail
  • Activez la vérification en deux étapes (il est nécessaire d'activer la vérification en deux étapes avant d'utiliser les mots de passe d'application).
  • Visitez le site Google App Passwords et créez un mot de passe d'application. Vous pouvez le nommer comme vous voulez.
Mots de passe des applications Google
  • Cliquez sur le bouton Créer. Un mot de passe à 16 chiffres apparaîtra comme suit :
Mots de passe d'application Gmail
  • Enregistrez ce numéro à 16 chiffres. Vous en aurez besoin pour le code Arduino Nano ESP32 à l'étape suivante.

※ Note:

La disposition de Google peut être mise à jour. Si vous ne trouvez pas "Mots de passe pour applications" en utilisant les étapes ci-dessus, recherchez "Comment obtenir des mots de passe pour applications Google" pour obtenir les dernières instructions.

Code Arduino Nano ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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(); } }

Étapes rapides

Pour commencer avec Arduino Nano ESP32, suivez ces étapes :

  • Si vous débutez avec Arduino Nano ESP32, consultez le tutoriel sur Installation du logiciel Arduino Nano ESP32..
  • Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'Arduino IDE sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
  • Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques à gauche dans l'Arduino IDE.
  • Recherchez ESP Mail Client et trouvez la bibliothèque de Mobizt.
  • Cliquez sur le bouton Install pour installer la bibliothèque ESP Mail Client.
Bibliothèque Arduino Nano ESP32 ESP Mail Client
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
  • Entrez le nom et le mot de passe de votre réseau WiFi là où il est indiqué WIFI_SID et WIFI_PASSWORD.
  • Mettez votre email et votre mot de passe dans les champs SENDER_EMAIL et SENDER_PASSWORD du code.
  • Mettez à jour RECIPIENT_EMAIL avec l'adresse email où vous souhaitez recevoir les messages. Cela peut être votre propre email si nécessaire.

※ Note:

  • L'e-mail de l'expéditeur doit être un compte Gmail.
  • Utilisez le mot de passe d'application qui vous a été fourni auparavant comme mot de passe pour l'expéditeur.
  • L'e-mail de la personne qui le reçoit peut être de n'importe quel type.
  • Appuyez sur le bouton Upload dans l'IDE Arduino pour transférer le code vers l'Arduino Nano ESP32.
  • Ouvrez le Moniteur Série.
  • Vérifiez la sortie sur le Moniteur Série.
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  
  • Consultez la boîte de réception de l'e-mail du destinataire. Vous trouverez un e-mail similaire à celui-ci :
Arduino Nano ESP32 envoie un e-mail

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!