Hace algunas semanas les mostré como crear una alarma de movimiento con Arduino que enviaba alertas por Twitter utilizando el módulo wifi ESP8266-01, esta vez les mostraré una segunda versión de esa alarma que agrega varias mejoras entre las que se incluyen el control por Telegram y una configuración más simple de la red wifi a la cual se conecta.
Los materiales son básicamente los mismos, un sensor de movimiento o sensor PIR y el módulo WiFi, esta vez en lugar de utilizar el Arduino UNO para conectar el módulo con la computadora, utilizo un adaptador FTDI que es más práctico para cargar el software.
Más abajo les dejo el esquema de conexión, un video donde muestro las nuevas funciones y el código en Github para que lo puedan copiar.
En la primer versión de la alarma la red wifi a la cual el módulo se conectaba se configuraba con su SSID y Password directamente en el programa o sketch de Arduino. Esto era un poco engorroso porque si se cambiaba el password de la wifi o se quería utilizar la alarma con otra red, había que conectarla nuevamente con la PC y cargarle el nuevo programa con el IDE de Arduino.
Para evitar esto utilicé la librería WiFiManager (gracias tzapu!) que permite guardar en la memoria EEPROM los datos de la red wifi por medio de un “captive portal” que se crea dentro del propio módulo como un webserver y una página HTML que lanza los comandos que lo controlan.
Además de forma automática permite cambiar entre los modos Station y Access Point para conectarse por WiFi directamente al módulo ESP (ver comandos AT). Agregué además una librería para realizar la comunicación con Telegram y la de Twitter que ya había utilizando antes.
Como se puede ver en la siguiente imagen, a los módulos wifi les he agregado además un pequeño disipador sobre el chip porque he notado que a veces se calientan bastante y cuando eso sucede se vuelven un poco inestables (empiezan a fallar y se desconectan). Aunque por lo que estoy viendo no es un problema de los módulos ni del software, sino del voltaje que se les entrega, funcionan con 3.3V pero si el regulador de voltaje que se utiliza no es muy bueno puede que le lleguen más voltios y así comiencen a levantar temperatura.
Video:
Esquema de conexiones:
Recordar que el GPIO0 se conecta al GND para cargar el programa o firmware en el módulo ESP, luego se puede desconectar o utilizar para conectar otro sensor o módulo.
Librerías:
– WiFiManager: github.com/tzapu/WiFiManager
– Twitter: arduino-tweet.appspot.com
– Telegram: create.arduino.cc/projecthub/Arduino_Genuino/telegram-bot-library-ced4d4
Si tienen problemas con el WiFiManager les recomiendo darse una vuelta por la pestaña issues de su github donde se han realizando más de 150 preguntas frecuentes.
La configuración del bot de Telegram se explica en detalle en el link de la librería, recuerden que se necesitan tokens para el bot y también para la cuenta de Twitter que se deben colocar en el sketch de Arduino.
Código de la alarma: github.com/spamloco/pir-esp-telegram-twitter-wifi
El código del programa se puede optimizar mucho más, toda sugerencia y mejora es bienvenida!