alarma

Electrónica, Informática, Proyectos 5 Comentarios

Hacía tiempo que no desarrollaba un proyecto con la fonera. En esta ocasión voy a hacer un sistema de alarma, la cual se activa cuando se pulsa un botón. Para ello me he hecho con lo siguientes materiales:

Emisor de 1 canal

Receptor de 1 canal

Fonera

getfile

Cuando alguien pulse el mando emisor, el receptor (alimentado por la fonera) recibirá la señal e informará a la fonera que se ha activado. Después la fonera se conectará a una página web para mandar un mensaje sms a un número de teléfono. Esto es útil por ejemplo para ancianos que desean solicitar asistencia, con sólo llevar el emisor colgado ya pueden enviar la alarma. Otra aplicación es una tienda donde se solicite ayuda en caso de robo, guardando el emisor debajo del mostrador o en el suelo.

Para ello, lo primero que se debe tener es la fonera con el firmware openwrt. Los pasos se pueden seguir aquí.

Después hay que instalar el módulo gpio. Los pasos se pueden seguir aquí.

A continuación hay que hacer que la fonera sea independiente del cable de red y se conecte como cliente al router wireless. Primero editamos el fichero /etc/config/wireless y ponemos lo siguiente:

config wifi-device  wifi0
option type     atheros
option channel  5

config wifi-iface
option device   wifi0
option mode     sta
option ssid     <SSID>
option encryption wep
option key      <CLAVE HEX>

Donde SSID es el nombre de la red wireless y CLAVE HEX la clave wep en hexadecimal (Para otras configuraciones mirar el documento de configuración aquí)

Segundo editamos el fichero /etc/config/network y ponemos lo siguiente:

# Copyright (C) 2006 OpenWrt.org

config interface loopback
option ifname   lo
option proto    static
option ipaddr   127.0.0.1
option netmask  255.0.0.0

config interface lan
option ifname   eth0
option proto    static
option ipaddr   192.168.1.200
option netmask  255.255.255.0

config interface wifi0
option ifname   ath0
option proto    dhcp

Con estas configuraciones hacemos que el router de la fonera se conecte al punto de acceso como cliente y coja una ip mediante dhcp, sin la necesidad de tener un cable de red, por lo que podemos ponerla en cualquier lado. Por si acaso se deja una ip 192.168.1.200 en el puerto ethernet por si hubiera que conectarse a ella y no funcionase el wifi.

El siguiente paso es crear el script que recibirá por el gpio la señal del receptor. Creamos el fichero /usr/bin/alarma.sh con este contenido (poniendo el usuario, contraseña, numero de móvil y el mensaje a enviar):

echo 1 > /proc/gpio/2_dir
echo 0 > /proc/gpio/1_dir
while true
do
        estado=`cat /proc/gpio/1_in`
        echo $estado > /proc/gpio/2_out
        if [ $estado -eq 1 ]
        then
                wget -q "http://www.sistemasorp.net/alarma.php?login=<USUARIO>&password=<CLAVE>&destino=<Nº MOVIL>&mensaje=<MENSAJE>"
                while true
                do
                        sleep 1
                done
        fi
        sleep 1
done

Lo que hace el script es comprobar la salida del receptor cada segundo, si está activada enciende el led wlan de la fonera y accede a una página web php que envía mensajes sms con la API de envío de SMS del open movil forum, este es el código fuente:

<?php
include 'SMSSenderAPI.php';
 
$SMS = New SMSSender;
$SMS->SendMessage($_GET["login"], $_GET["password"], $_GET["destino"], $_GET["mensaje"]);
?>

El fichero SMSSenderAPI.php lo podeis descargar aquí. Los campos LOGIN y PASSWORD son para la api de open movilforum, el campo DESTINO es el número de móvil del destinatario y el campo MENSAJE el texto que se le enviará.

Después se edita el fichero /etc/firewall.user y se añade al final la siguiente linea sh /usr/bin/programa.sh &.

En la parte hardware he sacado los cables de GPIO de la fonera y alimentación y masa al exterior:

imgp0885imgp0886

Igualmente he quitado en el receptor el integrado 7805 para alimentar el circuito directamente desde la fonera con dos cables (alimentación y masa):

imgp0887

Y soldado al pin 1 (el que se pone a 5 voltios si el circuito ha recibido una señal) del chip HEF4013BP un cable que irá directamente conectado al gpio 1 de la fonera:

imgp0888

Y como colofón un video demostrativo:

En el vídeo se puede ver como pulso el botón del emisor, después el led de la fonera se pone en verde y finalmente se recibe un mensaje de texto indicando Alarma activada.