Tabla de contenido:
Video: Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!): 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:45
HRV - Inalámbrico a OpenHAB
Este instructivo es específicamente para aquellos que tienen un sistema HRV (ventilación por recirculación de calefacción), aunque partes de la placa de circuito, la configuración openhab o el código Arduino (como leer datos en serie TTL) podrían ser útiles para sus propios proyectos o servir bien para el aprendizaje. Se asume que tiene un conocimiento razonable del IDE de Arduino y lo que es un chip ESP8266.
Introducción
A continuación se describe cómo construir un ESP8266 que se conecta a un sistema HRV y envía las temperaturas del techo y de la casa, la temperatura del panel de control y la velocidad del ventilador a través de mensajes MQTT a OpenHAB. Esto está diseñado para funcionar con una placa ESP8266-01 (aunque debería funcionar con cualquier versión ESP8266 3.3V) Si tiene un sistema de tipo HRV similar de un proveedor alternativo, deberá determinar si los datos se envían como serie TTL y, de ser así,, con qué estructura se envían los datos.
OpenHAB y Mosquitto
El código ESP8266 se ha escrito específicamente para trabajar con OpenHAB (software de automatización del hogar de código abierto) y un agente MQTT como Mosquitto (un protocolo de tipo suscripción / publicación de mensajería que es liviano y excelente para la comunicación entre dispositivos) No deje que los nombres o los acrónimos te asustan, son realmente muy fáciles de usar una vez que sabes cómo funcionan. Utilizo OpenHAB en una NTC C. H. I. P (computadora de US $ 9), sin embargo, muchas personas usan una Raspberry Pi o similar. Este tutorial asume que ha implementado OpenHAB (si necesita ayuda para configurar OpenHAB, siga este excelente artículo del sitio web makeuseof) También necesita descargar e instalar Mosquitto (broker MQTT) y el enlace OpenHAB relacionado. Puede instalarlo en cualquier otro lugar de su red, sin embargo, la mayoría de la gente simplemente lo instala en la misma máquina que OpenHAB para simplificarlo.
Para instalar Mosquitto, siguiendo este enlace, seleccione el tipo de dispositivo que está utilizando y siga las instrucciones. Debido a que C. H. I. P ejecuta Debian (Jessie), puede seguir las instrucciones de Raspberry Pi si está utilizando C. H. I. P para su dispositivo de automatización del hogar (también tenga en cuenta que es mejor reconfigurar CHIP para arrancar desde la CLI. Hay instrucciones para esto aquí)
Una vez que tenga OpenHAB y Mosquitto en ejecución, debe preparar el IDE de Arduino para el ESP8266 y el código. Primero, debe agregar la biblioteca "PubSubClient". En el IDE de Arduino, desde el menú, vaya a Sketch, Incluir biblioteca, Administrar bibliotecas En el cuadro de búsqueda del filtro, escriba PubSubClient, luego resalte el resultado de la búsqueda y haga clic en Instalar (en el momento de escribir este artículo, la última versión es 2.6.0). También es necesario agregar la placa ESP8266 al IDE de Arduino, lo que se puede hacer siguiendo las instrucciones aquí.
¿Qué me da esto?
Como se indicó anteriormente, este proyecto le permitirá ver el techo de su panel de control HRV, la casa, las temperaturas del panel de control y la velocidad del ventilador en la GUI de OpenHAB (¡en tiempo real!) Las imágenes muestran cómo se ve desde mi iPhone, además de los gráficos que usted obtendrá al profundizar en las diferentes temperaturas.
Para obtener los gráficos, también deberá instalar y configurar el enlace RRD4J (esto es muy sencillo). Esto le permitirá hacer clic en 'Casa' o 'Techo' y obtener un historial de las temperaturas de HRV para cada uno en el pasado. hora, día o semana (o más, si modificas la configuración para que se adapte) Las imágenes que se muestran están en grados Celsius, ¡y claramente es invierno en el hemisferio sur cuando hice esto!
Además, creé una vista OpenHAB que muestra una comparación entre la temperatura exterior (proporcionada por el complemento de enlace Weather, en mi caso usando Wunderground) versus las temperaturas del techo y la casa haciendo clic en la opción 'Control' (la imagen muestra el gráfico con casa, techo y temperatura exterior graficados). Planeo usar estos datos en reglas para encender los aparatos de calefacción según sea necesario. Simplemente agregue el elemento Weather a la URL de su imagen en el archivo de mapa del sitio e inclúyalo en el mismo gráfico (por ejemplo:… items = houseTemp, roofTemp, weatherTemp…)
Paso 1: Piezas necesarias / Montaje
Necesitará las siguientes piezas
- Un divisor RJ11 (esto divide la señal del controlador en el techo, al panel de control y al ESP8266)
- Un poco de cable plano y un enchufe RJ11 (para pasar cables desde el divisor hasta ESP8266)
- ESP8266-01 (otras versiones de 3.3V deberían funcionar)
- Convertidor de nivel lógico TTL (para cambiar datos de 5V -> 3.3V)
- Regulador de voltaje AMS1117 3.3V (o similar, para cambiar el voltaje de HRV 5V -> 3.3V para alimentar ESP8266)
- Diodo schottky 1N5817 (por alguna razón, esto ayudó a detener el reinicio del panel de control HRV al encender el ESP)
- Resistencia de 10K ohmios (resistencia pullup entre 3.3 Regulador de voltaje y ESP CH_PD)
- Condensador de 10V 10uF (o similar, para suavizar y estabilizar la energía entrante de HRV)
- Condensador de 10V 1uF (o similar, para suavizar y estabilizar la potencia de salida al ESP)
- Botón deslizante opcional para programar el ESP (de lo contrario, es necesario tirar de GPIO0 a GND manualmente para programar)
- Un adaptador FTDI (para programar el ESP, convierte USB en serie)
Montar según el esquema
La imagen de la placa muestra cómo se deben ensamblar las piezas. Tenga en cuenta que hay 6 pines que bajan del cable plano de la unidad del controlador HRV en el techo:
Los pines 1 y 6 son 5V VCC
Los pines 2 y 5 son GND
Los pines 3 y 4 son datos.
Solo necesita usar los pines 1, 2, 3 y 6 (1 y 6 VCC alimentan ESP8266 y el lado alto del convertidor lógico TTL, 2 es un terreno común y 3 es para leer datos seriales TTL)
El divisor que necesita será solo un divisor RJ11, solo asegúrese de que sea un divisor donde los pines estén rectos (por ejemplo: el pin 1 va al pin 1, el pin 2 al pin 2 y así sucesivamente) Tenga en cuenta que los pines hembra adicionales (como que se muestran en las imágenes) son para conectar un FTDI para reprogramar el ESP posteriormente, y el interruptor que se muestra lo pone en modo "programación". Estos son opcionales, pero recomendados (por ejemplo: si cambia su contraseña de WiFi ya que el AP de WiFi y la contraseña están programados en el código, que deberá cargar una vez que su ESP8266 esté construido)
Paso 2: carga de código y prueba
Cambios de código
Enlace de descarga alternativo al código Arduino AQUÍ
Abra en el IDE de Arduino, asegúrese de que la placa ESP esté instalada, así como el PubSubClient y que haya seleccionado la placa ESP8266 (Herramientas, Placa, Placa ESP8266 genérica) Edite el código y cambie el nombre y la contraseña del AP WiFi y la dirección IP de su corredor de MQTT (estas son las únicas cosas que debe cambiar) como se muestra a continuación. Haga clic en el botón 'Verificar' para asegurarse de que se compile correctamente, luego asegúrese de que esté seleccionado el puerto COM correcto (Herramientas, Puerto) y cargue el código en su ESP8266. Hay muchos artículos sobre cómo hacer esto, no reinventaré la rueda aquí.
// Wifi
const char * ssid = "your_wifi_ssid_here"; const char * contraseña = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);
Pruebas MQTT
Para las pruebas, puede dejar su adaptador FTDI conectado y abrir el Monitor serie en el IDE de Arduino, debería ver mensajes que imprimen la información de temperatura en la consola. Si necesita solucionar problemas de mensajes MQTT entrantes desde el ESP8266 a su agente MQTT, en el servidor Mosquitto ejecute uno de los siguientes comandos para suscribirse a los mensajes entrantes:
mosquitto_sub -d -t openhab / hrv / status
Debería ver mensajes PUBLICAR entrantes provenientes del ESP8266 cada 30 segundos aproximadamente con el número "1" (que significa "Estoy vivo"). Si ve "0" constantes (o nada en absoluto), entonces no hay comunicación. Una vez que vea que aparece el número 1, significa que el ESP8266 se está comunicando con el corredor de MQTT (busque "MQTT Last Will and Testament" para obtener más información sobre cómo funciona esto, o vea esta muy buena entrada de blog)
Ahora puede realizar un seguimiento de los datos de temperatura y velocidad del ventilador, suscríbase a uno de los siguientes. Sin embargo, tenga en cuenta que el código solo envía los datos de temperatura si algún dato ha cambiado. Realiza un seguimiento de los últimos datos de temperatura, velocidad del ventilador, etc. que se enviaron, por lo que es posible que no vea la información que ingresa de inmediato.
mosquitto_sub -d -t openhab / hrv / rooftemp
mosquitto_sub -d -t openhab / hrv / housetemp
mosquitto_sub -d -t openhab / hrv / controltemp
mosquitto_sub -d -t openhab / hrv / fanspeed
Sugerencia: suscríbase a la temperatura del panel de control anterior, luego presione el botón de temperatura en el panel de control; debería ver aparecer la nueva configuración de temperatura.
Cuando empiece a soldar esto, una PCB de 3 cm x 7 cm encaja perfectamente en la caja empotrada detrás del panel de control HRV. Recomendaría hacer esto solo si se trata de una caja empotrada de plástico, ya que una caja de metal puede interferir con las señales Wifi o posiblemente cortocircuitar las conexiones en la placa PCB. Alternativamente, puede imprimir una carcasa 3D de plástico para montar la placa.
Paso 3: cambios de OpenHAB
Configuración de OpenHAB
Los cambios de OpenHAB necesarios son los siguientes:
archivo 'elementos':
/ * HRVNumber hrvStatus "HRV Status [MAP (status.map):% d]" (gHRV) {mqtt = "<[mqttbroker: openhab / hrv / status: state: default]"} Number houseTemp "House [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / housetemp: state: default] "} Número houseTemp_Chart_Period" Chart Period "Number roofTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / rooftemp: state: default] "} Number roofTemp_Chart_Period" Chart Period "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / controltemp: state: default] "} String fanSpeed" Velocidad del ventilador [% s] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / fanspeed: state: default] "} * /
archivo 'sitemap':
Etiqueta de marco = "Temperatura de HRV" {Elemento de texto = roofTemp {Marco {Elemento de cambio = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hora", 1 = "Día", 2 = "Semana"] URL de la imagen = "https:// localhost: 8080 / rrdchart-p.webp
Se incluyen iconos adicionales para OpenHAB (haga clic con el botón derecho y guarde las imágenes)
Guarde estos archivos en la carpeta.. / OpenHAB Home / webapps / images en su servidor OpenHAB
Recomendado:
Control de Led a través de la aplicación Blynk usando Nodemcu a través de Internet: 5 pasos
Control de LED a través de la aplicación Blynk usando Nodemcu a través de Internet: Hola a todos, hoy le mostraremos cómo puede controlar un LED con un teléfono inteligente a través de Internet
Actualice Motor Shield para SMARS Robot Arduino - Cargue el código a través de Bluetooth: 20 pasos
Actualice Motor Shield para SMARS Robot Arduino - Cargar código a través de Bluetooth: Hay varias opciones de motor shield que puede usar con Arduino Uno en este proyecto de robot SMARS, muy comúnmente usando Motor Shield V1 fabricado por Adafruit o compatible (clon de China), pero la desventaja de este escudo no tiene el Blueto
Controle los dispositivos a través de Internet a través del navegador. (IoT): 6 pasos
Controle los dispositivos a través de Internet a través del navegador. (IoT): En este Instructable, le mostraré cómo puede controlar dispositivos como LED, relés, motores, etc. a través de Internet a través del navegador web. Y puede acceder a los controles de forma segura en cualquier dispositivo. La plataforma web que utilicé aquí es la visita de RemoteMe.org
Sensor reflectante infrarrojo TCRT5000: cómo funciona y circuito de ejemplo con código: 6 pasos
Sensor reflectante infrarrojo TCRT5000: cómo funciona y circuito de ejemplo con código: Hola, recientemente utilicé un montón de TCRT5000 al diseñar y fabricar mi máquina clasificadora de monedas. Puede ver eso aquí: Para hacer esto, tuve que aprender sobre el TCRT5000 y después de entenderlo pensé en crear una guía para cualquier otra persona que estuviera buscando
Transferencia de archivos a través de su LAN a través de BitTorrent: 6 pasos
Transferencia de archivos a través de su LAN a través de BitTorrent: A veces, es posible que necesite transferir archivos a través de una red a varias computadoras. Si bien puede guardarlo en una unidad flash o en un CD / DVD, tendría que ir a cada computadora y copiar los archivos y puede llevar un tiempo copiar todos los archivos (especialmente con f