Índice:
- Etapa 1: peças necessárias / montagem
- Etapa 2: Upload de código e teste
- Etapa 3: Mudanças no OpenHAB
Vídeo: Temperatura HRV para OpenHAB via ESP8266 (exemplo de código de série!): 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:41
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
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
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:
Como fazer seu próprio sistema operacional! (lote e exemplo interno): 5 etapas
Como fazer seu próprio sistema operacional! (lote e exemplo dentro): Faça agora
Exemplo de programação MTP Arduino: 5 etapas
Exemplo de programação MTP Arduino: Neste Instrutível, mostramos como usar o esboço de programação SLG46824 / 6 Arduino para programar um dispositivo Dialog SLG46824 / 6 GreenPAK ™ Multiple-Time Programmable (MTP). A maioria dos dispositivos GreenPAK são One-Time Programmable (OTP), o que significa que uma vez que seu Non-V
Notificação da campainha para deficientes auditivos via automação residencial (ESP-now, MQTT, Openhab): 3 etapas
Notificação da campainha para deficientes auditivos via automação residencial (ESP-now, MQTT, Openhab): Neste Instructable, mostro como integrei minha campainha normal à automação residencial. Esta solução é adequada para pessoas com deficiência auditiva. No meu caso, eu a utilizo para ser notificado se a sala estiver movimentada e barulhenta em uma festa de aniversário das crianças. EU
Guia completo para usar o sensor de umidade do solo com exemplo prático: 7 etapas
Guia completo para usar o sensor de umidade do solo com exemplo prático: você pode ler este e outros tutoriais incríveis no site oficial da ElectroPeak Visão geral. Neste tutorial, você aprenderá como usar um sensor de umidade do solo. Exemplos práticos também são fornecidos para ajudá-lo a dominar o código. O que você aprenderá: como definir
Sensor reflexivo infravermelho TCRT5000 - Como funciona e exemplo de circuito com código: 6 etapas
Sensor infravermelho reflexivo TCRT5000 - Como funciona e exemplo de circuito com código: Olá, recentemente usei vários TCRT5000 ao projetar e fazer minha máquina de classificação de moedas. Você pode ver isso aqui: Para fazer isso eu tive que aprender sobre o TCRT5000 e depois que entendi pensei em criar um guia para qualquer pessoa que estivesse procurando