Con Arduino es realmente posible hacer proyectos complejos,
en particular mediante el uso de Internet. En este artículo, vamos a ver cómo
hacer un
sistema de alarma profesional con Arduino.
Este sistema será capaz de grabar todos los movimientos que
se detecta en la casa y guardarlos en una base de datos, que se puede acceder
de forma remota desde cualquier dispositivo, utilizando un simple navegador o
aplicaciones dedicadas.
Requisitos para el proyecto
Hardware
· Mega 1x Arduino
· 1 x Ethernet Shield
· N x Arduino Uno
Kit · n x inalámbrica 433 MHz
· N + 1 x sensor PIR
· PC
Software
· MySQL Connector para Arduino
https://launchpad.net/mysql-arduino
· Wireless 433 MHz VirtualWire Biblioteca
https://github.com/bosgood/arduino-playground/tree/master/lib/VirtualWire
· Datos inalámbricos
http://bayesianadventures.wordpress.com/2013/09/20/arduino-rf-communications-data-encoder-for-virtualwire/
· Biblioteca Webduino https://github.com/sirleech/Webduino
· Código para mi desde gitub repo
https://github.com/jackbell16/Arduino_System_Alarm
Paso 1: ¿Cómo funciona el sistema?
¿Cómo funciona el sistema?
El
sistema de alarma se basa en el uso de una especie de
estación central, que están conectados a los clientes. Cada dispositivo está
equipado con un sensor PIR, que es capaz de detectar el paso de una persona, a
través de la variación de calor. Los diversos clientes tienen un TX
inalámbrico, que enviará una señal a la estación central, para advertir de la
detección de una persona. El servidor principal no es más que un
Arduino Mega que
está conectado a Internet a través de la tarjeta Ethernet, que contiene más de
un sensor PIR, un RX inalámbrico, que es capaz de recibir señales que los
clientes envían. Para averiguar qué cliente envía la señal, que estará equipado
con algún tipo de identificador, establecido por el usuario al registrarse el
cliente. En cuanto a la grabación / ahorro de lecturas, que va a utilizar una
base de datos, que puede ser instalado en un PC o incluso en la Raspberry Pi.
La carga se hará directamente desde la estación central, que es lo único que
está conectado a Internet. La recuperación de la información, puede hacerlo a
través de una página web, o por medio de una aplicación construida en Java.
Además, la estación central está equipada con un servidor web, con el que puede
activar / desactivar el sistema de alarma. Vamos a ver cómo es posible, con un
teléfono Android, automatizar la activación / desactivación del sistema de
alarma.
Paso 2: Instale el DB de MySQL
El primer paso para hacer el fin de utilizar
el sistema de alarma, es la instalación de un servidor MySQL en su PC. Conviene precisar que
el equipo debe permanecer con acceso al arduino para que pueda completar el
almacenamiento adecuado de las detecciones. Puede instalar el servidor en Windows / Mac / Linux, descargue el paquete
desde el sitio web oficial de http://dev.mysql.com/downloads/mysql/ MySQL. Con
el fin de completar los siguientes pasos del proyecto, tales como la creación
de credenciales de acceso y mucho más, debe instalar el Workbench. Este último
es un programa que permite hacer interfaz fácilmente con el servidor MySQL. Workbench,
se puede descargar desde esta página web http://dev.mysql.com/downloads/mysql/
Raspberry PI
Para instalar el servidor MySQL en la Raspberry Pi, debe
escribir en una terminal:
sudo apt-get install mysql-server
Para instalar el cliente Workbench:
sudo apt-get install mysql-workbench
Durante la instalación del servidor, se le pedirá que
introduzca un nombre de usuario y una contraseña, que se utilizan para tener
acceso a del servidor de la base de datos.
Por defecto, el servidor está configurado para acceder a las
conexiones que se realizan en la máquina, es decir, el modo de localhost. Para
poder llevar a cabo el acceso de forma remota, debe crear una nueva cuenta, con
la posibilidad de activarla fuera del dispositivo. Para ello, abra el menú
Workbench Raspberry Pi. Seleccione la opción "Nueva instancia de
servidor" y la siguiente página, seleccione localhost y escribe los datos
de acceso, que introdujo cuando instaló el servidor MySQL. Ahora que ha creado
una conexión con la base de datos, podemos crear un usuario para que pueda acceder
remotamente a la Raspberry Pi.
Para ello hacemos doble clic en la conexión que ha creado y
se abrirá una nueva página, donde veremos un poco de «estadísticas relacionadas
con la utilización del servidor. Seleccionamos con un clic el "Usuarios y
privilegios" y crear una nueva cuenta. Se debe tener cuidado de que en el
"Desde host" será uno con el fin de permitir todos los tipos de conexiones entrantes.
Paso 3: MySQL esquema
Ahora que tenemos el servidor MySQL instalado, configurado
las credenciales de acceso para el acceso desde cualquier dispositivo a la base
de datos, podemos crear nuestro "plan" para el sistema de
alarma. El
esquema no es más que el conjunto de relaciones que conforman nuestro proyecto.
Cada informe contiene los atributos. En nuestro caso, el patrón será la
siguiente:
Esquema Sistema_allarme
Relazione1 Dispositivi (idDispositivi, Luogo, Citta)
Relazione2 Rilevamenti (ID, DATOS, ORA)
En la primera "tabla" se han reunido todos los
dispositivos que están presentes en nuestro sistema de alarma. Por ejemplo,
podemos instalar un Arduino Uno con Sensor PIR en la sala de estar, mientras
que podemos poner otro Arduino Uno en el dormitorio.
En la segunda "tabla" son las diferentes encuestas
que se han registrado, con la fecha y la hora. El ID se utiliza para
identificar los diferentes dispositivos en su hogar. Para la creación de las
diversas "mesas" sólo tienes que abrir una conexión con el MySQL
Workbench, a través de las "Conexiones de MySQL". Los datos incluidos
son los que se han creado en el paso anterior, como el nombre de usuario y contraseña.
La IP también puede dejar el localhost (127.0.0.1). Entonces se abrirá una
página en la que podíamos controlar nuestra base de datos. Lo que hay que hacer
es seleccionar la opción "Crear nuevo esquema" en la parte superior y
dar el nombre de Sistema_allarme. Una vez creado el esquema, podemos crear las
"tablas", es nuestra relación. Para ello, seleccione el botón en la
esquina inferior derecha "Sistema_allarme" y, seleccione la opción
"Crear una tabla". Los siguientes pasos se utilizan para introducir
los datos que han sido reportados previamente. El único elemento que se añade a
este respecto, es insertar idDispositivi como la clave principal de los
dispositivos relación / mesas. De esta manera no habrá dos dispositivos con el
mismo identificador.
Paso 4: Cómo conectar los distintos dispositivos
Como se mencionó anteriormente, en la base del proyecto, hay
dos tipos de dispositivos, la estación / servidor central que se compone de
Arduino Mega, lo que le permite subir sus datos a DB utilizando una conexión a
Internet, mientras que el cliente está formado por de un Arduino Uno y es capaz
de enviar el movimiento detectado en el servidor, usando el sensor PIR y los
componentes inalámbricos.
Servidor / Estación Central
PIR
VCC -> 5V
OUT -> PIN de 4
GND -> GND
RX inalámbrico 433 MHz
GND-> GND
DATOS -> PIN 11
DATA-> Ninguno V
CC -> 5V
Cliente
D.E.P
VCC -> 5V
OUT -> PIN 3
GND -> GND
Wireless 433 MHz TX
ATAD -> PIN 11
VCC -> 05/12 V (aumenta el puerto de la señal, el aumento
de la tensión)
GND -> GND
Paso 5: Instalación de componentes de software para Arduino
Como se informó anteriormente, con el fin de compilar
correctamente los códigos me di cuenta de que es necesario descargar las
bibliotecas que no están presentes de forma predeterminada en el IDE de
Arduino. La instalación es muy simple, usted puede descargar el archivo. Zip,
descomprimir y moverlos a las Arduino / bibliotecas de su equipo.
Aquí están los códigos de los programas de la versión del
sistema de alarma 1.0
Server
Usted puede encontrar el código de Arduino para el servidor
aquí https: //github.com/jackbell16/Arduino_System_Alarm ...
Cliente
/ **
Este código debe ser instalado en todos los clientes, que
quieren detecta un movimiento a través de PIR sensor.
Si el PIR detecta un movimiento, el cliente deberá enviar de
forma inalámbrica un mensaje al Maestro, quien hará una inserción a la base de
datos MySQL
Versión 1.0
Autor Giacomo Bellazzi
Copyright (C) 2014 Giacomo Bellazzi
(http://ismanettoneblog.altervista.org/)
*
* Este programa es software libre: usted puede
redistribuirlo y / o modificarlo
* Bajo los términos de la Licencia Pública General de GNU
según lo publicado por
* La Fundación para el Software Libre, ya sea la versión 3
de la Licencia, o
* (A su elección) cualquier versión posterior.
*
* Este programa se distribuye con la esperanza de que sea
útil,
* Pero SIN NINGUNA GARANTÍA; ni siquiera la garantía
implícita de
* COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.
Vea el
* Licencia Pública General GNU para más detalles.
* /
#include
#include
const int baudrate = 800;
int pinPIR = 3;
int llevó = 13;
int timeLed = 800;
int pinTX = 12;
int ID = 2; // El ID del cliente
void setup ()
{
Serial.begin (9600); // Depuración única
Serial.println ("Configuración");
SetupRFDataTxnLink (pinTX, velocidad de transmisión);
}
void loop ()
{
si (motionDetected ()) {
flotar outArray [1]; // Esta matriz guardan los datos para
enviar
outArray [0] = ID; // Enviar el ID del cliente
unión RFData outDataSeq;
EncodeRFData (outArray, outDataSeq);
TransmitRFData (outDataSeq);
ledOnOff (dirigido, timeLed);
while (motionDetected ()) {
// Permanecer en este estado, no enviar movimiento dos veces
}
}
}
// Este método detecta la presencia de personas
boolean motionDetected () {
si (digitalRead (pinPIR)) {
return true;
} else {
return false;
}
}
// Este método se enciende un led, por el tiempo
void ledOnOff (INT llevó, int timeLed) {
digitalWrite (led, HIGH);
retardo (timeLed);
digitalWrite (led, LOW);
}
El código es bastante comprensible desde el punto de vista
del mecanismo de la detección de movimiento.
Paso 6: Cómo activar / desactivar la alarma
En cuanto a los
sistemas de alarma tradicionales, esto
también es capaz de ser desactivado, por ejemplo estamos en casa y es normal que hay movimiento, para
ello, se realizó un servidor web dentro de la estación de tren, desde donde se
puede gestionar el sistema. Al escribir la dirección IP del servidor, se abrirá
una página Web protegido por un nombre de usuario y contraseña. En el caso de
este código, las credenciales son:
usuario = admin
contraseña = admin
La codificación utilizada es la base 64 y se ha implementado
utilizando la excelente Webduino biblioteca, con el que es posible simplificar
el proceso de creación de páginas web con Arduino. Para cambiar las
credenciales para el acceso a la página protegida del sistema de alarma, puede
modificar el código para reemplazar la cadena = YWRtaW46YWRtaW4, con el que
desee. Para crear su cadena, que representa la base de codificación de 64 de
sus credenciales es posible utilizar las herramientas en línea, como http://www.base64encode.org/.
Por ejemplo, si desea crear las siguientes credenciales;
user = nomeutente
password = contraseña
Insertar en "codificar" nomeutente: contraseña de
correo y el resultado será bm9tZXV0ZW50ZTpwYXNzd29yZA ==.
En la página protegida del servidor web, puede activar y
desactivar el sistema de alarma pulsando el botón central, que cambiará de
color según el estado.
Debe tener en cuenta que, por defecto, al iniciar Arduino,
el sistema está activo, incluso si se ha desactivado previamente. Esto se debe
al hecho de que la memoria en la que el Arduino es variables, estática y
volátil. Después de reiniciar el dispositivo, se pierden los datos. Sin
embargo, está disponible en el repositorio, un programa que resuelve este
problema, que mantiene el estado elegido, incluso después de reiniciar Arduino.
Sin embargo hay un pequeño problema, la memoria donde se guardan los datos, y
sin embargo, llamar EPROM tiene una "vida" en la parte inferior de la
RAM Arduino. Por lo tanto, el uso excesivo de la escritura, que puede dañarlo.
Por lo tanto le recomiendo usar el programa estándar. Como alternativa, puede
desactivar el sistema a través de un interruptor, sin embargo, sería garantizar
un menor nivel de seguridad, ya que cualquier persona podría apagarlo. Sin embargo,
en una versión futura, está la posibilidad de activar el sistema manual, a
través de la página web.
Paso 7: ¿Cómo recuperar los datos?
El método más fácil para recuperar los datos es realizar una
consulta a la base de datos que hemos instalado. La consulta no es más que una
consulta que devuelve tuplas, que son nada más que nuestras observaciones. Para
ello, escribimos esta consulta en workbench:
SELECT DI.Luogo, DI.Citta, RI .DATA, RI.ORA
DESDE Sistema_allarme.Rilevamenti como RI unirse
Sistema_allarme.Dispositivi como DI en (RI.ID = DI.idDispositivi)
Para acceder desde teléfonos inteligentes a esta lista de
detecciones, puede instalar una especie de banco de trabajo en el dispositivo e
introduzca la consulta anterior.
Cómo activar / desactivar el sistema automático?
El sistema ofrece la posibilidad de automatizar el
procedimiento para activar / desactivar el sistema de alarma, gracias a un
programa disponible para Android llam pueden descargar desde este enlace
https://play.google.com/store/apps/details?id=com. kebab.Llama. Esta necesidad
se debe al hecho de que el sistema de alarma es perder funcionalidad cuando
estamos en casa. Con el fin de automatizar el sistema, podemos decidir para
encenderlo cuando la posición GPS está fuera de casa, o para apagarlo cuando
lleguemos en la casa. Para configurar lo que se ha dicho, es necesario abrir la
aplicación, van a los eventos que añada uno, las características para ser
activados son:
Dentro de la zona - aplicación de corto plazo - preferido
(http: //ipwebserver.private.hmtl/ apagado)
Dejo la zona - aplicación de corto plazo - preferido (http:
//ipwebserver.private.hmtl/ en?)
Aplicación Java para PC
Además de utilizar el Workbench para poder grabar / ver las
distintas encuestas, puede utilizar la aplicación Java que he hecho. El primer
procedimiento que debe hacer es introducir el nombre de usuario y la contraseña
del servidor MySQL. A través del menú, puede seleccionar las dos operaciones
autorizados a registrarse un cliente en un área y para ver las encuestas,
filtrando por ID, fecha y hora.
Paso 8: Descargar la aplicación para activar / desactivar la
alarma de Android
Si desea activar / desactivar la alarma con Android, se
puede descargar la aplicación desde la tienda Play, escribiendo AlarmON o
mediante este enlace https://play.google.com/store/apps/details?id=com. ...
Recuerde que una vez que lo haya descargado, usted tiene que
configurar el nombre de usuario, contraseña y IP del Arduino de las
preferencias.