Arduino - Gmail

En esta guía, aprenderemos a configurar el Arduino para enviar un correo electrónico utilizando tu cuenta de Gmail. El correo se enviará desde una cuenta de Gmail y podrá ser recibido por cualquier cuenta de correo electrónico.

Arduino Gmail

Pre-Preparación

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

  1. Por favor, crea una nueva cuenta de Gmail solo para pruebas, no la habitual, para evitar problemas.
  2. La contraseña en el código de Arduino es diferente de tu contraseña de inicio de sesión de Gmail. Debes obtener una contraseña de la app de tu cuenta de Google siguiendo pasos específicos.

Aquí están los pasos uno por uno:

Seguridad de Gmail
  1. Activa la Verificación en dos pasos (Debes activar la Verificación en dos pasos para usar contraseñas de aplicaciones).
  2. Ve al sitio web de Contraseñas de Google para aplicaciones y crea una contraseña para la aplicación. Puedes elegir cualquier nombre para la contraseña.
Contraseñas de Google para aplicaciones
  • Pulsa el botón Crear. Obtendrás una contraseña de 16 dígitos que aparece así:
Contraseñas de la aplicación de Gmail
  • Guarda y conserva este número de 16 dígitos. Lo usarás en el código de Arduino en el siguiente paso.

※ Nota:

La interfaz de usuario de Google podría cambiar. Si no puedes encontrar 'Contraseñas de la aplicación' siguiendo los pasos anteriores, busca 'Cómo obtener contraseñas de aplicaciones de Google' para encontrar instrucciones actualizadas.

Código de Arduino

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

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Uno R4, consulta cómo configurar el entorno para Arduino Uno R4 en el IDE de Arduino.
  • Conecta la placa Arduino a tu PC usando un cable USB.
  • Abre el IDE de Arduino en tu PC.
  • Selecciona la placa Arduino correcta (Arduino Uno R4 WiFi) y el puerto COM.
  • Abre el Gestor de Bibliotecas haciendo clic en el icono Gestor de Bibliotecas en el lado izquierdo del IDE de Arduino.
  • Busca ESP Mail Client y encuentra el ESP Mail Client de Mobizt.
  • Haz clic en el botón Instalar para instalar la biblioteca ESP Mail Client.
Biblioteca de Arduino ESP Mail Client
  • Copia el código anterior y ábrelo en el IDE de Arduino.
  • Actualiza los detalles de tu WiFi reemplazando WIFI_SSID y WIFI_PASSWORD con el SSID y la contraseña de tu red WiFi.
  • Modifica los datos de correo en el código introduciendo tu correo electrónico y tu contraseña en SENDER_EMAIL y SENDER_PASSWORD.
  • Cambia la dirección de correo para recibir mensajes a tu correo actualizando RECIPIENT_EMAIL. Nota: el correo del destinatario puede ser el mismo que el del remitente.

※ Nota:

  • El correo electrónico del remitente debe ser una cuenta de Gmail.
  • La contraseña del remitente es la contraseña de la aplicación que recibiste en el paso anterior.
  • La dirección de correo del destinatario puede ser de cualquier tipo.
  • Haz clic en el botón Subir en el IDE de Arduino para enviar el código al Arduino.
  • Abre el Monitor Serial.
  • Observa el resultado 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  
  • Revisa la bandeja de entrada de la persona a la que enviaste el correo. Recibirás un correo como el siguiente:
Arduino 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.

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