Revista 100% Verde

Control de nivel de agua con NodeMCU y Cayenne

Por Soloelectronicos @soloelectronico

En este post vamos a ver nuevamente la gran versatilidad del sw de Cayenne , en este caso para controlar el nivel de un liquido monitorando este en tiempo real gracias al framework de IoT gratuito de Cayenne.

La finalidad de este proyecto es asegurar que un depósito de agua siempre este lleno , porque podría suceder que el suministro de agua sólo fluya a determinadas franjas horarias por lo que debemos permitir el flujo solo cuando haya suministro y el deposito no este lleno

Por tanto , el funcionamiento es relativamente simple pues únicamente la válvula se cerrará cuando el agua alcance el nivel superior del sensor.

La lista de materiales necesaria para este proyecto es bastante reducida siendo e l hardware necesario el siguiente:

Control de nivel de agua con NodeMCU y Cayenne

2. Sensor de nivel de líquido (calibrar primero para obtener el nivel de valor e inferior nivel superior)

Si usted necesita el sensor más profundo, puede cortar la tira superior del sensor y tome algún cable a dos lados del sensor

Control de nivel de agua con NodeMCU y Cayenne

3. Módulo de relé de CH

Control de nivel de agua con NodeMCU y Cayenne

4. Válvula solenoide 12V

5. 12V 2A fuente de alimentación

6. Cables de puente

En cuanto al Software necesario:

1. Arduino IDE

2. Cayenne para iOS/Android/Web Browser

Conectar NodeMCU Sensor líquido, módulo de relés y válvulas

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)

Control de nivel de agua con NodeMCU y Cayenne

Las conexiones son muy sencillas:

  • VIN (+5V): lo conectaremos a NodeMCU y al modulo Rele
  • 3.3V : Alimentemos el sensor
  • GND : Sensor , Arduino y Rele
  • A0 de Arduino : a la salida del sensor
  • D5 de Arduino : a la entra de control del Rele

Respecto al firmware necesitara subir el código a NodeMCU, pera el cual debería programar el NodeMCU con el IDE de Arduino.

Para probar Cayenne con el ESP12E necesitamos programar su ESP-12E para conectarse a su punto de acceso wifi .

Básicamente el código a subir al ESP12E usa 3 librerías de Cayenne donde tendremos que definir el SSID y la pwd de la red wifi así como las credenciales de Cayenne ,

Es de destacar la creación de dos puertos virtuales para capturar el nivel de líquidos en tiempo real por el puerto A0 asi como accionar el rele por el puerto 14 , lo cual nos van a permitir comunicarnos con el API de Cayenne

Asimismo para efectos de pruebas se deja habilitado la salida por el pruerto serie de modo que podamos ver desde el IDE de Arduino la evolucion del nivel del liquido y las actuaciones corresponientes

#include "CayenneDefines.h"
#include "CayenneWiFi.h"
#include "CayenneWiFiClient.h"
#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space
#define RELAY_PIN 14 // RELAY PIN

const int sensorPin= A0; //sensor pin connected to analog pin A0
float liquid_level;
int liquid_percentage;
int top_level = 512;
int bottom_level = 3;

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = ""; // Insert your token here
char ssid[] = ""; // Insert your SSID here
char pwd[] = ""; // Insert your SSID password here

Necesitara subir el programa anterior WATER_CONTROL.ino, editar la contraseña del token, SSID de su red Wifi , usaurio de Cayyene así como editar valor nivel inferior y superior

Entonce conecte su NodeMCU con el Cable USB al ordenador y cargue el código en NodeMCU mediante el IDE de Arduino.

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

Control de nivel de agua con NodeMCU y Cayenne

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

Control de nivel de agua con NodeMCU y 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 deberían estar de acuerdo con el sw instalado en el ESP12E

En este caso como hemos definido dos puertos virtuales para nivel de liquiodso y contol necesitamos añadir dos widgets asociados a esos dos canales:

  • Añadir widget de válvula interruptor del tablero de instrumentos del Cayenne y seleccione Virtual Pin 1.
  • Añadir Sensor analógico widget de Dashboard de cayena y el nombre de nivel de agua, seleccione Virtual Pin 10, unidad porcentaje
Control de nivel de agua con NodeMCU y Cayenne
Control de nivel de agua con NodeMCU y Cayenne

Configuración de triggers

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 c omo se podría imaginar puede ser muy potente en la creación de dispositivos inteligentes que reaccionan a los alrededores ( como po r 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 continuación:

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. Nombrar el trigger con un texto identificativo
  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
  6. Ahora en el cuadro de selección a continuación, puede enviar una notificación( bien a una dirección de correo electrónico o a un número de teléfono de un mensaje de texto pudiendo agregar ambos) o una acción que en nuestro caso sera activar desactiva un relé. Asegúrese de marcar las casillas de verificación también.
  7. Ahora haga clic en "Save trigger".

Haga este proceso para las dos casuisticas:

  • Agregar desencadenadores y si el nivel del agua por encima de 100% entonces la válvula interruptor apague.
  • Agregar desencadenadores y si el nivel del agua por debajo de 100% entonces la válvula del interruptor se encienda
Control de nivel de agua con NodeMCU y Cayenne
Control de nivel de agua con NodeMCU y Cayenne

Fuente instructables.com


Volver a la Portada de Logo Paperblog