Como enviar alertas SMS do ESP32 sem modem GSM

Cómo enviar alertas SMS desde ESP32 sin módem GSM

Imagine enviar alertas por SMS desde un microcontrolador sin interactuar con un módulo GSM/GPRS. Ahora es posible gracias al Internet de las cosas y a las placas de microcontroladores compatibles con IoT. Las placas de desarrollo de IoT pueden acceder a Internet y enviar SMS a un número registrado a través de servicios web. Uno de esos servicios web es Twilio.

Twilio es una API de comunicaciones para SMS, llamadas de voz, mensajes de vídeo, Whatsapp, correo electrónico y autenticación. Ser propietario de esta API le costará, pero hay una prueba gratuita.

Para este proyecto, programaremos el ESP32, una popular placa de desarrollo de IoT, para enviar alertas por SMS a través de la aplicación Twilio. No se requiere ningún módulo GSM o GPRS ni tarjeta SIM. Sin embargo, debes comprar un número de teléfono de Twilio para enviar alertas por SMS.

Ahora comencemos.

Componentes

  • KIT DE DESARROLLO ESP32 V1 x1
  • Cable microUSB para cargar sketch para ESP32 x1

Software

  • IDE de Arduino

Conexiones de circuito
No se requieren conexiones de circuito para este proyecto. Simplemente programe el ESP32 para acceder a la API de Twilio y enviar alertas por SMS a un número registrado.

¿Qué es Twilio?
Twilio es un servicio web global basado en la nube que permite la comunicación digital a través de múltiples plataformas, incluidos SMS, llamadas de voz, Whatsapp, correo electrónico y video.

Twilio ofrece una interfaz de programación de aplicaciones (API) que se integra fácilmente con cualquier aplicación o software móvil. Hay bibliotecas y módulos disponibles para integrar la API con microcontroladores y plataformas integradas. Esto es particularmente útil para las placas de desarrollo de IoT, ya que pueden acceder al servicio para enviar alertas de mensajes SMS o Whatsapp sin interactuar con un módulo GSM/GPRS o hardware adicional.

Crear una cuenta de prueba en Twilio
Aunque Twilio no es gratuito, hay disponible una versión de prueba para probar sus funcionalidades. Cree una cuenta de prueba en Twilio aquí .

Deberá ingresar su nombre y correo electrónico y crear una contraseña. Luego acepte los Términos de servicio y haga clic en el botón Enviar para comenzar su prueba gratuita.

Se le pedirá que verifique su correo electrónico antes de usar Twilio.

Luego se le pedirá que ingrese un número de teléfono para una doble verificación. Ingrese un número de teléfono válido y haga clic en el botón "Enviar código de verificación".

Twilio le pedirá que complete una breve encuesta para personalizar su configuración y abrirá la consola de Twilio.

Agregar identificadores de llamadas
Después de configurar una cuenta de Twilio, puede ver y agregar identificadores de llamadas verificados.

En la consola de Twilio, navegue hasta: Números de teléfono -> Administrar -> Identificadores de llamadas verificados. Verá que el número de teléfono que proporcionó para crear la cuenta de prueba ya aparece en la lista.

Puede editar el "Nombre descriptivo" para reemplazar el número de teléfono con un nombre legible por humanos.

Haga clic en el botón "Agregar un nuevo identificador de llamadas" para agregar más números de teléfono. Como antes, debe confirmar los números mediante un código de verificación recibido por SMS o voz.

Sólo los identificadores de llamadas verificados pueden recibir una alerta por SMS. El SMS se enviará a través de un número de teléfono de Twilio que deberá adquirirse.

Envío de SMS
Para enviar alertas por SMS, primero debe comprar un número de teléfono de Twilio.

Para comenzar con la mensajería, navegue hasta Mensajería -> Pruébelo -> Prepárese.

Haga clic en el botón "Iniciar configuración" e ingrese un nombre para el servicio de mensajería. Lo llamamos 'Alertas SMS ESP32'. Después de ingresar el nombre del servicio de mensajería, haga clic en el botón 'Crear servicio de mensajería'.

Twilio proporcionará automáticamente un número de teléfono, deduciendo $1,15 del balance de $15,50. Tendrás la opción de elegir un número de teléfono diferente. Una vez confirmado el número de teléfono, haga clic en el botón "Proporcionar este número".

Después de configurar correctamente el servicio de mensajería, será redirigido a una página que muestra el SID del servicio de mensajería, el SID de la cuenta y el token de autenticación. Son necesarios al programar el ESP32 para acceder a la API de Twilio.

Para probar el servicio de mensajería SMS, haga clic en el botón 'Probar SMS'.

Luego se le pedirá que ingrese el número de teléfono al que desea enviar SMS. Puede ser cualquier identificador de llamadas verificado que ya esté agregado a su cuenta. Seleccione el número del remitente de las opciones proporcionadas por Twilio y cree un mensaje SMS. Una vez completado, haga clic en el botón 'Enviar SMS de prueba'.

Si todo se ingresa correctamente, el SMS se entregará al identificador de llamadas seleccionado.

Alertas por SMS a un número ESP32 registrado
Un microcontrolador o microcomputadora compatible con Arduino puede acceder a la API de Twilio si ejecuta código JavaScript o Python. Dado que el ESP32 tiene capacidades WiFi y puede conectarse a cualquier red disponible, puede acceder fácilmente al servicio web Twilio.

Existe una biblioteca cliente ESP32 para la API de Twilio que simplifica esta tarea.

Biblioteca Arduino
Primero, instale el complemento ESP32 en el IDE de Arduino (obtenga más información aquí).

Para acceder a la API Twilio de ESP32, deberá agregar el cliente Twilio ESP32 al IDE de Arduino. Esta es otra biblioteca Arduino que permite que ESP32 acceda al servicio web Twilio.

Navegue a Herramientas -> Administrar bibliotecas y busque 'Cliente Twilio ESP32'.

Luego vaya a la biblioteca 'Twilio-ESP32-Client' escrita por Adam Demuri y haga clic en el botón 'Instalar' para instalar la biblioteca.

Bosquejo de Arduino
Después de instalar la biblioteca, cargue el siguiente boceto en ESP32. Recuerde ingresar el SSID y la clave de red de su red WiFi, el SID de la cuenta, el token de autenticación, el número de teléfono del remitente de Twilio y el número de teléfono del destinatario de su cuenta de prueba.

#incluir “twilio.hpp”
carácter constante estático *ssid = “”;
carácter constante estático *contraseña = “”;
estática constante char *account_sid = “”;
estática constante char *auth_token = “”;
carácter constante estático *from_number = “”;
carácter constante estático *to_number = “”;
static const char *message = “SMS enviado desde ESP32 a través de Twilio”;

Twilio *twilio;

configuración vacía {
Serie.begin(115200);
Serial.print(“Conectándose a la red WiFi;”);
Serie.print(ssid);
Serial.println(“'…”);
WiFi.begin(ssid, contraseña);
mientras (WiFi.estado! = WL_CONNECTED) {
Serial.println(“Conectando…”);
retraso(500);
}
Serial.println(“¡Conectado!”);
twilio = nuevo Twilio(account_sid, auth_token);
retraso(1000);
Respuesta de secuencia;
bool Success = twilio->send_message(to_number, from_number, mensaje, respuesta);
si (éxito) {
Serial.println(“¡Mensaje enviado correctamente!”);
} otro {
Serial.println(respuesta);
}
}

bucle vacío {
}

Código
El boceto comienza importando la biblioteca 'twilio.hpp'. La biblioteca proporciona acceso a las funciones necesarias para enviar mensajes SMS o solicitudes HTTP.

Se definen variables para almacenar el SSID y la clave de red de la conexión WiFi, el SID de la cuenta, el token de autenticación, el número del remitente (con código de país) y el número del destinatario (con código de país). La variable 'mensaje' almacena el contenido de texto del mensaje SMS. Luego se crea una instancia de una variable de puntero de Twilio.

En la función de configuración, la velocidad en baudios para la comunicación serie se establece en 115200 bps. La conexión a la red WiFi se inicializa llamando al método WiFi.begin. El estado de la conectividad WiFi se monitorea hasta que el ESP32 se conecta a la red utilizando el SSID y la clave de red proporcionados.

Se crea una instancia de un objeto de la clase Twilio. Se define una variable de tipo cadena para capturar la respuesta HTTP. El mensaje SMS se envía llamando al método send_message de la clase Twilio. El método devuelve el estado de entrega del mensaje, que se almacena en un "estado" booleano. Si el estado es verdadero, se imprimirá en la consola un mensaje que indica la entrega exitosa del mensaje SMS.

La función de bucle está vacía. Todo el código está en la función de configuración ya que el SMS solo debe enviarse una vez.

Como funciona
ESP32 se conecta a la red WiFi mediante la biblioteca WiFi. Utiliza la biblioteca cliente Twilio ESP32 para acceder al servicio web Twilio para enviar SMS. El SMS se envía a un identificador de llamadas verificado a través de la solicitud HTTP.

Resultados
Después de enviar el boceto al ESP32, haga clic en el botón 'Activar' en la microplaca y abra el monitor serie Arduino, con la velocidad en baudios establecida en 115200 bps.

El código en la función de configuración se ejecutará y se imprimirá una respuesta relevante en el monitor serie.

El mensaje SMS se entregará al número del destinatario seleccionado.

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.