Índice:

Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!): 3 etapas
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!): 3 etapas

Vídeo: Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!): 3 etapas

Vídeo: Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!): 3 etapas
Vídeo: Honda HRV - Abrir y cerrar todos los vidrios automáticamente 2024, Julho
Anonim
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)
Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!)

HRV - Wireless para OpenHAB

Este instrutível é especificamente para aqueles que têm um sistema HRV (aquecimento, recirculação e ventilação) - embora partes da placa de circuito, configuração openhab ou código Arduino (como ler dados seriais TTL) possam ser úteis para seus próprios projetos ou servirem bem para o aprendizado. Ele pressupõe que você tenha um conhecimento razoável do IDE do Arduino e do que é um chip ESP8266.

Introdução

O seguinte descreve como construir um ESP8266 que se conecta a um sistema HRV e envia as temperaturas do telhado e da casa, a temperatura do painel de controle e a velocidade do ventilador por meio de mensagens MQTT para o OpenHAB. Este é projetado para funcionar com uma placa ESP8266-01 (embora deva funcionar com qualquer versão ESP8266 3.3V). Se você tiver um sistema de tipo HRV semelhante de um fornecedor alternativo, você precisará determinar se os dados são enviados como serial TTL, com que estrutura os dados são enviados.

OpenHAB e Mosquitto

O código ESP8266 foi escrito especificamente para funcionar com OpenHAB (software de automação residencial de código aberto) e um corretor MQTT como o Mosquitto (um protocolo de tipo de assinatura / publicação de mensagens que é leve e ótimo para comunicação entre dispositivos). siglas assustam você, eles são realmente muito simples de usar, uma vez que você saiba como eles funcionam. Eu utilizo o OpenHAB em um NTC C. H. I. P (computador de US $ 9), porém muitas pessoas usam um Raspberry Pi ou similar. Este tutorial assume que você implementou o OpenHAB (se precisar de ajuda para configurar o OpenHAB, siga este excelente artigo do site makeuseof). Você também precisa baixar e instalar o Mosquitto (broker MQTT) e vinculação OpenHAB relacionada. Você pode instalar isso em outro lugar na sua rede, no entanto, a maioria das pessoas apenas instala na mesma máquina que o OpenHAB para mantê-lo simples.

Para instalar o Mosquitto, seguindo este link, selecione o tipo de dispositivo que você está usando e siga as instruções. Como o C. H. I. P executa o Debian (Jessie), você pode seguir as instruções do Raspberry Pi se estiver usando o C. H. I. P para o seu dispositivo de automação residencial (observe também, é melhor reconfigurar o CHIP para inicializar a partir da CLI. Há instruções para isso aqui)

Depois de executar o OpenHAB e o Mosquitto, você precisa preparar o IDE do Arduino para o ESP8266 e o código. Primeiro, você precisa adicionar a biblioteca "PubSubClient". No IDE do Arduino, a partir do menu, vá para Sketch, Incluir Biblioteca, Gerenciar Bibliotecas Na caixa de pesquisa de filtro, digite PubSubClient, em seguida, destaque o resultado da pesquisa e clique em Instalar (no momento da escrita, a versão mais recente é 2.6.0). também precisa adicionar a placa ESP8266 ao IDE do Arduino, o que pode ser feito seguindo as instruções aqui

O que isso me dá?

Como afirmado anteriormente, este projeto permitirá que você visualize o telhado do painel de controle HRV, a casa, as temperaturas do painel de controle e a velocidade do ventilador na GUI do OpenHAB (em tempo real!). As imagens mostram a aparência do meu iPhone, além dos gráficos que você obterá detalhando as diferentes temperaturas.

Para obter os gráficos, você também precisará instalar e configurar a ligação RRD4J (isso é muito direto). Isso permitirá que você clique em 'Casa' ou 'Telhado' e obtenha um histórico de temperaturas HRV para cada um no passado hora, dia ou semana (ou mais, se você alterar a configuração para se adequar) As imagens mostradas estão em Celsius, e claramente é inverno no hemisfério sul quando fiz isso!

Além disso, criei uma visualização OpenHAB que mostra uma comparação entre a temperatura externa (fornecida pelo add-on de vinculação de clima, no meu caso usando Wunderground) versus as temperaturas do telhado e da casa clicando na opção 'Controle' (a imagem mostra o gráfico com casa, telhado e temperatura exterior plotados). Pretendo usar esses dados em regras para ligar os aparelhos de aquecimento conforme necessário. Basta adicionar o item de clima ao URL da imagem no arquivo de mapa do site e incluí-lo no mesmo gráfico (por exemplo: … items = houseTemp, roofTemp, weatherTemp …)

Etapa 1: peças necessárias / montagem

Peças necessárias / montagem
Peças necessárias / montagem
Peças necessárias / montagem
Peças necessárias / montagem
Peças necessárias / montagem
Peças necessárias / montagem

Você precisará das seguintes peças

  • Um divisor RJ11 (divide o sinal do controlador no telhado para o painel de controle e o ESP8266)
  • Algum cabo de fita e um plugue RJ11 (para passar os fios do divisor para o ESP8266)
  • ESP8266-01 (outras versões de 3,3 V devem funcionar)
  • Conversor de nível lógico TTL (para alterar os dados de 5 V -> 3,3 V)
  • Regulador de tensão de 3,3 V AMS1117 (ou semelhante, para alterar a tensão de HRV 5V -> 3,3 V para alimentar ESP8266)
  • 1N5817 diodo schottky (por algum motivo, isso ajudou a interromper a reinicialização do painel de controle HRV ao ligar o ESP)
  • Resistor de 10K ohm (resistor pullup entre 3.3 Regulador de Tensão e ESP CH_PD)
  • Capacitor 10V 10uF (ou semelhante, para suavizar e estabilizar a energia de entrada do HRV)
  • Capacitor de 10 V 1uF (ou semelhante, para suavizar e estabilizar a energia de saída para ESP)
  • Botão deslizante opcional para programar o ESP (caso contrário, é necessário puxar GPIO0 para GND manualmente para programar)
  • Um adaptador FTDI (para programar o ESP, converte USB em serial)

Monte de acordo com o esquema

A imagem do breadboard mostra como as peças devem ser montadas. Observe que existem 6 pinos que descem do cabo de fita da unidade do controlador HRV no teto:

Os pinos 1 e 6 são 5V VCC

Os pinos 2 e 5 são GND

Os pinos 3 e 4 são dados.

Você só precisa usar os pinos 1, 2, 3 e 6 (1 e 6 VCC alimenta ESP8266 e o lado alto do conversor lógico TTL, 2 é um terreno comum e 3 é para ler dados seriais TTL)

O divisor de que você precisa será apenas um divisor RJ11, apenas certifique-se de que é um divisor onde os pinos são diretos (por exemplo: o pino 1 vai para o pino 1, o pino 2 para o pino 2 e assim por diante) Observe que os pinos fêmeas extras (como mostrado nas imagens) são para conectar um FTDI para reprogramar o ESP posteriormente, e a chave mostrada o coloca no modo de "programação". Eles são opcionais, mas recomendados (por exemplo: se você alterar sua senha WiFi porque o WiFi AP e a senha estão programados no código, que você precisará carregar assim que seu ESP8266 for construído)

Etapa 2: Upload de código e teste

Upload de código e teste
Upload de código e teste
Upload de código e teste
Upload de código e teste
Upload de código e teste
Upload de código e teste
Upload de código e teste
Upload de código e teste

Mudanças de código

Link de download alternativo para o código Arduino AQUI

Abra no IDE do Arduino, certifique-se de que a placa ESP está instalada, bem como o PubSubClient e que você selecionou a placa ESP8266 (Ferramentas, Placa, Placa ESP8266 genérica) Edite o código e altere o nome e a senha do AP WiFi e o endereço IP de seu corretor MQTT (essas são as únicas coisas que você deve alterar), conforme mostrado abaixo. Clique no botão 'Verificar' para garantir que a compilação está correta e, em seguida, certifique-se de que a porta COM correta esteja selecionada (Ferramentas, Porta) e carregue o código para o ESP8266. Existem muitos artigos sobre como fazer isso, não vou reinventar a roda aqui.

// Wi-fi

const char * ssid = "your_wifi_ssid_here"; const char * password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);

Teste MQTT

Para teste, você pode deixar seu adaptador FTDI conectado e abrir o Serial Monitor no Arduino IDE, você deve ver mensagens imprimindo as informações de temperatura no console. Se você precisar solucionar problemas de mensagens MQTT de entrada do ESP8266 para seu broker MQTT, então, no servidor Mosquitto, execute um dos seguintes comandos para assinar as mensagens de entrada:

mosquitto_sub -d -t openhab / hrv / status

Você deve ver mensagens PUBLICAR de entrada vindas do ESP8266 a cada 30 segundos ou mais com o número "1" (que significa "Estou vivo"). Se você vir "0s" constantes (ou absolutamente nada), não há comunicação. Depois de ver o número 1 chegando, significa que o ESP8266 está se comunicando com o corretor MQTT (pesquise "MQTT Last Will and Testament" para obter mais informações sobre como isso funciona ou veja esta entrada de blog realmente boa)

Agora você pode acompanhar os dados de temperatura e velocidade do ventilador, inscreva-se em um dos seguintes. No entanto, observe que o código só envia os dados de temperatura se algum dado tiver sido alterado. Ele mantém o controle dos últimos dados de temperatura, velocidade do ventilador, etc. que foram enviados, para que você não veja as informações chegando imediatamente.

mosquitto_sub -d -t openhab / hrv / roofemp

mosquitto_sub -d -t openhab / hrv / housetemp

mosquitto_sub -d -t openhab / hrv / controltemp

mosquitto_sub -d -t openhab / hrv / fanspeed

Dica: assine a temperatura do painel de controle acima e pressione o botão de temperatura no próprio painel de controle para ver a nova configuração de temperatura entrar.

Quando você começa a soldá-lo, um PCB de 3 cm x 7 cm se encaixa perfeitamente na caixa de descarga atrás do painel de controle HRV. Eu recomendaria fazer isso apenas se for uma caixa de descarga de plástico, pois uma caixa de metal pode interferir com os sinais Wifi ou possivelmente causar curto nas conexões na placa PCB. Como alternativa, você pode imprimir uma caixa 3D de plástico para montar a placa.

Etapa 3: Mudanças no OpenHAB

Configuração OpenHAB

As alterações necessárias do OpenHAB são as seguintes:

arquivo de 'itens':

/ * 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" Período do gráfico "Número roofTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / rooftemp: state: default] "} Número roofTemp_Chart_Period" Período do gráfico "Number controlTemp" Controle [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / controltemp: state: default] "} String fanSpeed" Fan Speed [% s] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / fanspeed: state: default] "} * /

arquivo 'mapa do site':

Frame label = "HRV Temperature" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] Image url = "https:// localhost: 8080 / rrdchart-p.webp

Ícones extras para OpenHAB estão incluídos (clique com o botão direito e salve as imagens)

Salve esses arquivos na pasta.. / OpenHAB Home / webapps / images em seu servidor OpenHAB

Recomendado: