Arduino UNO R4 - Correo electrónico

Este tutorial le enseña cómo programar el Arduino UNO R4 para enviar un correo electrónico desde su cuenta de Gmail.

Arduino UNO R4 Correo electrónico

Antes de la Preparación

Para usar el código, necesitas una cuenta de Gmail y una contraseña especial. Aquí están los detalles clave para recordar:

  • Crea una nueva cuenta de Gmail específicamente para fines de prueba. No uses tu cuenta habitual para proteger tu cuenta de posibles problemas de seguridad.
  • La contraseña que aparece en el código del Arduino UNO R4 no es la misma que la contraseña de inicio de sesión de Gmail. Debes generar una "contraseña de la aplicación" desde tu cuenta de Google.

Puedes generar una 'Contraseña de la aplicación' desde tu cuenta de Google siguiendo los pasos que se indican a continuación:

  • Crea una nueva cuenta de Gmail.
  • Inicia sesión en tu cuenta recién creada.
  • Accede a tu Cuenta de Google.
  • Navega al área de 'Seguridad'.
Seguridad de Gmail
  • Activa la verificación en dos pasos (Es necesario habilitar la verificación en dos pasos para crear contraseñas de aplicaciones).
  • Visita la página de contraseñas de aplicaciones de Google y crea una contraseña de aplicación. Puedes nombrarla como quieras.
Contraseñas de aplicaciones de Google
  • Haga clic en el botón Crear para recibir una contraseña de 16 dígitos mostrada como se indica a continuación:
Contraseñas de la aplicación de Gmail
  • Por favor, guarde y conserve este número de 16 dígitos. Lo necesitará para el código Arduino UNO R4 en el siguiente paso.

※ Nota:

La interfaz de usuario de Google podría haber sido actualizada. Si no puede localizar "Contraseñas de la aplicación" tal como se describe, busque en línea "Cómo obtener contraseñas de la aplicación de Google" para encontrar las instrucciones más recientes.

Código de Arduino UNO R4

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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(); } }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usa el Arduino Uno R4 WiFi/Minima, consulte el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecte la placa Arduino Uno R4 a su computadora utilizando un cable USB.
  • Inicie el IDE de Arduino en su computadora.
  • Elija la opción correcta de la placa Arduino UNO R4 (Arduino UNO R4 R4 WiFi) y el puerto COM.
  • Abra el Gestor de Bibliotecas haciendo clic en el icono Gestor de Bibliotecas en el lado izquierdo de la pantalla del IDE de Arduino.
  • Busque el ESP Mail Client para encontrar el ESP Mail Client de Mobizt.
  • Haga clic en el botón Instalar para añadir la biblioteca ESP Mail Client.
Biblioteca ESP Mail Client para Arduino UNO R4
  • Copia el código anterior y ábrelo en el IDE de Arduino.
  • Actualiza el nombre de tu red WiFi y la contraseña donde dice WIFI_SSID y WIFI_PASSWORD.
  • Actualiza tu correo electrónico y la contraseña en las constantes: SENDER_EMAIL y SENDER_PASSWORD.
  • Actualiza RECIPIENT_EMAIL con la dirección de correo donde quieres recibir los mensajes. Esto puede ser el mismo que el correo del remitente.

※ Nota:

  • El correo del remitente debe usar Gmail.
  • Usa la contraseña de la aplicación dada anteriormente como la contraseña del remitente.
  • Cualquier tipo de correo puede ser el correo del destinatario.
  • Pulsa el botón Subir en el IDE de Arduino para cargar el código a Arduino UNO R4.
  • Abre el Monitor Serial.
  • Ver la salida en el Monitor Serial.
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  
  • Revise la bandeja de entrada del destinatario. Encontrará un correo electrónico similar a este:
Arduino UNO R4 envía un correo electrónico

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!