Arduino Nano ESP32 - Gmail

Esta guía le mostrará cómo configurar el Arduino Nano ESP32 para enviar un correo electrónico a través de su cuenta de Gmail. Puede enviar correos electrónicos desde su cuenta de Gmail a cualquier otra cuenta de correo.

Arduino Nano ESP32 Gmail

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Preparación previa

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

  1. Crea una nueva cuenta de Gmail específicamente para pruebas, no la habitual, para evitar cualquier problema.
  2. La contraseña utilizada en el código de Arduino Nano ESP32 no es la misma que tu contraseña de Gmail. Debes obtener una "Contraseña de aplicación" de tu cuenta de Google siguiendo ciertos pasos.

Aquí están los pasos uno por uno:

  • Inicia sesión en la cuenta que creaste.
  • Ve a tu Cuenta de Google.
  • Navega a la sección de Seguridad.
Seguridad de Gmail
  • Activar la verificación en dos pasos (Es necesario habilitar la verificación en dos pasos antes de usar las contraseñas de la aplicación).
  • Visite el sitio web de Contraseñas de la aplicación de Google y cree una contraseña de la aplicación. Puede nombrarla como desee.
Contraseñas de la aplicación de Google
  • Haz clic en el botón Crear. Aparecerá una contraseña de 16 dígitos como se muestra a continuación:
Contraseñas de la aplicación de Gmail
  • Guarda este número de 16 dígitos. Lo necesitarás para el código de Arduino Nano ESP32 en el siguiente paso.

※ Nota:

La interfaz de Google podría estar actualizada. Si no puedes localizar "Contraseñas de la aplicación" usando los pasos anteriores, busca "Cómo obtener las contraseñas de la aplicación de Google" para obtener las instrucciones más recientes.

Código de Arduino Nano ESP32

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

Pasos R\u00e1pidos

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta la placa Arduino Nano ESP32 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abre el Administrador de Bibliotecas haciendo clic en el ícono Administrador de Bibliotecas a la izquierda en el IDE de Arduino.
  • Busca ESP Mail Client y encuentra la biblioteca de Mobizt.
  • Haz clic en el botón Instalar para instalar la biblioteca ESP Mail Client.
Biblioteca ESP Mail Client para Arduino Nano ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Introduce el nombre de tu red WiFi y su contraseña donde se indiquen WIFI_SID y WIFI_PASSWORD.
  • Introduce tu correo electrónico y contraseña en los campos SENDER_EMAIL y SENDER_PASSWORD del código.
  • Actualiza RECIPIENT_EMAIL con la dirección de correo a la que quieras recibir los mensajes. Puede ser tu propio correo si es necesario.

※ Nota:

  • El correo del remitente debe ser una cuenta de Gmail.
  • Utilice la contraseña de la aplicación que se le proporcionó anteriormente como la contraseña del remitente.
  • El correo electrónico de la persona que lo recibe puede ser cualquier dirección de correo electrónico.
  • Presione el botón Subir en el IDE de Arduino para transferir el código al Arduino Nano ESP32.
  • Abra el Monitor Serial.
  • Verifique 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 Nano ESP32 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Revisa la bandeja de entrada del destinatario. Encontrarás un correo similar a este:
Arduino Nano ESP32 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!