ESP8266 - Gmail

Esta guía te mostrará cómo configurar un ESP8266 para enviar un correo electrónico a través de tu cuenta de Gmail. El correo electrónico se enviará desde una cuenta de Gmail y podrá ser recibido por cualquier cuenta de correo electrónico.

ESP8266 NodeMCU Gmail

Hardware Requerido

1×ESP8266 NodeMCU
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 ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

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.

Pre-Preparación

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

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

Aquí están los pasos, uno por uno:

Seguridad de Gmail
  • Activa la verificación en dos pasos (Esto es esencial antes de que puedas usar contraseñas de aplicación).
  • Visita el sitio web Contraseñas de la app de Google y crea una contraseña de la aplicación. Puedes nombrarla como quieras.
Contraseñas de aplicaciones de Google
  • Haz clic en el botón Crear y se mostrará una contraseña de 16 dígitos para ti.
Contraseñas de la aplicación de Gmail
  • Guarda este número de 16 dígitos. Lo necesitarás para el código ESP8266 en el siguiente paso.

※ Nota:

La interfaz de usuario de Google puede cambiar. Si no ves "Contraseñas de la aplicación" después de seguir los pasos anteriores, busca "Cómo obtener las contraseñas de la aplicación de Google" para encontrar instrucciones actualizadas.

Código ESP8266

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-gmail */ #include <ESP8266WiFi.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 ESP8266"; String textMsg = "This is an email sent from ESP8266.\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("ESP8266"); 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 ESP8266 en el IDE de Arduino, sigue estos pasos:

  • Consulta el cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Haz clic en el icono Administrador de bibliotecas a la izquierda del IDE de Arduino.
  • Busca ESP Mail Client y la de Mobizt.
  • Presiona el botón Instalar para agregar la biblioteca ESP Mail Client.
Librería ESP Mail Client para ESP8266 NodeMCU
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Actualiza la información de tu WiFi cambiando WIFI_SSID y WIFI_PASSWORD por el SSID y la contraseña de tu red WiFi.
  • Ingresa tu correo electrónico y tu contraseña en el código bajo SENDER_EMAIL y SENDER_PASSWORD.
  • Actualiza la dirección de correo del destinatario en RECIPIENT_EMAIL por tu propio correo, si es necesario. Puede ser la misma que la 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 app dada en el paso anterior.
  • El correo electrónico 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 ESP8266.
  • Abre el Monitor serie.
  • Verifica los resultados en el Monitor serie.
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 ESP8266 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Mira en la bandeja de entrada del correo de la persona a la que enviaste el correo. Encontrarás un correo similar a este:
ESP8266 NodeMCU 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!