Arduino - Gmail

Dans ce guide, nous apprendrons comment configurer un Arduino pour envoyer un email en utilisant votre compte Gmail. L'email sera envoyé à partir d'un compte Gmail et pourra être reçu par n'importe quel compte de messagerie.

Arduino Gmail

Préparation du matériel

1×Arduino UNO R4 WiFi
1×USB Cable Type-C
1×(Optional) Breadboard
1×(Optional) Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4
1×(Recommended) Breadboard Shield For Arduino UNO R4
1×(Recommended) Enclosure For Arduino UNO R4
1×(Recommended) Power Splitter For Arduino UNO R4

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, nous avons besoin d'un compte Gmail et d'un mot de passe spécial pour l'application. Voici les détails importants à retenir :

  1. Veuillez créer un nouveau compte Gmail uniquement pour le test, et non votre compte habituel, pour éviter les problèmes.
  2. Le mot de passe dans le code Arduino est différent de votre mot de passe de connexion Gmail. Vous devez obtenir un "Mot de passe d'application" à partir de votre compte Google en suivant des étapes spécifiques.

Voici les étapes une par une :

Sécurité Gmail
  1. Activez la vérification en deux étapes (Vous devez activer la vérification en deux étapes pour utiliser les mots de passe d'application).
  2. Allez sur le site Mots de passe d'application Google et créez un mot de passe d'application. Vous pouvez lui donner le nom de votre choix.
Mots de passe de l'application Google
  • Appuyez sur le bouton Créer. Vous obtiendrez un mot de passe de 16 chiffres qui ressemble à ceci :
Mots de passe d'application Gmail
  • Conservez et enregistrez ce numéro à 16 chiffres. Vous l'utiliserez dans le code Arduino à l'étape suivante.

※ Note:

L'interface utilisateur de Google pourrait changer. Si vous ne trouvez pas "Mots de passe d'application" en suivant les étapes ci-dessus, recherchez "Comment obtenir les mots de passe d'application Google" pour trouver des instructions mises à jour.

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/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(); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4, consultez Comment démarrer avec Arduino Uno R4..
  • Connectez la carte Arduino à votre PC à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte Arduino (Arduino Uno R4 WiFi) et le port COM.
  • Ouvrez le Gestionnaire de Bibliothèques en cliquant sur l'icône Gestionnaire de Bibliothèques sur le côté gauche de l'Arduino IDE.
  • Recherchez ESP Mail Client et trouvez l'ESP Mail Client par Mobizt.
  • Cliquez sur le bouton Install pour installer la bibliothèque ESP Mail Client.
Bibliothèque Arduino ESP Mail Client
  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Mettez à jour vos informations WiFi en remplaçant WIFI_SSID et WIFI_PASSWORD par le SSID et le mot de passe de votre réseau WiFi.
  • Modifiez vos informations de messagerie dans le code en entrant votre email et mot de passe dans SENDER_EMAIL et SENDER_PASSWORD.
  • Changez l'adresse email pour recevoir les messages en mettant à jour RECIPIENT_EMAIL avec votre email. Remarque : l'email destinataire peut être le même que l'email de l'expéditeur.

※ Note:

  • L'e-mail de l'expéditeur doit être un compte Gmail.
  • Le mot de passe de l'expéditeur est le mot de passe d'application que vous avez reçu à l'étape précédente.
  • L'e-mail du destinataire peut être de n'importe quel type.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à Arduino.
  • Ouvrez le Moniteur Série.
  • Regardez le résultat 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 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Vérifiez la boîte de réception de la personne à qui vous avez envoyé l'email. Vous recevrez un email comme celui-ci :
Arduino 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!