Tabla de contenido:

Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!): 3 pasos
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!): 3 pasos

Video: Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!): 3 pasos

Video: Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!): 3 pasos
Video: Honda HR-V Verificando água do radiador e do reservatório 2024, Noviembre
Anonim
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)
Temperatura HRV a OpenHAB a través de ESP8266 (¡Ejemplo de código de serie!)

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

Piezas necesarias / montaje
Piezas necesarias / montaje
Piezas necesarias / montaje
Piezas necesarias / montaje
Piezas necesarias / montaje
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

Carga de código y prueba
Carga de código y prueba
Carga de código y prueba
Carga de código y prueba
Carga de código y prueba
Carga de código y prueba
Carga de código y prueba
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: