Alarma inteligente de Humos

Gracias al sw de Cayenne es posible construir equipos muy avanzados sin necesidad de programar nada con un aspecto gratamente muy profesional. Ademas, si sospesamos 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 .

COMPONENTES NECESARIOS

Para montar la solución propuesta necesitamos los siguientes elementos:

  • Zumbador de 5V
  • DS18B20
  • Resistencia de 4k7 1/4 w
  • Sensor de Co2 basado en MQ4
  • Raspberry Pi 2 o superior con Raspbian Instalado
  • 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)

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.

Cada sensor tiene un número de serie único de 64 bits grabado en él lo cual permite un gran número de sensores que se utilizarán en un bus de datos.

La temperatura se obtiene en un formato de módulo y signo de nueve bits. El bit más significativo (MSB) corresponde al signo y el bit menos significativo tiene un peso de 0.5 °C, el subsiguiente en sentido creciente 1°C, el bit 2 estará asociado a 2°C, hasta el bit 7 cuyo peso será de 64°C. Para la comparación con los valores de máxima y mínima se toman sólo los 8 bits más significativos (incluyendo al signo), descartando el 0.5°C.

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.

Internamente cuenta con un microprocesador ,un par de osciladores de frecuencia proporcional a la temperatura (uno de ellos de frecuencia proporcional a la alta temperatura actúa como habilitación (gate) del conteo del oscilador de frecuencia proporcional a la baja temperatura )y un circuito (Slope Accumulator) encargado de compensar las alinealidades de la variación de frecuencia de los osciladores con la temperatura.

A los comandos tradicionales de los botones como: lectura de ROM, búsqueda de ROM, coincidencia de ROM, salteo de ROM, se agregan nuevos comandos por el bus de un conductor, como convertir temperatura, leer, copiar o escribir la memoria temporaria (scratchpad) y buscar alarmas(estas alarmas son comparadas con el valor de temperatura medido inmediatamente de terminada la medición, es decir que el flag de alarma será actualizado después de cada medición).

CONEXIÓN DEL DS18B20

El DS18B20 envia 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.

Para complementar nuestro detector se ha añadido un detector de gases basado en el circuito MQ4.

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 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 .

Estos detectores son 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 modulo 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

Ya tenemos los dos sensores , así que aunque podemos intereactuar ante variaciones de las lecturas de los sensores enviando correos o enviando SMS’s (como vamos a ver en el siguiente paso),es muy interesante añadir también un aviso auditivo que podemos activar cuando decidamos.

Para los avisos acústicos, lo mas sencillo es usar un simple zumbador de 5V que 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

Montado el circuito y nuestra Rasberry corriendo con Rasbian y el agente Cayenne ,únicamente nos queda configurar el sensor de gas y el buzzzer así como las condiciones o eventos que harán que disparen los avisos

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 tanto desencadenado 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?

http://www.instructables.com/id/Alarma-Inteligente-De-Humos/

Great Instructable, @soloelectronicos! Very detailed and useful.

I have ordered some of these sensors as well.

I wonder if they are sensitive enough to use in the bathroom and turn the fan on if the methane is too high :stuck_out_tongue:

Thx,

Craig

1 Like