Revista 100% Verde

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

Por Soloelectronicos @soloelectronico

La domótica se vuelve cada vez muy popular pues proporciona comodidad y confort en los hogares permitiendo por ejemplo controles centralizados de calefacción, ventilación, aire acondicionado e iluminación, etc. contribuyendo con todo ello a una reducción general de costos por el ahorro energía (el tema principal en la actualidad) y con ello una reducción de emisión de gases de efecto invernadero dada la procedencia en su mayor parte de combustibles fósiles .

En este post vamos a ver un sistema domótico utilizando Arduino y nuevamente el módulo ESP8266 NodeMCU, el cual es algo más económico que el ESP32, y es mas que suficiente para esta aplicación que únicamente trata de operar 4 electrodomésticos, aunque pueden modificarse según sus necesidades. Para los relés de control, utilizamos interruptores manuales y teléfonos inteligentes. El circuito puede detectar la luz solar y la temperatura ambiente para encender y apagar luces y ventiladores automáticamente usando el middleware del que hemos hablado en numerosas veces en este blog de Cayenne

Este proyecto tiene las siguientes características:

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

Principio del proyecto de automatización del hogar utilizando Cayenee

Este sistema tiene dos partes principales. La primera parte es el servidor, que presenta el núcleo del sistema. Administra, controla y monitorea los hogares de los usuarios.

La segunda parte es el módulo de hardware, que proporciona una interfaz adecuada para los sensores y actuadores del sistema domótico. Pero la mayor parte del sistema de automatización disponible en el mercado es escalable en el sentido de que un servidor puede administrar muchos módulos de hardware. Porque existen en la cobertura de la red WiFi.

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

Como corazón del circuito, tenemos la placa AZDelivery NodeMCU Amica V2 es la clásica placa de desarrollo ESP caracterizándose por su sencillo uso (se maneja fácilmente desde el IDE de Arduino) contando con un potente procesador ESP8266-12F de Espressif y una WLAN integrada, por lo que este controlador ofrece una sencilla introducción al desarrollo del IoT. Hay disponibles varias versiones de firmware del fabricante, que se pueden flashear cómodamente a través del puerto micro-USB.A diferencia de modelos anteriores, si usa el chipset CP2102 modificado (por ejemplo la azdelivery) se permite una mayor velocidad de transferencia. Además, este modulo cuenta con una relativa gran memoria y también con una reserva de potencia del procesador.

Un sistema IoT se construye con algunos componentes básicos. Los componentes son sensores, actuadores, sistemas integrados, redes, interfaces de usuario y almacenamiento de datos.

Sensores

En este proyecto se utilizan dos tipos de sensores. El primero es un LDR o resistencia dependiente de la luz para detectar la intensidad de la luz. El segundo es DHT11 para detectar temperatura y humedad.

Actuadores

Los pines de salida están conectados a los relés y se utilizan como actuadores. Las cargas eléctricas como luces y ventiladores están conectadas a los contactos de los relés. Estos relés se controlan de forma remota a través de una aplicación móvil.

Sistema Integrado

El módulo Wifi ESP8266 se utiliza aquí como un controlador integrado programado por Arduino. El Arduino se utiliza para manejar datos analógicos o digitales recibidos de sensores y para transmitir a través de la web. En este momento acepta comandos de la web y activa los dispositivos o actuadores conectados.

Red

Internet se utiliza como enlace para conectar el sistema integrado a los demás.

Interfaz de usuario

Para la comunicación, la plataforma Cayenne es compatible con MQTT o el protocolo de transporte de telemetría de cola de mensajes. Este protocolo es un protocolo de mensajería ligero para el uso del protocolo IP. Está diseñado para dispositivos de bajo consumo y bajo ancho de banda.

Almacenamiento de datos

El almacenamiento de datos también lo crea la plataforma Cayenne. El almacenamiento de big data es básicamente una gran cantidad de datos que se recopilan de todos los dispositivos. Este tipo de datos varía de dispositivo a dispositivo y la velocidad de flujo de datos es muy alta.

Este el resumen de los componentes usados:

  • Módulo ESP8266 NodeMCU
  • Acoplador óptico 4N33 (x2)
  • Sensor de temperatura y humedad DHT11
  • Resistencia dependiente de la luz (LDR)
  • Relé de cambio único de 12 V (x2)
  • Transistor BC547 npn (x2)
  • LED de 5 mm (x2)
  • Diodos IN4007 (x2)
  • Condensador 100uF/25V
  • Condensador de 0.1uF
  • Resistencia 1K (x5)
  • Resistencias de 10k, 3.3K, 4.7K
  • Encender / apagar)
  • conector de 4 pines
  • Conector terminal de 2 pines para batería

Principio de funcionamiento del sistema de automatización del hogar con Cayenee

El sistema de automatización del hogar basado en ESP8266 se basa en el módulo Wifi ESP8266, LDR, sensor DHT11, optoacopladores 4N33 y dos relés.

Este circuito tiene dos partes. La primera parte es una entrada analógica para medir la intensidad de la luz a través de LDR1. La segunda parte es una entrada digital para leer valores de temperatura y humedad a través de DHT11. Para medir una amplia gama de temperatura y humedad, puede usar DHT22 como reemplazo de DHT11.

Para alimentar este circuito necesitamos un suministro de 12 V CC, ya que necesita controlar los relés. Luego tenemos que alimentar el módulo ESP8266, pero requiere 5V. IC 7805 proporciona los 5V al módulo.

ESP8266 tiene un cabezal macho de 30 pines. Componentes soldados en la PCB.

El LDR se usa aquí para detectar la intensidad de la luz a su alrededor. Se muestra como un formulario de porcentaje en el panel de Cayenne. Está conectado al pin A0 del módulo ESP8266 para leer el voltaje analógico según la luz ambiental.

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

El sensor DHT11 se usa aquí para leer la temperatura y la humedad a través del pin de entrada digital D4. Los datos dados se dividen en temperatura y humedad por DHT11 a través del mismo pin de entrada.

Software

Usando este software Arduino IDE:

  1. Abra el software Arduino IDE
  2. Vaya a Archivo y seleccione Preferencias y pegue el enlace " https://arduino.esp8266.com/stable/package_esp8266com_index.json " en las URL de Administrador de placa adicional para agregar la placa ESp8266. Abra Boards Manager desde el menú Herramientas y escriba esp8266 para instalar la plataforma esp8266.
  3. Para programar el módulo ESP8266, se requieren tres identidades únicas del sitio web de cayenne. Estos son nombre, nombre de usuario de MQTT, contraseña de MQTT e ID de cliente. Después de conectarse a una red, estas ID ayudan a comunicar el dispositivo con ella.
  4. Para conectarse a la red WiFi local se requiere WiFi SSID y contraseña.
  5. Antes de compilar y cargar el código en este módulo, debemos instalar la biblioteca de sensores Adafruit, la biblioteca Cayenne -MQTT-ESP8266 y la biblioteca .

Biblioteca Cayenne-MQTT-ESP8266

Esto permite la comunicación de los dispositivos en la plataforma Cayenne.

biblioteca DHT

Esta biblioteca se utiliza para el sensor DHT11. Esta biblioteca comunica el módulo ESP8266 al sensor. Para usarlo, busque unificado en Library Manager e instale Adafruit Unified Sensor.

Creación del tablero del sistema de automatización del hogar con Cayenne IoT

Abra el sitio web oficial de Cayenne y cree una cuenta para usted. Haga clic en Trae tu propia cosa.

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

La página siguiente mostrará tres opciones: Nombre de usuario de MQTT, Contraseña de MQTT e ID de cliente. Copie estas cadenas y péguelas en los campos apropiados del código Arduino ESP8266. Después de eso, cargue el código IDE de Arduino en el módulo NodeMCU y espere un tiempo para conectarse con el dispositivo en la red.

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

Una vez que el módulo NodeMCU esté en el WiFi, la página web avanzará a la siguiente pantalla donde su dispositivo necesita un nombre que se puede cambiar después.

Ahora haga clic en el botón (+) en el ícono de cada canal para agregar el canal deseado al tablero. Obtendrá los canales agregados a la izquierda en Agregar nueva página.

Haga clic en la configuración de cada canal uno tras otro y cambie el nombre de su widget a su nombre deseado.

Primero configure el nombre del "Canal 0" en Luminosidad y haga clic en Elegir icono y seleccione Luminosidad y haga clic en Guardar. Esta función muestra la luz alrededor de LDR en porcentaje.

De manera similar, cambie los nombres de "Canal 1" y "Canal 2" a Temperatura y Humedad respectivamente. Cambie la configuración requerida como se establece en "Channel 0".

Ahora tenemos que configurar el "Canal 3" y el "Canal 4" para controlar ambos relés. Para eso, haga clic en Agregar nuevo widget de dispositivo y luego seleccione el botón Widgets personalizados. Complete el campo requerido para el "Canal 3" para la carga. Haga clic nuevamente en Agregar widget y repita de manera similar la configuración para el "Canal 4".

Sistema de domótica con módulo WiFi ESP8266 y Cayenee

Finalmente, el tablero se muestra en la figura anterior. Ahora está listo para controlar el "Canal 3" y el "Canal 4" y también el nivel de Luminosidad, Temperatura y Humedad de un lugar determinado.

A continuación, debemos descargar la aplicación Cayenne e iniciar sesión con la misma identificación de credencial para iniciar el sistema de automatización del hogar desde cualquier parte del mundo a través de Internet.

Código NodeMCU

A continuación podemos ver u posible código para desplegar en el ESP8266. No olvide que este código deberá personalizarlo con el nombre de su red wifi, la password de acceso dicha red así como las credenciales de Cayenne ( usuario MQTT, identidad de cliente y contraseña de Cayenne).

#include <Adafruit_Sensor.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiAP.h> #include <ESP8266WiFiGeneric.h> #include <ESP8266WiFiMulti.h> #include <ESP8266WiFiScan.h> #include <ESP8266WiFiSTA.h> #include <ESP8266WiFiType.h> #include <WiFiClient.h> #include <WiFiClientSecure.h> #include <WiFiServer.h> #include <WiFiUdp.h> #define CAYENNE_PRINT Serial #include <CayenneMQTTESP8266.h> char ssid[] = "Wifi Name"; char wifiPassword[] = "Password"; char username[] = "e2g58968-d026-11eb-8779-7d56e82df461"; //Replace by your MQTT user name char password[] = "3f2b61c76836fc5t489605346e4b110f80785ca"; //Replace by your MQTT password char clientID[] = "73f369dr-d4f5-39da-8779-7d56e82df461"; //Replace by your Client ID unsigned long lastMillis = 0; #include "DHT.h" #define DHTPIN D4 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float h,t,f,hic,hif; void setup() { dht.begin(); Serial.begin(9600); Cayenne.begin(username, password, clientID, ssid, wifiPassword); pinMode(D0,OUTPUT); pinMode(D1,OUTPUT); pinMode(D2,OUTPUT); pinMode(D3,OUTPUT); } void loop() { Cayenne.loop(); if (millis() - lastMillis > 10000) { lastMillis = millis(); Cayenne.virtualWrite(0, h); Cayenne.virtualWrite(1, t); Cayenne.virtualWrite(2, hic); } h = dht.readHumidity(); t = dht.readTemperature(); f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } hif = dht.computeHeatIndex(f, h); hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } CAYENNE_IN(3) { int currentValue=getValue.asInt(); if(currentValue==1){digitalWrite(D0,LOW);} else{digitalWrite(D0,HIGH);} } CAYENNE_IN(4) { int currentValue=getValue.asInt(); if(currentValue==1){digitalWrite(D1,LOW);} else{digitalWrite(D1,HIGH);} } CAYENNE_IN(5) { int currentValue=getValue.asInt(); if(currentValue==1){digitalWrite(D2,LOW);} else{digitalWrite(D2,HIGH);} } CAYENNE_IN(6) { int currentValue=getValue.asInt(); if(currentValue==1){digitalWrite(D3,LOW);} else{digitalWrite(D3,HIGH);} } 

Fuente https://circuitdiagrams.in/home-automation-system-using-esp8266/


Volver a la Portada de Logo Paperblog