Alarma por SMS
Se trata de una alarma típica de puertas y ventanas con un imán que al cerrar un rele reed dispara un sonido.
Aquí vamos a sustituir el zumbador y su eléctrónica por un esp8266 que nos enviará un mensaje SMS a nuestro móvil de forma casi instantanea y a coste mínimo o gratis. Es condición ser usuario de Movistar y tener un servidor capaz de ejecutar php. En mi caso esta alojado en un NAS. Tambien es posible enviar un e-mail en vez del sms, lo cual no requiere un operador especifico ni servidor php.
En la foto inferior vemos el modelo utilizado (unos 2€) que usa dos pilas de 1,5v que nos da el voltaje necesario para el esp8266.
--init.lua
wifi.setmode(wifi.STATION);
print('set mode=STATION (mode='..wifi.getmode()..')')
print('MAC: ',wifi.sta.getmac())
print('chip: ',node.chipid())
print('heap: ',node.heap())
wifi.sta.config("miSSID","miClave");
wifi.sta.setip({ip="192.168.1.175",netmask="255.255.255.0",gateway="192.168.1.1"})
print("Estableciendo conexión con router")
wifi.sta.connect()
dofile("sms.lua")
tmr.alarm(1, 15000, 1, function() --print("A dormir") --1000000
print(wifi.sta.getip())
print("A dormir")
node.dsleep(0)
end)
Quitamos el zumbador piezoeléctrico y la bobina. Por el otro lado cortamos la pista por la marca del rotulador para aislar el C.I.
Es el momento de cargar el software LUA en nuestro esp8266. Hay un fichero init.lua y un sms.lua
--sms.lua
tmr.alarm(0,10000, 1, function() --Debe esperar 10''
print("Enviado sms")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end )
conn:connect(80,"192.168.1.xxx")
conn:send("GET /smspuertacasa.php HTTP/1.1\r\n".."Host: 192.168.1.xxx\r\n".."Connection: keep-alive\r\nAccept: */*\r\n\r\n")
--tmr.stop(1)
--return
end)
En init.lua se hace la conexión a nuestro router, se llama a sms.lua y pasados unos segundos se pone al esp8266 en modo sleep de tan solo 30µA de consumo y ahí permanece hasta que recibe un reset al actuar el imán sobre el rele reed. Aquí hay un pequeño problema y es que en la puerta o ventana hay que colocar el imán de tal modo que no actue sobre el reed con la puerta cerrada y SOLO lo haga un momento al abrir esta. El motivo es que si el reed esta cerrado, entonce el consume sube a 20mA, lo cual es inasumible para las baterias.
En sms.lua se espera 10'' a que se establezca la conexón y despues ejecuta el php que manda el sms.
Resumiento, al darle al interruptor del sistema arranca el esp8266 y manda un sms en unos segundos y despues entra en modo sleep con un consumo despreciable hasta que pasa el imán y cierra el reed un momento poniendo a masa el reset del esp8266 y comenzando un nuevo ciclo.
Abajo el php basado en la información de movistar. Darse de alta en el servicio sms via web es muy fácil y de forma totalmente gratuita enviando un SMS al 22770 (o al 022770 si es una línea corporativa) con la clave personal que desees utilizar.
<BODY onload="document.forms[0].submit()">
<FORM action='https://opensms.movistar.es/aplicacionpost/loginEnvio.jsp' method='POST'>
<input type='hidden' name='TM_ACTION' value='AUTHENTICATE'>
<input type='hidden' name='TM_LOGIN' value='659******'>
<input type='hidden' name='TM_PASSWORD' value='miclave'>
<input type='hidden' name='to' value='659******'>
<input type='hidden' name='message' value=mensaje de puerta abierta en el salón>
<input type='submit' value='Enviar'>
</FORM>
</
El sistema terminado.
Las conexiones necesarias en el esp8266 (GPIO15 a masa y EN a positivo) con el pin de Reset al lado contrario a masa del reed.
Las conexiones son simples. El VCC del esp8266 al positivo de las pilas a través del interrruptor. El negativo del esp8266 al negativo de las pilas. El reset del esp8266 a un extremo del rele reed para que al cerrarse este lo ponga a masa. En este montaje he añadido un pequeño LED (con R de 1k) que va conectado a positivo y al mismo punto del reed que el reset. Esto nos permite un ajuste más fácil del imán ya que al cerrarse se enciende. Recordar que el reed debe estar abierto y cerrarse un momento al abrir la puerta o ventana ya que en caso contrario el consumo agotará las baterias en poco tiempo.
Por supuesto pueden montarse varios sistema y cada uno con su propia IP llamar a distintos scrip con diferentes nombres y que manden sms con mensajes distintos (puerta principal abierta, ventana comedor e incluso, con algo más de circuiteria, avisos de gas, temperaturas,etc. con módulos distribuidos y con un comsumo en modo sleep no superior al desgaste intrinseco de las pilas.