
Envio masivo de sms con ESP32
¡Hola, aventurero de la tecnología! ¿Alguna vez has querido enviar un montón de mensajes SMS y sentirte como un master de las películas? ¡Hoy es tu día de suerte! Vamos a convertir ese pequeño ESP32 y el SIM800L en una máquina de mensajes. 🚀
¿Qué necesitas?
- ESP32: Esa cosita azul que parece salido de una nave espacial pero en realidad es solo un microcontrolador súper chulo con Wi-Fi y Bluetooth.
- SIM800L: No, no es un chip de chocolate, es un módulo que permite hacer llamadas y enviar mensajes. ¡Ojalá pudiera mandar chocolates por SMS!
- Módulo Regulador De Voltaje LM2596: Piensa en él como el guardaespaldas del SIM800L. Se asegura de que no reciba más energía de la que puede manejar.
Pasos sencillos:
- Armando el rompecabezas:
- Conecta tu ESP32 a la computadora. ¡Sin miedo! No muerde.
- Une el SIM800L al regulador de voltaje LM2596. Porque el SIM800L es como nosotros con el café: ¡necesita la cantidad justa!
- Ahora, que hablen entre ellos: conecta el SIM800L al ESP32. TX con RX y RX con TX. ¡Como si estuvieran chismeando!
- Dándole cerebro al ESP32:
- Carga el código que te mostré antes. Ese que parece una receta de cocina pero para hacer magia tecnológica.
- ¡Y no te olvides! Cambia el número de teléfono y el mensaje. A menos que quieras confundir a alguien con mensajes aleatorios.
- ¡Acción!:
- Enciende tu ESP32. No, no va a explotar.
- Si todo va bien, ¡tu ESP32 será una máquina de enviar SMS!
Cosas para tener en cuenta:
- Ten cuidado con tu tarjeta SIM. Algunas pueden cobrar más si envías demasiados SMS. ¡No queremos sorpresas en la factura!
- Asegúrate de que todo esté bien conectado y alimentado. ¡No queremos un apagón en plena operación de envío masivo!
Diagrama
A continuacion presentamos el circioto del sistema de Envio masivo de sms con ESP32
Codigo
#include <HardwareSerial.h>
// USAR UART1 PARA SIM800
HardwareSerial sim800(1);
// VARIABLE PARA CONTROLAR EL ENVÍO DE SMS
bool enviar = true;
void setup() {
// INICIAR COMUNICACIÓN SERIAL A 9600 BAUDIOS
Serial.begin(9600);
// CONFIGURA LA COMUNICACIÓN CON EL SIM800 A 9600 BPS EN LOS PINES 19 (RX) Y 18 (TX)
sim800.begin(9600, SERIAL_8N1, 19, 18);
// ESPERA 2 SEGUNDOS PARA QUE EL SIM800 SE INICIE CORRECTAMENTE
delay(2000);
}
void loop() {
// ENVIA EL COMANDO AT PARA VERIFICAR LA COMUNICACIÓN CON EL SIM800
sim800.println("AT");
// RETARDO DE 1 SEGUNDO
delay(1000);
// ESPERA HASTA QUE EL SIM800 ENVÍE UNA RESPUESTA
while (!sim800.available()) {
Serial.println("ESPERA HASTA QUE EL SIM800 ENVÍE UNA RESPUESTA");
}
if (sim800.find("OK")) {
// COMUNICACIÓN CON SIM800 ESTABLECIDA
Serial.println("Comunicación con SIM800 establecida.");
// CONFIGURA EL MODO DE TEXTO
sim800.println("AT+CMGF=1");
// RETARDO DE 1 SEGUNDO
delay(1000);
// REEMPLAZA CON EL NÚMERO DE DESTINO
sim800.println("AT+CMGS=\"+527121122441\"");
// RETARDO DE 1 SEGUNDO
delay(1000);
// ESCRIBE EL CONTENIDO DEL SMS Y ENVÍA SI LA VARIABLE 'enviar' ES TRUE
if (enviar) {
sim800.print("Este es un mensaje de prueba desde ESP32.");
// RETARDO DE 1 SEGUNDO
delay(1000);
// ENVÍA CTRL+Z (CARÁCTER DE FINALIZACIÓN DE MENSAJE)
sim800.write(0x1A);
// RETARDO DE 1 SEGUNDO
delay(1000);
// ESPERA HASTA QUE EL SIM800 ENVÍE UNA RESPUESTA
while (!sim800.available()) {}
if (sim800.find("OK")) {
// SMS ENVIADO CORRECTAMENTE
Serial.println("SMS enviado correctamente.");
} else {
// ERROR AL ENVIAR EL SMS
Serial.println("Error al enviar el SMS.");
}
} else {
// SMS NO ENVIADO DEBIDO A LA VARIABLE 'enviar' EN FALSE
Serial.println("SMS no enviado debido a la variable 'enviar' en false.");
}
} else {
// ERROR DE COMUNICACIÓN CON SIM800
Serial.println("Error de comunicación con SIM800.");
}
// ESPERA 5 SEGUNDOS ANTES DE ENVIAR OTRO SMS
delay(5000);
}
Para cerrar:
Con el ESP32 y el SIM800L, puedes sentirte como un genio de la tecnología enviando SMS a diestra y siniestra. Recuerda usar tus poderes para el bien y… ¡diviértete en el proceso! 😄📱🎉
Ave que vuela, a la cazuela.