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:

 

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.

 

Picture of Setup Cayenne Dashboard

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.

 

Picture of Setup Cayenne Dashboard
Picture of Setup Cayenne Dashboard

 

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

Anuncios

Construya su huerto robotico


En efecto   ya es posible  construirse   un huerto robótico ,  donde incluso el sw de gestión es open sw y cuyo cerebro no podía ser otro que una Raspberry Pi 3  .

Evidentemente para llevarlo a  la praxis realmente la barrera no es otra que el exigente hardware para controlar el huerto en si , pues este requiere  de una gran cantidad de elementos  que sin duda hacen mucho mas complejo  su construcción ,pero la buena  noticia  es que   aproximadamente FarmBot (que es la empresa que hay detrás de las idea)  prometen simplificarlo mediante diferentes kits  si esta dispuesto a  realizar una inversión entre 2595$ ( la version standard) o la 3795$ ( la version XL)

Aparte del potente hardware que funciona a modo de un puente grúa  con un cabezal multiherramienta bastante original llama la atención el sw para controlarlo bajo el concepto de arrastrar y soltar donde se puede diseñar gráficamente una granja arrastrando y colocando las plantas en el mapa  desde un interfaz que se  aprende en pocos minutos , por  lo que llevar a la plantación como podemos ver es bastante sencillo ya  que se tendrá todo previsto en todo momento cuando llegue la temporada de cultivo.

Es evidente que unos de los valores mas apreciados en el sw es que permite construir nuevas características,crear  código de propios mods personalizados o soportar  la aplicación web localmente  para ser independiente de la red. Ademas todo el software está bajo la licencia MIT en código abierto (open software)  y este esta compartido en Github , permitiéndole contribuir, copiar, modificar, redistribuir e incluso vender software FarmBot. ¿desea ayudar a crear nuevas funciones o tiene un error que reportar? ¡ Involúcrese en github!

 

En  el sw ademas  se contemplan regímenes de crecimiento  para construir pautas para el cuidado de una planta a lo largo de toda su vida mediante la programación de las secuencias a ejecutar cuando la planta es de una cierta edad. Incluso  los regímenes se pueden reutilizar, haciendo una brisa de replantación. Otro aspecto son las secuencias de construcción donde rápidamente se pude crear secuencias personalizadas para aprovechar al máximo su hardware donde ningún código es requerido. Simplemente arrastrar y soltar las operaciones básicas  ajustar los parámetros y guardar.

Ademas   el control se hace en tiempo real debido a que se pueden  utilizar  las  herramientas en tiempo real con los controles manuales. !Incluso se puede ahuyentar aves en tiempo real ordenándolo desde un smartphone  !

El Hardware ha pasado por grandes esfuerzos al diseño, fabricación y controles de calidad  siendo además, todos los modelos de CAD  públicos así que usted puede construir sus propias piezas.

Respecto  a  los elementos el hw ( que incluyen ambos kits)  estos son los elementos que lo   componen:

  • Extrusiones de aluminio para las pistas, pórtico y eje z
  • Placas de aluminio de 5mm anodizado
  • V-ruedas con rodamientos de bolas de goma sellada de acero inoxidable
  • Moldeado de inyección UV estabilizado componentes de plástico ABS
  • Tornillos de acero inoxidable, tuercas t, separadores y otros hardware
  • Cuatro motores de pasos NEMA 17 con codificadores rotatorios y cables
  • GT2 de correas y poleas de aluminio
  • Portacables de plástico durable
  • Acero inoxidable leadsrew y delrin bloque de 8mm alta tolerancia
  • Fuente de alimentación impermeable IP67 con 110 y 220V CA
  • Raspberry Pi 3 y 8GB de tarjeta microSD
  • Farmduino microcontrolador con montado y probado con controladores paso a paso
  • Caja o impermeable para la electrónica
  • Montaje de la herramienta universal, cubierta y cable de 12 hilos
  • Herramienta de inyector de semilla con bomba de vacío, tubos, compartimiento de la semilla, bandeja de la semilla y agujas de bloqueo luer adaptable (3 dimensiones)
  • Boquilla de  riego con válvula solenoide, tubos y adaptadores para manguera de jardín estándar de Estados Unidos
  • Herramienta de sensor de suelo
  • Herramienta desyerba con implementos personalizables
  • cámara  USB IP67 impermeable
  • Dos toolbays de 3 ranuras

 

En este video podemos ver el equipo en funcionamiento !es impresionante!

 

Software

OpenFarm.CC fue concebido originalmente como un pequeño componente del proyecto FarmBot. A medida que se progresó, se hizo evidente que OpenFarm no tenía ninguna razón para estar atado a FarmBot, sino que podría vivir por sí solo. En septiembre de 2014, 1.605 personas respaldaron a OpenFarm en el pedal. Hoy en día, OpenFarm es una aplicación independiente, sin fines de lucro y comunidad. Puede de hecho involucrarse con OpenFarm uniendo el canal  y  contribuyendo en Github, o yendo a OpenFarm.cc y creando contenido!

Hay muchos sistemas de software que contribuyen a la funcionalidad de FarmBot. El siguiente diagrama muestra los diferentes componentes y la forma en que los datos fluyen entre ellos. Lea las breves descripciones de cada componente en las siguientes secciones para entender el sistema como un todo, y luego Sumérjase en la configuración de los componentes necesarios para su FarmBot.

La aplicación web FarmBot  ,como se pude ver en el video  anterior, permite configurar y controlar fácilmente  FarmBot desde un navegador web en su laptop, Tablet o smartphone. La aplicación cuenta con controles manuales en tiempo real y registro, un generador de secuencias para crear rutinas personalizadas para que se ejecute FarmBot y un diseñador de granjas de arrastrar y soltar para que pueda diseñar y administrar gráficamente su granja.

El broker de mensajes es una aplicación de nube que actúa como intermediario para todos los mensajes entre la aplicación web FarmBot y los dispositivos FarmBot . Maneja conexiones de socket, identificación de dispositivos y autenticación.

FarmBot Raspberry PI utiliza un sistema operativo personalizado llamado FarmBot os para mantener una conexión y sincronizar con la aplicación web a través del intermediario de mensajes. Esto permite a FarmBot descargar y ejecutar eventos programados, ser controlados en tiempo real, y cargar logs y datos de sensores. El SO se comunica con el Arduino sobre USB para enviar comandos de código G y F y también recibir datos recopilados.

FarmBot os tiene una utilidad integrada denominada Configurator que permite introducir fácilmente las credenciales de WiFi y de aplicación web desde un dispositivo habilitado para WiFi (como un ordenador portátil o un smartphone). Esto es útil para la configuración inicial con el fin de obtener su FarmBot conectado a su casa wifi.

Respecto  firmware  Farmbot para Arduino es flasheado en el microcontrolador Arduino mega 2560 de FarmBot y es responsable de operar físicamente el hardware, las herramientas, los sensores  otros componentes electrónicos de FarmBot. Recibe los códigos de G y de F del regulador del PI de la Raspberryde FarmBot vía conexión serial del USB, y después mueve los motores y Lee y escribe los pernos por consiguiente. También envía los datos recogidos de los codificadores rotatorios y el PIN Lee de nuevo a la Raspberry PI.

OpenFarm.cc es una base de datos gratuita y abierta para la agricultura y el conocimiento de jardinería. Este servicio proporciona información de cultivo y crecimiento a la aplicación web para un usuario racionalizado experimentado.

 

Hardware

FarmBot Genesis es  la plataforma de hardware de código abierto de bricolaje optimizada para la producción de alimentos a pequeña escala basada en el suelo .FarmBot Genesis , quee s la version mas económica ,  está diseñado para ser una Fundación FarmBot flexible para la experimentación, prototipado y hacking. Los factores que conducen detrás del diseño son simplicidad, manufacturabilidad, escalabilidad, y hackeabilidad.

FarmBot Genesis es una pequeña escala FarmBot principalmente construida a partir de protuberancias en V-ranura de aluminio y placas de aluminio y soportes. Génesis es conducida por cuatro motores de pasos NEMA 17 con codificadores rotativos, el microcontrolador Farmduino, y un ordenador de frambuesa PI 3. El Génesis puede variar en tamaño desde un área de plantación tan pequeña como 1m2 hasta un máximo de 4,5 m2, mientras que alberga una altura máxima de planta de aproximadamente 1m. Con el hardware y las modificaciones adicionales Anticipamos que el concepto del Génesis podría escalar a aproximadamente 50 m2 y una altura máxima de la planta de 1.5 m.

Como vemos  Farmbot no es su producto típico pues sus creadores  han pasado por grandes esfuerzos para diseñar FarmBot Genesis para ser duraderos, fácilmente ensamblados y modificados con herramientas comunes, construidos a partir de componentes en gran parte fuera de la plataforma, y fabricados con procesos y materiales fácilmente disponibles. Nada sobre FarmBot habla de obsolescencia o de propiedad.

Las pistas son uno de los componentes que realmente diferencian la tecnología de FarmBot de los tractores de ruedas tradicionales de conducción libre. Las pistas son las que permiten al sistema tener una gran precisión de una manera eficiente y sencilla. Hay muchas razones de por qué las pistas son superiores, algunas de las cuales se enumeran a continuación.

  • Las pistas proporcionan una gran precisión y permiten que el FarmBot vuelva a la misma posición repetidamente
  • Cualquier tipo de estructura de empaque de las plantas se puede crear y manejar
  • Las pistas ocupan menos área que las trayectorias para las ruedas del tractor y no compactan el suelo

El pórtico es el componente estructural que puentea las dos pistas y se mueve en la x-dirección vía un sistema de impulsión de la x-dirección. Típicamente, sirve como una guía lineal para el deslizamiento transversal y una base para el sistema de impulsión de la y-dirección que mueve el Cruz-resbale a través del pórtico en la y-dirección. También puede servir como base para el montaje de otras herramientas, electrónica, suministros y/o sensores.

La Cruz se mueve en la Y-dirección a través del pórtico. Este movimiento proporciona el segundo grado mayor de libertad para FarmBots y permite que las operaciones como la plantación se realicen en cualquier lugar del plano XY. El deslizamiento transversal se desplaza utilizando un sistema de impulsión y-dirección y funciona como la base para el montaje de la herramienta y el sistema de la impulsión de la Z-dirección.
Eje Z

El eje z se conecta a la corredera transversal y proporciona el FarmBot con movimiento de dirección z. Sirve como base para la fijación del montaje universal de la herramienta y de otras herramientas. .

Para que los FarmBots crezcan adecuadamente las plantas más altas, el pórtico, la corredera transversal, el eje Z y las herramientas deben tener una separación vertical adecuada de las plantas. Esto generalmente se puede lograr de dos maneras:

  • Usando pistas levantadas y un pórtico Low-Profile
  • Usando pistas bajas con un pórtico alto

En general, el uso de pistas bajas con un pórtico alto es el mejor diseño, especialmente para aplicaciones más grandes, ya que ahorra en costo material, es menos de una monstruosidad, bloquea menos luz del sol, y sería más fácil de mantener. Sin embargo, en el caso de un FarmBot que se está instalando en un invernadero u otra estructura, utilizando las paredes existentes para apoyar las pistas más altas puede ser una mejor solución.

 

El  Soporte universal para herramientas (universal Tool Mount o UTM)  permite a FarmBot Genesis cambiar automáticamente las herramientas para realizar diferentes operaciones. La UTM es necesaria porque no es factible tener todas las herramientas montadas en el eje z al mismo tiempo por varias razones:

  • Esto sería muy pesado y aumentaría las tensiones en todos los componentes, así como requerir un motor más grande del z-axis.
  • La mayoría de las herramientas necesitan ser la cosa “más baja” en el eje z para poder trabajar. Tener múltiples herramientas compitiendo por la posición más baja (ej: una sonda de temperatura y un inyector de semillas) no sería ideal y puede que no funcione en absoluto. El uso de mecanismos de elevación y descenso de herramientas individuales, o un mecanismo de estilo de torreta sería complejo, pesado, voluminoso y limitado en el número de herramientas que podría soportar.
  • El tamaño del eje z debe mantenerse a un mínimo para que tenga un impacto mínimo sobre las plantas, especialmente cuando no hay mucho espacio entre ellos.

La UTM es un componente de plástico que se monta en la extrusión de aluminio del eje z utilizando dos tornillos M5 y tuercas en t.Algunas de sus características:

  • 3 imanes fuertes del anillo del neodimio para sostener magnético las herramientas en el lugar vía otros imanes colocados en la misma configuración en la herramienta.
  • Pasadizos para agua, enmiendas líquidas (ej.: abono), y vacío o aire comprimido para pasar de la UTM (y el resto de FarmBot) a la herramienta.
  • 12 tornillos de resorte que hacen conexiones eléctricas con herramientas.

 

Es como vemos una de las partes cruciales del proyecto pues la que realemnte actua sobe las plantas. Precisamente en este video nos explican en que consiste esta versátil herramienta;

 

Mas información en https://farm.bot/

 

Huerto controlado por raspberry


Carolina Herrero nos propone un sistema de un sistema automatizado para riego  que  ademas  no precisa de conexión a Internet porque todas las medidas se  gestionan de forma interna y por tanto no precisan ningún servicio de IoT  para su  funcionamiento ( como por ejemplo Cayenne.com del que  hemos hablado numerosas ocasiones en este blog)

 

La idea principal de Carolina era construir un sistema de riego automático, controlado por diferentes tipos de sensores, de forma que el sistema tomase decisiones de modo automático  guiándose  en función de las condiciones del ambiente y la necesidad de riego que tiene la tierra según el grado de humedad  de modo que cuando las condiciones fuesen óptimas comenzase el riego(, siempre y cuando exista agua en el depósito)
Además su creadora  también quería que los datos se almacenaran de forma periódica en una base de datos local  mySQL  , y a través de una aplicación Web, con sus  credenciales poder acceder y ver un histórico gráfico de las mediciones de los sensores .
Para conseguir esto básicamente   ha utilizado:
  • Varios  Sensores
  • Una placa  Microcontroladora
  • Un Servidor local

Sensores

El sistema utiliza diferentes tipos de sensores, porque se requiere  controlar diversos valores como son :
  • Valores de la humedad de la tierra para lo que se usa un sensor conocido como YL-69, que consiste en dos picas que se encuentran enterradas en tierra de manera que controlando la resistencia de la tierra se puede conocer la humedad.Esta es una herramienta indispensable para un jardín conectado  pues por si mismo nos puede  recordar que debe regar las plantas de interior o para monitorear la humedad del suelo en su jardín . Se alimenta a: 3.3V-5V   y el modo de módulo de salida dual, salida digital, salida analógica más precisa

  • Para recoger los valores de humedad y temperatura ambiente se utiliza un  simple sensor DHT11 (si bien  un DHT22 hubiese sido  mas recomendable por su mayor precisión , aunque es cierto que su coste es algo mayor)                                                   
  • De la temperatura del suelo se encarga el DS18B20, un sensor sumergible y resistente a la humedad, que se usará para controlar la temperatura de la tierra. 
  • Por seguridad, y para evitar que las bombas funcionen en vacío, y puedan dañarse, es imprescindible controlar el nivel de agua que hay en el depósito, y estos se consigue con un sensor de nivel .Estos sensores pueden medir humedad entre el 10% -90% sin condensación con un consumo de menos de 20mA y ofreciendo una salida analógica con  un área de detección de 40mmx16mm
  •  Por último controlar si hay luz o no, para evitar el riego de noches se ha usado un sensor de luz, también conocido como resistencia LDR.

Arduino

El encargado de recoger todos los  valores  procedentes de los sensores descritos y tomar las acciones necesarias es una placa  sistema Arduino  que ha sido programado para recoger datos, actuar en función de los valores de dichos datos, y en última instancia se encarga de mandarlos a un servidor ( una Raspberry Pi) para su seguimiento estadístico  de modo que en principio si no nos interesa seguir esa traza perfectamente el proyecto quedaría únicamente con esta placa   y sus sensores .

Aquí su autora comparte  una parte del código encargado de recoger los datos, y enviarlos por el puerto serie.

//Función que se encarga de leer datos de todos los sensores
void leer_datos_sensores(){
  valor_ha = dht.readHumidity();             //Se lee la humedad en el ambiente
  valor_ta = dht.readTemperature();          //Se lee la temperatura en el ambiente
  valor_ht1 = analogRead(hum_tierra1);       //Se lee humedad en tierra en la zona1
  valor_na = analogRead(nivel_agua);         //Se mide el nivel de agua existente en el depósito
  valor_luz = analogRead(luz_ldr);           //Se lee la luz
  DS18B20.requestTemperatures();             //Prepara el sensor para la lectura
  valor_tt1 = DS18B20.getTempCByIndex(0);    //Se lee la temperatura en tierra en la zona 1        
}
//Función para enviar valores de los sensores por el puerto serie
void enviar_datos(){
  Serial.print(valor_ha);Serial.print(“,”);
  Serial.print(valor_ta);Serial.print(“,”);
  Serial.print(valor_ht1);Serial.print(“,”);
  Serial.print(valor_na);Serial.print(“,”);
  Serial.print(valor_luz);Serial.print(“,”);
  Serial.print(valor_tt1);Serial.print(“,”);
}

Servidor web y BBDD

Como servidor no podía ser de otra manera que optar  por una Raspberry PI conRaspbian, basada en Debian  y que  hace  de servidor  Base de Datos, y además también de de Servidor Web.
Como servidor web se usa el Servidor Web Apache funcionando junto con MySQL como servidor de BBDD.
Además para que Arduino y Raspberry se comuniquen entre sí, se requiere un script en Python, que se encarga de recibir los datos por el puerto Serie que Arduino está enviando de forma constante .
Básicamente este script recibe los datos de Arduino  , se conecta con la  BBDD MySql  e inserta los datos.
#!/usr/bin/python
#-*- coding: UTF-8 -*-
 
import MySQLdb
import serial
 
# Establecemos la conexión con la base de datos
bd = MySQLdb.connect(“host”,“user”,“pass”,“db” )
# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
cursor = bd.cursor()
 
#Inicia la comunicación con el puerto serie
PuertoSerie= serial.Serial(‘/dev/ttyACM0’, 9600)
#Lectura de datos
sArduino = PuertoSerie.readline()
#Separa la cadena en valores, cada valor hasta la coma es almacenado en una variable
sHumAmbiente,sTempAmbiente,sHumTierra1,sNivelAgua,sLuz,sTempTierra1=sArduino.split(“,”)
 
ha = float(sHumAmbiente)
ta = float(sTempAmbiente)
ht1 = int(sHumTierra1)
na = int(sNivelAgua)
luz = int(sLuz)
tt1 = float(sTempTierra1)
zona1 = 1
 
 
#Almacenamos los valores en tabla datos de la base de datos huerto
sql1=“INSERT INTO datos_huerto(hum_ambiente,temp_ambiente,hum_tierra,nivel_agua,luz,temp_tierra,id_zona) VALUES (%f,%f,%d,%d,%d,%f,%d)” % (ha,ta,ht1,na,luz,tt1,zona1)
 
try:
   # Ejecutamos el comando
   cursor.execute(sql1)
   bd.commit()
except:
   print “Error”
   bd.rollback()
 
# Nos desconectamos de la base de datos
bd.close()
Para se hacer esto  de forma periódica pero no constante, puede usarse  la herramienta Cron integrada en Raspbian, de manera que cada “X” minutos se ejecute el script en Python.
Para la parte de  visualización de los datos la autora opto  por o una aplicación Web sencilla, programada n Php, junto con pequeñas funciones en Javascript para controlar y validar ciertos campos. En el aspecto visual uso  el framework Bootstrap, asi como la  librería HighCharts para la creación de gráficas y así conseguir visualización de los datos muy atractiva.
arduino.png
Es muy importante que si le damos salida a internet a La Rasberry PI  nos cercioremos de que está segura. Para ello es interesante :
  • Modificar el archivo de configuración de Apache, para que ante un ataque muestre la mínima información posible sobre el servido
  • Encriptar el tráfico entre cliente y servidor mediante certificados SSL
  • Forzar para que el acceso siempre sea seguro vía peticiones del tipo  HTTPS.
 Finalmente esta es la lista de componentes utilizados para el sistema:
  • Arduino Mega 2560 Rev.3 x1
  • Raspberry Pi x1
  • Sensor de humedad de tierra YL-69 x 2
  • Sensor de temperatura y humedad ambiente DTH-11 x1
  • Sensor de luz LDR x1
  • Sensor de temperatura de tierra  SD18b20 x2
  • Sensor de nivel de agua x1
  • Placa de 4 relés 5V-220Vx1
  • Bombas de agua x2
  • Protoboard x1
  • Resistencias de pull-up de diferentes valoresx 12
  • Cableado y conectores –
  • Leds de diferentes colores x15
  • Bandeja de plástico x1
  • Piezas de policarbonato x2
  • Recipientes para depósito de agua y electrónica x2
  • Tarjeta SD  para Raspberry PI x1
  • Tubos de goteo x2
  • Plantasx 6
  • Fuente de alimentación 220V x1

Le damos nuestra mas sincera enhorabuena a Laura por su sistema que animamos a que siga perfeccionando así como compartiendo con la comunidad todos sus progresos

Datalogger de posicionamiento con Raspberry Pi y Azure


CÓDIGO

AzureIoTRegistryManagerApp C #
Este es el código de acceso y gestión Azure Registro Hub IO, haciendo uso de la clase RegistryManager.
////The MIT License(MIT)
////Copyright(c) 2016 BardaanA

////Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

////The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

////THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

using System;
using System.Threading.Tasks;

// These are the Microsoft's recommended libraries to access
// and make changes to Azure IoT Hub's Registry
using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Common.Exceptions;

// This namespace which also dictates the name of the Assembly can be anything you desire.
namespace AzureIoTRegistryManagerApp
{
    class Program
    {
        // RegistryManager object which is going to do most of the work for our application
        static RegistryManager registryManager;
        // This here is the Connection String that you copied from the IoT Hub Shared Access Policies > iothubowner > Shared access keys; remember??
        static string connectionString = "Don't forget to replace this with your own connection string";
        // Keeps track of the registry access status
        static string registryAccessStatus = "";

        static void Main(string[] args)
        {
            try
            {
                // Let's try and create a Registry Manager using our connection string, shall we?
                registryManager = RegistryManager.CreateFromConnectionString(connectionString);
                registryAccessStatus = "Successfuly connected to the IoT Hub registry"; // Yay!
            }
            catch(Exception ex)
            {
                Console.WriteLine("Registry access failed!  {0}",ex.Message);  // Bummer!!
            }
            // Check if RegistryManager was created successfully
            if(registryManager != null)
            {
                Console.WriteLine("*****************************************************");
                Console.WriteLine("===== Welcome to the Azure IoT Registry Manager =====");
                Console.WriteLine();
                Console.WriteLine("++ {0} ++",registryAccessStatus);
                Console.WriteLine();
                int menuSelection = 0;
                while(menuSelection != 3)  // Loop to keep you going...
                {
                    Console.WriteLine("  1) Add device into registry");
                    Console.WriteLine("  2) Remove device from the registry");
                    Console.WriteLine("  3) Close this application");
                    Console.WriteLine("------------------------------------");
                    Console.Write("Enter your selection: ");
                    menuSelection = int.Parse(Console.ReadLine());
                    Console.WriteLine();
                    switch(menuSelection)
                    {
                        case 1:
                            Console.Write("Enter device name that you want to register: ");
                            string deviceName = Console.ReadLine();
                            Console.WriteLine();
                            if(deviceName.Length > 0 && !deviceName.Contains(" "))  // Weak validation :)
                            {
                                // Calling method that actually adds the device into the registry
                                AddDevice(deviceName).Wait();
                            }
                            else
                            {
                                Console.WriteLine("---");
                                Console.WriteLine("Enter valid name!");
                                Console.WriteLine("---");
                            }
                            break;
                        case 2:
                            Console.Write("Enter name of the device to be removed: ");
                            string deviceRemoveName = Console.ReadLine();
                            Console.WriteLine();
                            if(deviceRemoveName.Length > 0 && !deviceRemoveName.Contains(" "))  // Weak validation :(
                            {
                                // Calling method that actually removes the device from the registry
                                RemoveDevice(deviceRemoveName).Wait();
                            }
                            else
                            {
                                Console.WriteLine("---");
                                Console.WriteLine("Enter valid name!");
                                Console.WriteLine("---");
                            }
                            break;
                        case 3:
                            // Breaks out of the loop
                            break;
                        default:
                            Console.WriteLine("---");
                            Console.WriteLine("Choose valid entry!");
                            Console.WriteLine("---");
                            break;
                    }
                }
                // Closes the RegistryManager access right before exiting the application
                registryManager.CloseAsync().Wait();
            }
        }

        // Method used to add device into the Registry, takes in a string as a parameter
        private static async Task AddDevice(string deviceId)
        {
            // A Device object
            Device device;
            try
            {
                // Lets try and create a Device into the Device Registry
                device = await registryManager.AddDeviceAsync(new Device(deviceId));
                if(device != null)
                {
                    Console.WriteLine("Device: {0} added successfully!",deviceId); // Hooray!
                }
            }
            catch(DeviceAlreadyExistsException)  // What?
            {
                Console.WriteLine("---");
                Console.WriteLine("This device has already been registered...");// When did I do that??
                Console.WriteLine("---");
                device = await registryManager.GetDeviceAsync(deviceId);
            }
            Console.WriteLine();
            Console.WriteLine("Generated device key: {0}",device.Authentication.SymmetricKey.PrimaryKey);  // Now you're talking!
            Console.WriteLine();
        }

        // Method used to remove a device from the Device Registry, takes a string as a parameter
        private static async Task RemoveDevice(string deviceId)
        {
            try
            {
                // Lets try and get rid of the Device from our registry, using the device id.
                await registryManager.RemoveDeviceAsync(deviceId);
                Console.WriteLine("Device: {0} removed successfully!",deviceId);  // Yup!
            }
            catch(DeviceNotFoundException)
            {
                Console.WriteLine("---");
                Console.WriteLine("This device has not been registered into this registry!");  // Are you sure??
                Console.WriteLine("---");
            }
        }
    }
}

Fuente aqui

Fácil monitorización de temperatura con Cayenne


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  haciendo drug &drop desde el panel de control de Cayenne

En este ejemplo  vamos a  ver lo facil que es crear monitor temperatura con Cayenne  , el  cual  utilizando internet sin tener conocimientos  de programación conseguir controlar o monitorizar lo que quiera  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 placa  con conectividad  , 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 soltar 

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,  que proporcionan las herramientas necesarias para la automatización y la capacidad de configurar alertas. Ademas también 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:

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

Como veremos , hablamos de un constructor de sitio web fácil de usar, pero para proyectos de IOT, así que veamos  los pasos para crear un proyecto de IoT con esta potente herramienta usando  en esta ocasión un clon de Arduino con wifi : el ESP8266

Hardware y Software

Picture of Hardware and Software  Picture of Hardware and SoftwarePicture of Hardware and Software

El hardware  y software a que necesitaremos es el que siguiente:

 

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. Necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El esquema eléctrico queda como la siguiente imagen:

arduino-dht11-dht22-esquema

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.

Conexión de DHT22 a  ESP12E

El  ESP12E    esta basado en Arduino  pero cuenta   también conectividad wifi integrando la propia antena en la placa de circuito impreso en unas  dimensiones de  25.6mm x 34.2mm .  Además, por motivos de reducción de espacio esta placa no integra conexión usb  , para lo cual necesitaremos un USB FTDI   para programarlo o un  controlador Setup CH340g.

Esta placa cuenta con 11 pines digitales de entrada / salida, todos los pines tienen interruptor / pwm / I2C / 1-wire    siendo su chip principal el  ESP8266 CH340G

Una gran diferencia con una placa Arduino es que solo cuenta  con 1 entrada analógica (entrada máxima de 3,3 V)

 

Como  vemos el circuito para conectar al  ESP12E      un sensor de temperatura  no puede ser más sencillo, pues     simplemente alimentaremos con 3.3v DC tanto el DHT22 como el  ESP12E        en sus  pines correspondiente     sin olvidar  que la salida de datos del DH22(pin datos )    tenemos que conectarla al  pin 5 del GPIO

 

 

 Programar el  ESP12E

Para  probar Cayenne  con el  ESP12E       necesitamos  programar su ESP-12E para conectarse a su punto de acceso wifi   . El código fuente a subir  se puede descargar desde https://codebender.cc/embed/sketch:398516

Básicamente  el código a subir al    ESP12E     usa 5 librerías:  tres de Cayenne donde  tendremos que definir el SSID y la pwd de la red wifi asi como las credenciales de Cayenne    , una cuarta de temporización para enviar muestras a intervalos prefijados ( que obviamente podemos cambiar ) y por último la mencionada para la gestión del DTHXX

Es de destacar  la creación  de  dos puertos virtuales  para capturar  los valores  en tiempo real de la temperatura  y la humedad tomadas ambas  del DHTXX  , lo cual nos van a permitir comunicarnos con el API de Cayenne

 

#include "CayenneDefines.h"
#include "CayenneWiFi.h"
#include "CayenneWiFiClient.h"
#include <SimpleTimer.h>
#include "DHT.h"

#define CAYANNE_DEBUG
#define CAYANNE_PRINT Serial
#define DHTPIN 5
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
// Change the value of token, ssid, and pwd to yours
char token[] = "xxxxxx";
char ssid[] = "xxxxxx";
char pwd[] = "xxxxx";
DHT dht(DHTPIN, DHTTYPE);

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Cayenne.begin(token, ssid, pwd);
dht.begin();
}

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
}

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

Importante:  Necesitaremos actualizar  en el código anterior cambiando el valor de ssid, contraseña  configurandola para la red wifi de su hogar y  también no olvidar   registrar  el  token de Cayenne que previamente habrá solicitado  desde la propia web de cayenne.

Configuración Cayenne Dashboard

Hemos hablado en  muchas ocasiones de Cayenne  pues en realidad está concebido para  que su manejo sea realmente sencillo   de configurar

Nos iremos a  su   url :   https://cayenne.mydevices.com/  

Tras registrarnos nos iremos  al panel de control   ,clicamos en  Add new   y seleccionamos generic ESP8266

A continuación nos ofrece  la API key que deberemos añadir al sw del   ESP12E      y tras reiniciarlo  ya debería poderse  comunicar con el node de Cayenne

 

Si la placa  pues   está configurada con el MQTT  ( username /pwd)     asi como con conectividad  wifi ,  ya   debería  de  poder conectarse al framework de Cayenne   y podemos seguir hacia adelante añadiendo sensores que deberan estar de acuerdo con el sw instalado en el ESP12E

En este caso como hemos definido  dos puertos virtuales para temperatura y humedad el firmware del ESP12E  , necesitamos añadir dos widgets  asociados a esos dos canales:

Para la temperatura  no olvidar que habíamos asignado el primer puerto virtual, el cual ue debemos asignar al widget:
Para la humedad   no olvidar que habíamos asignado el segundo puerto virtual, el cual ue debemos asignar al widget:
Finalmente al asignar los dos widgets  , si esta la placa conectada , debería mostrar un panel similar al siguiente  en el que se jha añadido un widget nuevo asociado al puerto analogico

Configuración de su primer  trigger

Los triggers  o disparadores en Cayenne son una forma de hacer que su placa  reaccione a un cambio  de un sensor conectado a él. Esto podría ser algo tan simple como un valor de temperatura superior a un cierto valor o incluso sólo si el ESP12E pierde la conexión, lo cual como se podría imaginar puede ser muy potente en la creación de dispositivos inteligentes que reaccionan a los alrededores ( como por ejemplo, si la habitación se pone demasiado fría, encienda un  calefactor, etc ).

El proceso de agregar un disparador es muy sencillo como vamos a ver a continuacion:

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. El nombre de su trigger, voy a llamar a la mía “demasiado caliente”.
  4. Ahora arrastrar y soltar su  ESP12E  desde la esquina izquierda en el caso de la caja.
  5. Por debajo de esto seleccionar el sensor de temperatura y tienen casilla junto a “por encima de la temperatura” seleccionado. (Si las opciones del dispositivo no se muestran simplemente actualizar la página)
  6. Ahora en el cuadro de selección a continuación, notificación y agregar una dirección de correo electrónico o número de teléfono de un mensaje de texto (puede agregar ambos).Asegúrese de marcar las casillas de verificación también.Dispara demasiado caliente
  7. Ahora haga clic en “Save trigger”.
  8. Ahora se debe guardar y le enviará una alerta cada vez que el sensor de temperatura es más de 40 grados Celsius.
  9. También puede arrastrar el ESP12E en el cuadro a continuación, y tienen que hacer muchas cosas, incluyendo el control de los dispositivos de salida. Por ejemplo, puede  añadir un LED que se activará cuando la temperatura supere los 40 grados Celsius.
  10. Para hacer clic en el gatillo de disparo LED de nueva situada en la parte superior de la página. Nombre esta activar el gatillo LED.
  11. Ahora arrastrar el Pi en el caso de la caja y luego seleccione el sensor de temperatura de nuevo con 40 grados centígrados por encima.
  12. Ahora arrastrar el ESP12E  en cuadro a continuación. Seleccione nuestra salida digital y marque la casilla de verificación activada.
  13. Ahora haga clic en Save trigger.
  14. Ahora, cada vez que nuestro sensor de temperatura conectado al Pi informe una temperatura superior a 40 grados Celsius, enviará un correo electrónico y encenderá el LED.También necesitará agregar otro disparador para apagar el LED cuando caiga por debajo de los 40 

Mydevices cayennem Disparadores

 

 

 

Sin duda hay infinitas posibilidades como el lector   puede imaginar

 

Monte su detector de humo en 2 minutos


Un detector de humo es una alarma que detecta la presencia de humo en el aire y emite una señal acústica  de gran intensidad avisando del posible  peligro de incendio lo cual en ocasiones ,por ejemplo por la noche,  pueden salvarnos literalmente la vida, pues en estados de sueño profundo,   tardamos mucho en reaccionar ante señales evidentes  de posibles incendios. Personalmente creo que es una “inversión” (sobre  15€)   que merece la pena realizar , pues como vamos a ver,  no es para nada complicado su instalación.

 

 

Hay muchos tipos de detectores  diferenciándose sobre todos según al método de detección   implementado en la electronica  que contienen: los iónicos  y los ópticos .

Los menos usados , son los ser  iónicos  , mayormente usados para la detección de gases en ambientes industriales ,los cuales  no son visibles a simple vista .

Estos sensores constan de una cámara formada por dos placas y un material radiactivo (Americio 241), que ioniza el aire que pasa entre las placas,  generando  una pequeña corriente eléctrica permanente, que es medida por un circuito electrónico conectado a las placas, siendo esta  la condición “normal” del detector

 

iones.PNG

Este tipo de composición, los hace  especialmente sensibles a los humos que contienen pequeñas partículas presentes en  de fuego de crecimiento rápido y humo no visible, tal como el que se genera en fuegos de combustión rápida provocados por: gasolina, alcohol, aceites, plásticos, líquidos químicos, etc.  normalmente presentes en laboratorios, talleres, tiendas de pintura,etc.

 

Los  detectores ópticos  son en general  mayormente usados en la actualidad por  su gran fiabilidad   y  bajo precio  detectando humos visibles mediante la absorción o difusión de la luz , pudiendo ser   según la electronica :

  • De infrarrojos directos:   el humo obstaculiza  la luz producida por un led  infrarojo enfrentado a  un LDR generando una alarma
  • De láser : funcionan de un modo parecido al anterior  detectando  un oscurecimiento de una cámara de aglutinación con tecnología láser
  • De tipo puntual : es la tecnologia mas extendida por su gran fiabilidad,   estando  los detectores  puntuales  tanto el emisor y receptor alojados en la misma cámara ( es decir  no se ven al formar sus ejes un ángulo mayor de 90º)  y ademas  separados por una pantalla, de manera que el rayo emitido no alcanza el receptor. Cuando entra humo en la cámara, el haz de luz emitido se refracta en las partículas de humo y puede alcanzar al receptor, activándose la alarma.

sesnor.png

 

Normativa

NF EN 14604  es una normativa  de Noviembre de 2005 DI 89/106 / CE 21/12/1988 que indica la directiva sobre la aproximación de las disposiciones legales, reglamentarias y administrativas de los Estados miembros sobre los productos de construcción.

Esta norma europea especifica los requisitos, métodos de prueba, criterios de rendimiento e instrucciones del fabricante para dispositivos de alarma de humo que utilizan el principio de dispersión o transmisión de la luz, o ionización, para aplicaciones domésticas o similares.

La norma incluye requisitos adicionales para dispositivos de alarma de humo que también son adecuados para su uso en autocaravanas. Para probar otros tipos de dispositivos de alarma de humo o dispositivos de alarma de humo que operan bajo diferentes principios, esta norma debe usarse solo como guía. Las características especiales para alarmas de humo, como un enlace de radio, o características especiales diseñadas para riesgos específicos, no están cubiertas por este estándar. Este estándar permite, cuando sea apropiado, incluir en los dispositivos de interconexión de dispositivos de alarma de humo otros dispositivos de alarma de humo similares y / o incidentales, y desactivar la alarma. Cuando se incluyen dispositivos de esta naturaleza, esta norma especifica los requisitos aplicables. Esta norma no cubre dispositivos destinados a ser incorporados en sistemas que utilizan equipos de control e indicación separados.

 

Electrónica de un detector de humo

 

En la siguiente imagen podemos ver el interior de detector de humo fotoeléctrico de tipo  puntal .

 

 

detector fotoelectrico.jpg

Como podemos ver el circuito es muy sencillo   limitándose a  una  bateria de 9v  conectada  a  una pequeña placa donde van integrados el sensor fotoeléctrico ( suelen ir compactos en una carcasa opaca) , el buzzer piezoelectrico , el led de estado , el pulsador del test, el ajuste de sensibilidad (el trimmer amarillo)  y por supuesto la electronica de control (suele ser un único  chip especializado)

 

 

 

 

 

 

Instalación de un detector de incendios

Resumiendo ,los detectores de humo fotoeléctricos  en general son los utilizados para detectar incendios de pequeña  velocidad de propagación, y  que generan humo visible , como los que se generan en incendio donde tenemos combustibles como: maderas, cuero, lana, y la mayoría de los polímeros, es decir  todo aquellos materiales que tenemos  en  un ambiente domestico ( viviendas  y oficinas), Además estos detectores son menos propensos a falsas alarmas en ambientes controlados.

Ademas  no debemos olvidar  que los detectores iónicos utilizan un isotopo radioactivo de modo que existe el riesgo de un accidente y que este se mezcle con el medio ambiente, generando un problema de contaminación.Además  por su gran sensibilidad son mas propensos a falsas alarmas provocadas por acumulación de polvo y corrientes de aire  no olvidando ademas de que también tienen un coste mucho mayor.

 

Vemos   ahora paso a paso como  instalar  uno de los  detectores  mas sencillos de configurar : el detector de humo tipo GS506

 


Este detector de humo se utiliza para la detección temprana de humo peligroso de modo que tan pronto como el humo entre en el interior del dispositivo, sonará una alarma bastante potente  de 85 dB basados en un piezolectrico

Este  detector detecta el humo y no las llamas, pero es obvio que en casi todas las combustiones   hay presencia de humo  sobre todo si hablamos de ambientes domésticos

Cada 30-40 segundos, el detector de humo realiza un auto-test ,lo cual  puede ser notado por un breve destello del LED. En caso de fallo del sensor o de falta de batería lo indicaría mediante una señal audible

Este modelo para facilitar la instalación  contempla dos mejoras respecto a otros modelos convencionales :

  • Soporte magnético  : para no tener que taladrar nada y hacer mas sencilla su instalación  este detector incluye un  kit de fijación magnética de modo que se puede montar rápida y fácilmente sin el empleo de herramientas, tornillos o tacos.
  • Batería de Litio para 10 años: esto  puede parecer  excesivo , pero en realidad es una excelente decisión del fabricante pues  lo hace inmune a los mantenimientos periódicos producido por el agotamiento de la batería y por tanto mucho mas seguro

 

Estas  son la descripcion de producto:

  • Modelo: GS506 (detector de la alarma del humo)
  • Dimensiones: Ø 100x37mm
  • Rango de temperatura: 0°C a + 45°C
  • Volumen de alarma:  85 dB (A) dentro de los 3 metros
  • Certificaciones: EN 14604, NF
  • Fuente de alimentación: Batería de DC 9V (batería de litio: CR9V)
  • Autonómica : 10 años de batería a largo plazo
  • Advertencia de batería baja

 

 

Montaje del detector

Una vez desempaquetemos  este modelo ,en   primer colocaremos la batería de 9V de Litio,para lo cual eliminaremos precintos  de esta y la fijaremos al porta-pilas del detector.

Destacar que este tipo de baterías, vienen cargadas  obviamente  pero  son algo mas gruesas que la pilas convencionales ,pero aun así caben con un poco de  habilidad dentro del compartimiento de una pila convencional

 

IMG_20180317_132024_HDR[1].jpg

Normalmente ahora fijaríamos la base de sujeción  a la pared mediante dos tornillos para luego simplemente mediante un sistema de bayoneta fijaríamos a esta  el detector ,pero en este producto simplemente colocaremos  ahora la cubierta  quedando como enla siguiente imagen todo el conjunto:

IMG_20180317_132120_HDR[1]

Con este detector se adjunta un de kit de fijación magnética  de modo que se pueden montar rápida y fácilmente sin el empleo de herramientas, tornillos o tacos.
Las siguientes superficies no son adecuadas para la fijación:

  • Empapelado de vinilo
  • Poliestireno,
  • Superficies con revestimiento antiadherente,
  • Superficies siliconadas o recubiertas de teflón
  • Superficies que contienen partículas sueltas
  • Superficies que han sido pintadas varias veces

 

Ahora desprincintado el kit observe que hay dos juegos de chapas;

Tomaremos aquella que tiene los dos  imanes distinguibles por dos pequeños círculos:

IMG_20180317_132338_HDR[1]

Eliminaremos el plástico protector del adhesivo  y lo fijaremos   a la base del detector y  la otra pieza  a la pared o alguna superficie plástica  ( por ejemplo los cajetines de conexiones de la instalación eléctrica )

 

 

Pulse el botón de test   que tiene en el centro del detector para probar su funcionamiento normal . Si oye un fuerte pitido que cesa , !enhorabuena ya ha instalado el detector!

 

Realmente gracias  a los colores neutros, este tipo de sensores  quedan bastante disimulados  si se sitúan en las tapas de los registros o en cualquier parte que incluya algo de plástico ( incluso hay personas  que quitan la carcasa exterior  que suele ir a presión  y la pintan de otros colores).

IMG_20180318_175046[1]

Mantenimiento:

El detector fotoeléctrico está diseñado para detectar el humo dentro de una cámara con uno o dos leds ópticos y  uno o varios sensores  que informan cuando hay humo si detectan luz infaroja por la refracción del humo en su interior. El problema con este tipo de detector es que el polvo o suciedad lo puede llegar a leerse como humo creado falsas alarmas, por lo que si es posible  deberíamos  hacer un plan de mantenimiento para limpiar las cámaras de los detectores fotoeléctricos para mantenerlas limpias y evitar falsas alarmas en el sistema .

 

 

Que es CheapDuino


 cheapduino.PNG

CheapDuino es una  placa  compatible con Arduino  de un tamaño muy reducido pero no hace honor actualmente a su origen (cheap , es decir barato ) pues  si bien el precio es aceptable (1/5 precio del Arduino UNO R3)   una de sus mejores puntos es su reducido espacio  proporcionando un procesador de  relativo bajo costo para  estudiantes y los aficionados al desarrollo profesional adecuado para  proyecto personalizados de bricolaje, taller, regalos para amigos, E-Textiles y uso educativo.

Pretendía esta placa ser una opción para aquellos estudiantes de países del segundo o tercer mundo que no pueden pagar el precio del Arduino oficial( entre 25 a 30€) ,  intentando abrir una puerta al mundo físico (unos 10€ por placa), pero   no debemos olvidar que existen clones de Arduino de un precio similar  o incluso mas bajo, así que su gran bazas es su  potencia en tamaño compacto pues  tiene una dimensión de solo 2 cm x 2 cm..

La placa tiene  integrado con un microcontrolador ATmega8 y Arduino NG.  Se  puede  programar directamente con Arduino IDE a través del programador FTDI o el adaptador de serie USB.3

(Cuando conecte el cable de programación fpc al programador DFRobot FPC y al dispositivo CheapDuino, por favor, el lado azul hacia arriba).

A nivel de hardware el procesador tiene 3 pines digitales pwm, 3 pines analógicos e interfaz de fuente de alimentación con almohadillas hexagonales alrededor de la placa, lo que hace que sea muy fácil de soldar para los principiantes.

Por supuesto, la interfaz I2C y el puerto serie también están disponibles para extender los dispositivos periféricos de 2 cables directamente. La adopción del conector micro FPC ahorra espacio adicional en comparación con la interfaz USB Arduino normal.

CheapDuino1.png

Especificaciones

  • Voltaje de funcionamiento: 3 ~ 5 voltios
  • Fuente de alimentación recomendada: 5v
  • Microctonroller: Atmel AVR ATmega8
  • gestor de arranque (opción de placa en Arduino IDE): Arduino NG / w ATmega8
  • 3 pines digitales, 3 pines analógicos con almohadillas hexagonales fáciles de soldar
  • Integra 3 pines pwm, interfaz I2C e interfaz UART
  • Adecuado para talleres, uso educativo y proyectos personalizados de bricolaje
  • Controlador compatible con Arduino de bajo costo
  • Diseñado para los estudiantes y DIYers
  • Dimensiones: 2cm x 2cm x 0.2cm

 

 

 

CheapDuino se puede comprar  en la página dee DFRobot o también en Amazon