Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Conecte o aquecimento central ao Arduino

Componentes e suprimentos

Arduino UNO
× 1
Escudo Arduino OpenTherm
× 1
Fonte de alimentação de 24 V
× 1

Sobre este projeto


Você já se perguntou quando e por que sua caldeira está funcionando e aquecendo sua casa? Quer automatizar seu sistema de aquecimento com o Arduino? A blindagem OpenTherm foi projetada para você. Ele permitirá que você monitore e controle sua caldeira OpenTherm com o Arduino.






Antecedentes


No ano passado, quis combinar a minha caldeira de aquecimento a gás com um regulador de lareira. Minha caldeira BAXI e termostato são muito inteligentes, então eu queria naturalmente estender a caldeira para controlar a lareira também. Eu estava farto de todas aquelas extensões BAXI oficiais caras que me permitiam fazer isso.

Então, eu construí um gateway OpenTherm que me permitiu interceptar a comunicação entre o termostato e a caldeira e colocar um algoritmo que acionaria uma caldeira ou usaria o calor da lareira - [mais sobre o regulador].

Como havia muitas pessoas que queriam algo semelhante, decidi criar um módulo - o escudo do Arduino - que permitiria a qualquer pessoa controlar facilmente o aquecimento de sua casa.





Para que serve o escudo?

  • Crie sua própria caldeira baseada em Arduino com um termostato OpenTherm existente. Muito improvável que alguém fizesse isso, mas é possível.
  • Use a blindagem para construir seu próprio termostato baseado em Arduino para assumir totalmente a sua caldeira e aquecimento doméstico. Perfeito para automação residencial. Este aplicativo requer apenas uma fonte de alimentação externa de 5 V.
  • Coloque um escudo OpenTherm nas linhas entre a caldeira e o termostato existentes e crie um monitor para ver quando e como a caldeira está aquecendo sua casa. Você pode até interceptar a comunicação para, por exemplo, controlar o aquecimento sem fio.
  • OpenTherm permite ter um intermediário ( gateway ) dispositivo que se comunica com a caldeira e o termostato. Foi assim que usei o escudo para criar um regulador OpenTherm.





Dados e comandos disponíveis

  • temperatura ambiente
  • ponto de ajuste da temperatura ambiente
  • temperatura da água de aquecimento
  • temperatura da água de retorno
  • temperatura da água quente sanitária *
  • pressão de água quente sanitária *
  • taxa de fluxo de água quente doméstica *
  • temperatura externa *
  • status da caldeira (funcionando / não funcionando / erro)
  • nível de modulação
  • temperatura de exaustão *
  • estatísticas de quanto tempo a caldeira funcionou

* observe que eles estão disponíveis apenas se sua caldeira estiver equipada com os acessórios necessários





Construindo o escudo


O circuito eletrônico é baseado no projeto de gateway OpenTherm que utiliza microcontrolador PIC. Eu o adaptei para o Arduino e criei um bom layout compatível com o Arduino UNO.

Você pode usar os arquivos esquemáticos e Gerber acima para criar o escudo por conta própria. Estou fabricando minhas placas por PCBWay - Protótipo de PCB de maneira fácil. Você pode mandá-los criar e enviar essas lindas belezas azuis em apenas uma semana. A máscara de solda azul tem o mesmo preço que a verde básica! Eu também adoro o atendimento ao cliente, nada é um problema. Ou você pode solicitar um kit DIY pré-embalado.





Usando a blindagem para criar um termostato


O primeiro exemplo mostrará como usar a blindagem para criar seu próprio termostato personalizado. O que você precisa:
  • Caldeira OpenTherm
  • Arduino UNO, WeMos D1 ou qualquer placa compatível com Arduino UNO. O único requisito para a placa é o suporte de interrupção de pino nos pinos 2 e 3.
  • Fonte de alimentação 5V. Não há necessidade de fonte de alimentação de 24 V nesta configuração, pois ela só é necessária se você se comunicar com um termostato.

Conecte sua caldeira com o escudo Arduino OpenTherm conforme mostrado na imagem acima, coloque o escudo no seu Arduino e você pode começar a programar. A biblioteca Arduino OpenTherm IO contém o seguinte exemplo para mostrar como se comunicar com a caldeira.
  void loop () {if (OPENTHERM ::isIdle ()) {message.type =OT_MSGTYPE_READ_DATA; message.id =OT_MSGID_SLAVE_CONFIG; mensagem.valorHB =0; mensagem.valorLB =0; Serial.print ("->"); OPENTHERM ::printToSerial (mensagem); Serial.println (); OPENTHERM ::enviar (BOILER_OUT, mensagem); // enviar mensagem para a caldeira} else if (OPENTHERM ::isSent ()) {OPENTHERM ::listen (BOILER_IN, 800); // espera a resposta da caldeira} else if (OPENTHERM ::getMessage (message)) {// a caldeira respondeu OPENTHERM ::stop (); Serial.print ("<-"); OPENTHERM ::printToSerial (mensagem); Serial.println (); Serial.println (); atraso (100); // atraso mínimo antes da próxima comunicação} else if (OPENTHERM ::isError ()) {OPENTHERM ::stop (); Serial.println ("<- Tempo limite"); Serial.println (); }}  

Primeiro, verifique se não há comando pendente com OPENTHERM ::isIdle . Se não, você pode enviar o próximo. Neste exemplo, você solicita os sinalizadores de configuração do escravo. Se o comando foi enviado com sucesso, você deve começar a ouvir uma resposta da caldeira com OPENTHERM ::listen ligar. Método OPENTHERM ::getMessage retornará verdadeiro assim que houver uma resposta pendente do escravo e se algo deu errado ou ocorreu o tempo limite do método OPENTHERM ::isError retornar verdadeiro. A biblioteca contém a estrutura de mensagem OpenTherm que contém dados decodificados do protocolo, então você não precisa se preocupar com os formatos. Verifique se o código-fonte está bem documentado. Todos os tipos de mensagens estão listados nas constantes ou você pode verificar a documentação do OpenTherm.
  struct OpenthermData {tipo de byte; byte id; byte valueHB; byte valueLB; float f88 (); void f88 (valor flutuante); uint16_t u16 (); void u16 (valor uint16_t); int16_t s16 (); void s16 (valor int16_t);}  





Usando a blindagem para criar um monitor, gateway ou regulador


O segundo exemplo mostrará como conectar um dispositivo intermediário ao barramento OpenTherm para monitorar a caldeira e o termostato ou interceptar sua comunicação. O que você precisa:
  • termostato OpenTherm
  • Fonte de alimentação 24 V 500 mA



Conecte a blindagem no barramento entre a caldeira e o termostato conforme mostrado na imagem acima. Você pode ver que ele interrompe o barramento entre esses dois dispositivos. Agora sua comunicação é interrompida, a menos que você carregue um software de gateway em seu Arduino que encaminhe comandos e respostas do termostato para a caldeira e vice-versa. Novamente, há um excelente exemplo na biblioteca Arduino OpenTherm IO.
  void loop () {if (mode ==MODE_LISTEN_MASTER) {if (OPENTHERM ::isSent () || OPENTHERM ::isIdle () || OPENTHERM ::isError ()) {OPENTHERM ::listen ( THERMOSTAT_IN); } else if (OPENTHERM ::getMessage (message)) {Serial.print ("->"); OPENTHERM ::printToSerial (mensagem); Serial.println (); OPENTHERM ::enviar (BOILER_OUT, mensagem); // encaminha a mensagem para o modo boiler =MODE_LISTEN_SLAVE; }} else if (mode ==MODE_LISTEN_SLAVE) {if (OPENTHERM ::isSent ()) {OPENTHERM ::listen (BOILER_IN, 800); // a resposta precisa ser enviada de volta em 800ms} else if (OPENTHERM ::getMessage (message)) {Serial.print ("<-"); OPENTHERM ::printToSerial (mensagem); Serial.println (); Serial.println (); OPENTHERM ::enviar (THERMOSTAT_OUT, mensagem); // enviar mensagem de volta ao modo termostato =MODE_LISTEN_MASTER; } else if (OPENTHERM ::isError ()) {mode =MODE_LISTEN_MASTER; Serial.println ("<- Tempo limite"); Serial.println (); }}}  

O gateway simplesmente começa a escutar os comandos do termostato. Se houver solicitação detectada, ele irá analisá-la e encaminhá-la para a caldeira. O Gateway agora começará a escutar a resposta da caldeira. Se houver resposta recebida em 800ms, o gateway encaminhará a resposta de volta para o termostato. O termostato e a caldeira nunca saberão que há algo extra entre eles. Como você pode ver, há muito espaço para escrever seu próprio código que pode capturar as mensagens e ler informações úteis delas (status, temperaturas, pressão, estatísticas, ...). Você pode até ignorar ou descartar solicitações ou respostas de que não gosta.

Como você pode ver, é realmente fácil se comunicar com o seu sistema de aquecimento inteligente e torná-lo ainda mais inteligente. No próximo artigo, vou mostrar o uso mais prático desse hardware no meu regulador OpenTherm.

Código

Biblioteca Opentherm IO para Arduino
https://github.com/jpraus/arduino-opentherm

Esquemas


Processo de manufatura

  1. Monitorando minha caldeira de aquecimento central
  2. Construindo uma rede de sensores sem fio em sua casa
  3. Conecte um sensor ao Raspberry Pi para avisá-lo quando houver gases nocivos por perto!
  4. Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
  5. Como conectar o GrabCAD Print à sua impressora 3D Stratasys
  6. Dicas para melhorar a eficiência do óleo de aquecimento para sua empresa
  7. Habilite o controle Alexa para o seu ventilador de teto
  8. Arduino Spybot
  9. FlickMote
  10. Adicione iluminação animada (letreiro) aos seus projetos