Gracias al sw de Cayenne es posible construir equipos muy avanzados sin necesidad de programar nada con un aspecto gratamente muy profesional. Ademas, si sopesamos la gran potencia de calculo de la Raspberrry Pi, junto sus grandes posibilidades de expansión y conectividad ,obtenemos una gran combinación de hardware y software, las cual sin duda nos va a permitir realizar proyectos realmente interesantes .
Sabemos la gravedad que puede suponer un incendio, por lo que es sumamente importante disponer de medidas en los edificios de detección eficaces para protegerlos contra la acción del fuego.
En este post vamos a intentar abordar el grave problema de los incendios desde una perspectiva completamente diferente usando para ello una Raspberry pi 2, un hardware especifico consistente en un DS18B20 , un detector de gas y un buzzer junto con la plataforma Cayenne.
Tradicionalmente los detectores de incendios difieren en función de los principio de activación siendo los mas habituales los de Tipo Óptico basado en células fotoeléctricas ,las cuales, al oscurecerse por el humo o iluminarse por reflexión de luz en las partículas del humo, disparando una sirena o alarma.Asimismo existen detectores de calor
La solución que se propone se basa en detectores ter micos al ser los mas precisos ,al que se ha añadido para aumentar la fiabilidad y mejorar la flexibilidad un doble sensor permitiendo de esta manera poder modificar los parámetros de disparo con un enorme facilidad como vamos a ver aparte de poder transmitir la información en múltiples formatos y formas hasta nunca vistas.
COMPONENTES NECESARIOS
Para montar la solución propuesta necesitamos los siguientes elementos:
- Zumbador de 5V (cuesta menos de 1€ en Amazon)
- DS18B20 (unos 3€)
- Resistencia de 4k7 1/4 w
- Sensor de Co2 basado en MQ4 (cuesta menos de 2€ en Amazon)
- Raspberry Pi 2 o superior
- Fuente 5V /1A para la Rasberry Pi
Otros
- Cable de red
- Caja de plástico para contener el conjunto
- Cable de cinta ( se puede reusar un cable de cinta procedente de un interfaz ide de disco)
La solución propuesta se basa en usar una Raspberry Pi y un pequeño hardware de control que conectaremos a los puertos de la GPIO,pero, antes de empezar con el hardware adicional, deberemos ,si aun no lo ha creado todavía , generar una imagen de Raspbian para proporcionar un sistema operativo a la Raspberry Pi.Raspbian trae pre-instalado software muy diverso para la educación, programación y uso general, contando además con Python, Scratch, Sonic Pi y Java
Para instalar Raspbian se puede instalar con NOOBS o descargando la imagen del SO desde la url oficial. y copiando a la SD con el Win32DiskImager desde la página del proyecto en SourceForge
Prueba de acceso y creacion de cuenta
Creada la imagen del SO, ahora debemos insertar la micro-SD recién creada en su Raspberry Pi en el adaptador de micro-sd que tiene en un lateral . También deberá conectar un monitor por el conector hdmi, un teclado y ratón en los conectores USB, un cable ethernet al router y finalmente conectar la alimentación de 5V DC para comprobar que la Raspberry Pi arranca con la nueva imagen
Para comenzar la configuración de su Raspberry, lo primero es crear una cuenta gratuita en el portal cayenne-mydevices.com que servirá tanto para entrar en la consola web como para validarnos en la aplicación móvil. Para ello, vaya a la siguiente url http://www.cayenne-mydevices.com/ e introduzca lo siguintes datos:
- Nombre,
- Dirección de correo elctronica
- Una clave de acceso que utilizara para validarse.
NOTA: las credenciales que escriba en este apartado le servirán tanto para acceder via web como por vía de la aplicación móvil
Instalación del agente
Para avanzar en el asistente deberemos tener instalado Raspbian en nuestra Raspberry Pi que instalamos en pasos anteriores .
Concluido el asistente , lo siguiente es instalar la aplicación móvil , que esta disponible tanto para IOS como Android. En caso de Android este es el enlace para su descarga en Google Play.
Es muy interesante destacar que desde la aplicación para el smartphone se puede automáticamente localizar e instalar el software myDevices Cayenne en su Raspberry Pi, para lo cual ambos ( smarphone y Raspberry Pi ) han de estar conectados a la misma red,por ejemplo la Raspberry Pi al router con un cable ethernet y su smartphone a la wifi de su hogar ( no funcionara si esta conectada por 3G o 4G) .
Una vez instalada la app , cuando hayamos introducido nuestras credenciales , si está la Raspberry en la misma red y no tiene instalado el agente, se instalara éste automáticamente .
Hay otra opción de instalar myDevices Cayenne en su Raspberry Pi, usando el Terminal en su Pi o bien por SSH.Tan sólo hay que ejecutar los dos siguientes comandos :
- wget https://cayenne.mydevices.com/dl/rpi_f0p65dl4fs.s…
- sudo bash rpi_f0p65dl4fs.sh -v
NOTA:la instalación del agente en su Raspberry Pi por comando, no es necesaria .Solo se cita aquí en caso de problemas en el despliegue automático desde la aplicacion movil.
Instalación del sensor temperatura
Para poder hacer de nuestra Raspberry Pi un detector eficaz de incendios necesitamos añadir sensores que nos permitan medir variables físicas del exterior, para en consecuencia actuar posteriormente
En primer lugar se ha optado por utilizar el sensor DS18B20 creado por Dallas Semiconductor . Se trata de un termómetro digital, con una precisión que varía según el modelo pero que en todo caso es un componente muy usado en muchos proyectos de registro de datos y control de temperatura.Existen tres modelos, el DS1820, el DS18S20 y el DS18B20 pero sus principales diferencias se observan en la exactitud de lectura, en la temperatura, y el tiempo de conversión que se le debe dar al sensor para que realice esta acción.El DS1820, tiene, además del número de serie y de la interfaz de un conductor, un circuito medidor de temperatura y dos registros que pueden emplearse como alarmas de máxima y de mínima temperatura.
CONEXIÓN DEL DS18B20
El DS18B20 envía al bus I2C la información de la temperatura exterior en grados C con precisión 9-12 bits, -55C a 125C (+/- 0.5C).a.
Para aprovechar las ventajas de la detección automática de Cayenne de sensores 1-wire, conectaremos este al puerto 4 GPIO (PIN 7) dado que el DS1820 transmite vía protocolo serie 1-Wire
Asimismo es importante conectar una resistencia de 4k7 de pull-up en la línea de datos ( es decir entre los pines 2 y 3 del DS18B20) .
La alimentación del sensor la tomaremos desde cualquiera de las dos conexiones de +5V de nuestra Raspberry (pines 2 o 4 ) y la conexión de masa por comodidad podemos tomarla del pin 9 de las Raspberry
¡Listo! Encienda su Raspeberry Pi y Cayenne automáticamente detectará el sensor DS18B20 y añadirá este a su panel de control
NOTA : Es importante reseñar que los dispositivos 1-Wire se identifican mediante un número (ID) único, razón por la que podríamos conectar varios en cascada, viajando la señal de todos ellos por la misma línea de datos necesitando una única resistencia de pull up para todo el montaje conectándose todos ellos en paralelo (respetando los pines obviamente). El software se encargará de “interrogar” al sensor/dispositivo adecuado.
Instalación de sensor de Co2
Para complementar nuestro detector se ha añadido un detector de gases basado en el circuito MQ4 .Este detector se puede montar un circuito con el sensor , o bien se puede adquirir con el sensor y el modulo de disparo con un led ya soldado, lo cual por su bajo coste (menos de 2€ en Amazon )es la opción más recomendada. Estos módulos permiten Dual-modo de señal de salida, es decir cuentan con dos salidas diferenciadas:
- Salida analógica
- Salida con sensibilidad de nivel TTL (la salida es a nivel alto si se detecta GLP, el gas, el alcohol, el hidrógeno y mas)
Estos módulos son de rápida a respuesta y recuperación ,cuentan con una buena estabilidad y larga vida siendo ideales para la detección de fugas de gas en casa o fabrica .Son ademas muy versátiles , pudiendo usarse para múltiples fines ,detectando con facilidad lo siguientes gases:
- Gas combustible como el GLP
- Butano
- Metano
- Alcohol
- Propano
- Hidrogeno
- Humo
- etc.
Algunas de las características del módulo:
- Voltaje de funcionamiento: 5V DC
- Rango de Detección: 300 a 10000 ppm
- Salida TTL señal valida es baja
- Tamaño: 32X22X27mm
CONEXIONES
Para conectar el detector de gases a nuestra Raspberry Pi, optaremos por usar el puerto GPIO18 ( pin12) que conectaremos a la salida digital 2 del sensor ( marcado como OUT).
La alimentación del sensor la tomaremos desde cualquiera de las dos conexiones de +5V de nuestra Raspberry (pines 2 o 4 ) conectándo al pin 4 del sensor (marcado como +5v) y la conexión de masa por comodidad podemos tomarla del pin 9 de las Raspberry conectando este al pin1 del detector ( marcado como GND)
Respecto a Cayenne deberemos configurarlo como una entrada genérica como vamos a ver mas adelante.
PRUEBA DEL SENSOR
Para hacer una prueba rápida de que nuestro sensor es funcional :simplemente apuntar a unos cm del sensor con un bote de desodorante (no importa la marca), justo con un sólo disparo hacia el cuerpo del sensor. En ese momento debería encenderse el pequeño led que integra el sensor durante unos minutos para luego apagarse marcando de esta forma que realmente ha detectado el gas .
Ademas simultáneamente si podemos medir con un polímetro, veremos que el pin Out pasa a nivel alto , es decir pasa de 0V a unos 5V , volviendo a cero en cuanto se haya diluido el gas
Zumbador y montaje final
Para los avisos acústicos, lo mas sencillo es usar un simple zumbador de 5Vque podemos conectar directamente a nuestra Raspberry Pi sin ningún circuito auxiliar.
La conexión del positivo del zumbador normalmente de color rojo , lo haremos al GPIO 17 ( pin 11 ) de nuestra Raspberry y la conexión de masa por comodidad podemos tomarla del pin 9 de las Raspberry conectando este al pin de masa del buzzer ( de color negro)
Respecto a Cayenne deberemos configurarlo como un actuador genérico como vamos a ver mas adelante en el siguiente paso.
En cuanto a las conexiones dado las poquísimas conexiones de los dos sensores y el zumbador, lo mas sencillo ,a mi juicio, es usar un cable de cinta de 20+20 , que por ejemplo puede obtener de un viejo cable IDE de los usados para conectar antiguos discos duros cortándolo en la longitud que interese y conectando los cables a los sensores y al zumbador (observe que es muy importante respetar el orden de los pines del cable siendo el rojo el pin 1 y cuenta correlativamente).
El siguiente resumen indica todas las conexiones realizadas:
CABLE DE CINTA –> UTILIZACIÓN
- pin9 (Gnd) –> pin1 DS1820,pin1 MQ4,
- pin 7 (GPIO4)–> pin 2 DS1820 , resistencia 4k7
- pin1 (+5V) –>pin 3 DS1820, resistencia 4k7, pin4 MQ4,cable rojo buzzer
- pin 12(GPIO18)–> pin2 MQ4
- pin11(GPIO17) –> cable negro buzzer
Configuración Cayenne
Del sensor DS1820 no hablamos precisamente porque al estar conectado al bus one wire , el agente Cayenne lo detectara automáticamente presentándolo directamente sobre el escritorio sin necesidad de ningún acción más.
CONFIGURACION SENSOR GAS
Dado que no existe un sensor de estas características en la consola de Cayenne, lo mas sencillo es configurarlo como entrada genérico del tipo Digital Input y subtipo SigitalSensor.
Si ha seguido el circuito propuesto, los valores propuestos que debería configurar son los siguientes
- Widget Name: Digital Input
- Widget: Graph
- Numero de decimals:0
En el apartado «Device Settings» pondremos:
- Select GPIO: Integrated GPIO
- Select Channel: Channel 18
- Invert logic :check activado
Obviamente añadiremos estos valores y pulsaremos sobre el boton «save» para hacer efectiva esta configuración
CONFIGURACION ZUMBADOR
Dado que no existe un zumbador como tal en la consola de cayenne, lo mas sencillo es configurarlo como salida genérico del tipo RelaySwitch . Si ha seguido el circuito propuesto, los valores propuestos que debería configurar son los siguientes
- Widget Name: Buzzer
- Choose Widget: Button
- Choose Icon: Light
- Number de decimals:0
En el apartado «Device Settings» pondremos:
- Select GPIO: Integrated GPIO
- Select Channel: Channel 17
- Invert logic :check deactivado
Obviamente añadiremos estos valores y pulsaremos sobre el boton «save» para hacer efectiva esta configuración
TRIGGERS
Si ha seguido todos los pasos anteriores tendremos en la consola de Cayenne nuestra placa Rasberry Pi con la información en tiempo real de la temperatura o detección de gas e incluso un botón que nos permite activar o desactivar a voluntad el zumbador .
Ademas por si fuera poco gracias a la aplicación móvil , también podemos ver en esta en tiempo real lo que están captando los sensores que hemos instalado y por supuesto activar o desactivar si lo deseamos el zumbador..
Pero aunque el resultado es espectacular todavía nos queda una característica para que el dispositivo sea inteligente : el pode interaccionar ante los eventos de una forma lógica,lo cual lo haremos a través de lo triggers , los cuales nos permitirán desencadenar acciones ante cambios en las variables medidas por los sensores.
A la hora de definir triggers en Cayenne podemos hacerlo tantodesencadenado acciones como pueden ser enviar corres de notificaciones o envio de SMS’s a los destinatarios acordados o bien actuar sobre las salidas.
Para definir un disparador en myTriggers,pulsaremos «New Trigger» y nos presentara dos partes:
- IF ; aqui arrastraemos el desecadenante, lo cual necesariamene siempre sera la lectura de un sensor ( en uestro caso el termometro o el detector de gas)
- THEN: aqui definiremos lo que queremos que se ejecute cuando se cumpla la condición del IF. Como comentábamos se pueden actuar por dos vías : se puede activar /desactivar nuestra actuador ( el buzzer) o también enviar correos o SMS’s
Como ejemplo se pueden definir lo siguientes triggers:
- IF DS1820 <42º THEN RELE(channel17) =OFF
- IF Channel18=ON THEN RELE(channel17) =ON
- IF Channel18=ON THEN Send e-mail to…
- IF DS2820>90º THEN Send e-mail to..
- etc
Es obvio que las posibilidades son infinitas ( y las mejoras de este proyecto también), pero desde luego un circuito así es indudable la gran utilidad que puede tener.¿Se anima a replicarlo?
Más información aqui
5 respuestas a “Alarma inteligente de Humos”