Monitorización de gases con Arduino

Gracias  a la plataforma de Cayenne , de la que hemos hablado en este blog en numerosas  ocasiones, es bastante sencillo monitorizar cualquier variable física  de un modo realmente sencillo  simplemente arrastrando al panel de control de Cayenne sin escribir apenas código, tanto para el dispositivo IoT como para la parte web  o incluso la app móvil,  pues incluso proporcionan una app multipropósito para controlar su dispositivo IoT.

En esta ocasión  ejemplo  vamos a lo fácil que es crear un monitor temperatura ,humedad y humos  usando Arduino   y la plataforma Cayenne , sin tener conocimientos  de programación consiguiendo controlar o monitorizar  un Arduino o Raspberry Pi    en tan solo unos minutos.

 

En efecto   gracias  a un  framework  genérico desarrollado por  myDevices IO Project Builder llamado Cayenne , los desarrolladores , fabricantes y  también aficionados  pueden  construir rápidamente prototipos y proyectos que requieran controlar o monitorizar   cualquier cosa conectada a una  Raspberry  o un ARduino  , permitiendo con una sóla cuenta gratuita de Cayenne, crear un número ilimitado de proyectos  mediante una solución  muy sencilla  basada en arrastrar y solta.
Obviamente el punto fuerte de Cayenne  son las  capacidades de  IO  para que pueda controlar de forma remota sensores, motores, actuadores, incluidas los puertos  de GPIO con  almacenamiento ilimitado de datos recogidos por los componentes de hardware,   triggers y alertas,  pues  proporcionan las herramientas necesarias para la automatización y la capacidad de configurar alertas. 
Ademas desde el interfaz se puede crear cuadros de mando personalizados para mostrar su proyecto con arrastrar y soltar widgets que también son totalmente personalizables.

Resumidamente algunas  características clave de esta novedosa  plataforma son las siguientes:

  •  Ofrecen una aplicación móvil para configurar, el monitor y los dispositivos de control y sensores desde cualquier lugar.
  • Fácil instalación que conecta rápidamente los dispositivos, sensores, actuadores, y las extensiones en cuestión de minutos.
  • Motor de reglas para desencadenar acciones a través de dispositivos.
  • Panel personalizable con widgets de visualización de arrastrar y soltar.
  • Programación de las luces, motores y actuadores
  •  Control de GPIO que se pueden configurar desde una aplicación móvil o  desde un navegador
  • Acceso remoto instantáneo desde su smartphone o con un ordenador
  • Para construir un proyecto de la IO a partir de cero se ha logrado el objetivo de proporcionar  un Proyecto Generador de IO que reduce el tiempo de desarrollo de horas en lugar de meses.

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 un Arduino   y  un hardware especifico consistente en un DHT22 , un detector de  gas   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 termicos 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.

 

Monitorización de gases con Arduino

En esta  ocasión vamos  a ver  cómo monitorizar  temperatura, humedad así como ofrecer a alertas en tiempo real  si suben  las concentraciones de gas o humo respecto al nivel normal usando la plataforma a Arduino (si no dispone de un Arduino , un    proyecto  muy similar  lo  abordamos en este blog  con una Raspberry Pi 2)

Como vamos  a ver es realmente sencillo  construir un proyecto de este tipo  usando la plataforma  Cayenne  y desde luego  muy útil , pues podemos prevenir fuego o incluso  fugas de gas  en cualquier lugar   monitorizando  ademas en tiempo real desde Internet.

El hardware  necesario para este proyecto es el  que describimos  a continuación:

  • Arduino Mega 2560(unos 12€ en Amazon)
  • Escudo Ethernet W5100 (unos 12€ en Amazon)
  • Sensor DHT22 (unos 8€ en Amazon)
  • Sensor MQ2 (unos 5€ en Amazon)

 

Sensor de Co2

Como sensor de humo se ha usado 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 : 0.1 – 0 .3 V (relativa a polución , La máxima concentración se muestra con un  voltaje de 4 V
  • 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

 

Para conectar el  detector de gases a nuestra  placa Arduino, es esta ocasión optaremos por usar el puerto  analógico A0,  que conectaremos a la salida analógica  2 del sensor ( marcado como OUT).

La alimentación del sensor la tomaremos desde cualquiera de las dos conexiones de +5V de nuestra Arduino conectándo al pin 4 del sensor (marcado como +5v) y la conexión de masa pal pin1 del detector ( marcado como GND)

Sensor DHTXX

DHT11 y  DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad usando ademas un único  hilo para comunicar los datos vía serie, para lo cual  ambos  disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino o ESP8266.

Ambos son similares ( DHT11 presenta una carcasa azul  , mientras que el sensor DHT22  es blanco)  compartiendo además los mismos pines  disponiendo de  4 patillas, de las cuales usaremos sólo 3: Vcc, Output y GND.  Como peculiaridad ,la  salida la conectaremos a una entrada digital  , pero necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El  DHT11  puede medir temperaturas entre 0 a 50, con una precisión de 2ºC, humedad entre 20 a 80%, con precisión del 5% y con una a frecuencia de muestreo de 1 muestras por segundo (1 Hz)

En clara superioridad  con el dHT11 , el modelo DHT22 tiene unas características mucho más profesionales.
  • Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
  • Medición de humedad entre 0 a 100%, con precisión del 2-5%.
  • Frecuencia de muestreo de 2 muestras por segundo (2 Hz)

Destacar que este tipo de  sensores de temperatura  ( y, aún más, los sensores de humedad) , son sensores con elevada inercia y tiempos de respuesta elevados. Es decir, al “lentos” para reflejar los cambios en la medición.

Conectar el DHT11   o el DHT22  a  un Arduino o ESP82366  es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada digital de Arduino como por ejemplo el pin 22  (No necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output al llevarla ya  integrada la placa ).

El esquema eléctrico queda como la siguiente imagen:

 

Los sensores DHT11 y DHT22 usan su propio sistema de comunicación bidireccional mediante un único hilo , empleando señales temporizadas por lo que en general, lo normal es que empleemos una librería existente para simplificar el proceso.Por ejemplo podemos usar la librería de Adafruit disponible en este enlace.

En este ejemplo como podemos  en el esquema final ver, el pin  digital usado es el el pin 22

Como realmente  lo que buscamos es controlar los puertos del GPIO  a distancia y mediante un interfaz gráfico remoto, para comenzar la configuración de su Arduno   ,lo primero es crear una cuenta gratuita en cayenne-mydevices.com que servirá tanto para entrar en la consola web como en la aplicación móvil.

Para ello, vaya a la siguiente url  e introduzca simplemente su nombre ,dirección de correo y una clave de acceso  que  utilizara para validarse.

paso1.png

Una vez registrado , solamente tendrá que elegir la plataforma  para avanzar en el asistente. Obviamente   seleccionamos  en nuestro caso   Arduino

paso2.png

El  siguiente pasos es obtener el Token para nuestro Arduino , el cual copiaremos en nuestro skecth

 Cargar Sketch

Necesitaremos    añadir el valor del token de Cayenne al obtenido  en el paso anterior  y cargar el  siguiente código .(fuente MQ2)

#include «CayenneEthernet.h»
#include «DHT.h»

#define DHTPIN 22
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

char token[] = «»; //fill with your token

const int MQ2 = A0;

void setup()
{
Serial.begin(115200);
Cayenne.begin(token);
dht.begin();
}

void loop()
{
Cayenne.run();
}

CAYENNE_OUT(V0)
{
float t = dht.readTemperature();
Cayenne.virtualWrite(V0, t); //virtual pin
}

CAYENNE_OUT(V1)
{
float h = dht.readHumidity();
Cayenne.virtualWrite(V1, h); //virtual pin
}

CAYENNE_OUT(V2) {
Cayenne.virtualWrite(V2, MQ2);
}

 Configuración Cayenne

Montado ya el circuito y cargado el firmware de Arduino  ( y por supuesto conectado este a Internet ) , lo siguiente es, configurar el panel de control de  Cayenne  y  añadir un widget para sensor de gas MQ2 al pin virtual 2.

 

Si ha seguido todos los pasos anteriores tendremos en la consola de Cayenne nuestra placa Arduino  con la información en tiempo real de la temperatura o detección de gas.Ademas, por si fuera poco gracias a la aplicación móvil  de Cayenne , también podemos ver en esta en tiempo real lo que están captando los sensores que hemos instalado

Pero aunque el resultado es espectacular todavía nos queda una característica para que el dispositivo sea inteligente : el poder 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

En este caso   puede establecer   el trigger para MQ2 sensor de gas  si el valor supera el valor  500,  que  entonces de  una alerta a su teléfono móvil.

 

 

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?

 

Fuente  parcial  instructables.com

Deja una respuesta