A temperatura ideal em casa ou como instalar um termostato na sala dos fundos sem fio


Para muitos, está longe de ser um segredo que dispositivos como termostatos semanais ajudam a garantir a temperatura ambiente ideal em uma casa e a economizar recursos energéticos gastos no aquecimento. Para o correto funcionamento do dispositivo, ele geralmente é colocado na sala mais distante, onde a temperatura mais baixa. Porém, a maioria dos termostatos exige uma conexão com fio à caldeira para controle e nem sempre é possível colocar esses fios. Uma solução para esse problema será discutida neste artigo. Qualquer pessoa interessada em pedir um gato ...

Eu tive que enfrentar uma tarefa semelhante. A construção da minha casa é bastante extensa e, para a correta instalação do termostato, eu precisava esticar mais de 50 m de cabo pelos cômodos com os reparos já feitos, a alternativa estava na fachada, mas eu imediatamente o descartei. Além disso, levar um cabo da rua até a caldeira também era problemático, e eu não queria estragar a vista da fachada com outro fio, sem que houvesse extra suficiente. A própria caldeira foi instalada na cozinha e colocar o termostato ao lado da torneira foi uma má ideia. Como resultado, cheguei à conclusão de que o termostato ainda deve ser movido para a sala mais distante e o sinal deve ser transmitido pelo ar. O processo de desenvolvimento do meu próximo ofício começou como de costume com a declaração do problema. Então, vamos começar ...

TK


Defina os requisitos para o dispositivo resolver o problema.
  • O design dos dispositivos deve ser pequeno e ser colocado em uma caixa estética em branco ou preto.
  • O módulo receptor e transmissor deve ser alimentado por um par de pilhas AA.
  • A vida útil dos módulos de um conjunto de baterias deve ser de pelo menos um ano.
  • A conexão ao termostato e à caldeira a gás deve ser realizada usando interfaces padrão sem fazer alterações no projeto.
  • Os dispositivos devem ser montados em uma base de hardware acessível por fornecedores locais.


Hardware


Quando decidirmos sobre os requisitos básicos, passemos ao design. Vamos começar com o hardware.
Com base nas especificações técnicas, os requisitos básicos para a base do elemento serão: a capacidade de trabalhar na faixa de tensão de 1,8 a 3 volts. Bem como a capacidade de alternar para o modo de suspensão ou desligar a periferia quando não for necessário. Decidi iniciar meu caminho de escolha com a seleção de um transceptor. Eu considerei as soluções mais simples na forma dos módulos MX-FS-03V e MX-05V, o preço é obviamente muito atraente, mas a qualidade das avaliações é horrível e o alcance da comunicação não é tão bom. E no meu caso, foi necessário transmitir um sinal através de 4 paredes. Além disso, ele pretendia originalmente confirmar o despacho, de modo que a conexão era necessária nos dois sentidos, o que exigiria dois conjuntos. Os módulos LoRa e vários módulos da série HC também foram considerados. O alcance ainda era limitado ao que é vendido localmente. Como resultado, tendo considerado todas as opções disponíveis, decidi optar pelos módulos SI4432 prontos. Em termos de relação preço-desempenho, na minha opinião, eles eram os melhores.
Este módulo possui amplos recursos técnicos e também é muito econômico com as configurações selecionadas corretamente. A capacidade de controlar a potência de saída também é muito útil, porque você pode escolher o melhor, reduzindo assim o consumo de energia da bateria. Aqui está uma tabela com especificações da documentação.


Vamos considerar com mais detalhes os indicadores de consumo de energia em vários modos da tabela. Mais tarde, precisaremos desses dados para calcular a vida útil da bateria dos dispositivos.

No nosso caso, já é aceitável usar o modo de suspensão, sem mencionar o desligamento completo pela função Shutdown.
Inicialmente, eu deveria usar o ATMega 8 como um processador central, mas depois de estudar a documentação com mais detalhes, percebi que ela não se enquadrava na minha faixa de tensão de alimentação. Como resultado, escolhi o ATMega 328P, pois Ela atendeu plenamente a todos os meus requisitos. Olhando para o futuro, direi que o fato de ter encontrado um gerenciador de inicialização pronto para ela, mas mais sobre isso depois, também foi a favor dela.
Considere o controlador com mais detalhes em termos de consumo de energia e clock do núcleo.
Vamos lidar com o tempo primeiro. Porque temos uma faixa de tensão de trabalho de até 3 volts, então a escolha de um ressonador de quartzo também é limitada, e o gráfico a seguir nos fala sobre isso


Como vemos em 8 MHz, não podemos obter uma operação estável; portanto, usaremos quartzo em 4 MHz.
Agora vamos ver o consumo de energia em vários modos de operação. Aqui está uma tabela da documentação que descreve as características de consumo de energia.


Portanto, se você transferir o controlador para o modo de desligamento, o consumo do microcontrolador cairá para 44 uA com determinadas reservas, é claro.
Além dos elementos já selecionados, adicionaremos um LED vermelho com uma corrente de trabalho de 1 mA.
Isso completa os componentes comuns para o receptor e o transmissor.
Considere os componentes adicionais para o receptor.
Na saída de um termostato de sala convencional, há um contato de relé com boa capacidade de comutação (250 V 5 A), portanto, não importa o que ele controla, portanto, de acordo com os termos de referência, nosso receptor deve ter a mesma saída de relé. Mas como garantir um baixo consumo de energia do relé no modo ligado, porque a bobina até do relé menor consome dezenas de miliamperes e o termostato de fábrica trabalha com um conjunto de baterias normais sem exagero por pelo menos duas temporadas de aquecimento. Pensei nessa tarefa por alguns dias e, de repente, durante o reparo de um dos dispositivos que me ocorreu, fica apenas um relé biestável. E por que durante o reparo, mas porque eles são usados ​​no dispositivo que está sendo reparado. Este tipo de relé é capaz de manter seu estado por tempo infinito sem consumo de energia. Para que o relé mude de estado, basta aplicar um pulso à bobina necessária, no caso de dois relés de enrolamento, ou um pulso com polaridade reversa, no caso de um relé com um enrolamento. Assim, decidimos o tipo de relé, mas o que fazer com um modelo específico? Tendo pesquisado um pouco na Internet, cheguei à conclusão de que obter um relé de baixa tensão seria um problema para mim, pois tive que me concentrar no meu relé de 24V Takamisawa ALD24W-K. Mas essa solução apresentou um novo problema - onde obter 24 V?
A resposta foi encontrada rapidamente, talvez não seja a mais correta, mas ainda assim. Decidi instalar um conversor de impulso e aumentar a tensão para 20 V, é o suficiente para uma comutação de relé confiável. O conversor foi retirado de um módulo bastante comum baseado no MT3608. Esta é uma solução funcional que testei mais de uma vez, incluindo o design de uma chave de fenda elétrica (você pode ler sobre isso aqui em Habré). A saída EN permite controlar a operação do conversor, o que reduz significativamente o consumo de energia. Na verdade, aqui estão os dados da documentação.


Depois de reunir todas as informações recebidas, desenhei diagramas de ambos os dispositivos:
Transmissor

Receptor


Tendo terminado o hardware do projeto, passemos aos algoritmos e sua implementação de software.

Algoritmo


Vamos começar desenvolvendo um conceito e algoritmo de trabalho comum para nossos dispositivos. A figura abaixo mostra um diagrama de sequência geral para todos os dispositivos envolvidos no processo.


Como você pode ver, o algoritmo não é complicado, farei uma apresentação narrativa (bem, estou com preguiça de desenhar um fluxograma, com licença). Vamos começar com o transmissor, como é o mais simples do ponto de vista do algoritmo. O microcontrolador transmissor executa a seguinte sequência:
- Verifica o estado da carga das baterias; se a carga estiver baixa, a descarga será indicada pelo LED embutido.
- Interroga o status de entrada.
- Transmite esse estado pelo ar.
- coloca o transmissor no modo de suspensão e adormece por 1 minuto.
- o ciclo se repete desde o início.

Com o receptor, as coisas são um pouco mais complicadas. O microcontrolador funciona de acordo com o seguinte algoritmo:
- verifica o estado da carga das baterias; se a carga estiver baixa, indicamos uma descarga pelo LED embutido.
- estamos aguardando o pacote do transmissor; se em 2 minutos o sinal não tiver sido recebido, adormecemos por 59 segundos, após os quais o ciclo começa desde o início.
- se um pacote chegar, obteremos um novo estado de retransmissão.
- se o novo estado do relé for diferente do que foi salvo anteriormente, ligue o conversor auxiliar e mude o relé para o estado desejado.
- adormeça por 59 segundos
- repita o ciclo primeiro
Assim, quando você liga o receptor pela primeira vez, ele espera um sinal do transmissor, assim que recebe, faz uma alteração no estado do relé e adormece 1 segundo a menos que o transmissor. Como resultado, no momento de um novo envio, o destinatário já está em operação e aguardando um novo envio, ou seja, é como se estivesse sincronizado por um transmissor. Como resultado, foi possível economizar bem o consumo de energia. Se o sinal do transmissor não for recebido, esperamos um máximo de 2 minutos, para que esse intervalo seja escolhido para garantir que o sinal seja capturado, independentemente da hora em que o transmissor for ligado. Mas é extremamente antieconômico e destina-se exclusivamente à sincronização de dispositivos.

Tempo de vida


Quando ficou claro com o algoritmo, vamos tentar calcular a vida útil da bateria.
Vamos nos concentrar um pouco na teoria necessária para obter números precisos ao calcular o tempo de operação dos sensores a partir de um conjunto de baterias.
Então, primeiro veremos quando e em que energia é gasta.
Considere o procedimento de envio com mais detalhes.
Para transmitir o estado do relé, precisamos formar um pacote e enviá-lo ao ar. Em geral, a estrutura desse pacote é a seguinte:


Eu usei os parâmetros padrão do transmissor, ou seja, FSK, No Manchester, Rb = 2,4kbs, Fd = 36kHz. A quantidade de dados transmitidos no pacote é de 3 bytes. O preâmbulo terá 40 bits de tamanho da tabela:


Para não nos aprofundarmos na configuração dos módulos e na operação da biblioteca, aceitaremos os parâmetros restantes como o máximo permitido. Como resultado, obtemos o tamanho total do pacote de 5 bytes + 4 bytes + 4 bytes + 1 byte + 3 bytes + 2 bytes = 19 bytes, ou seja, 152 bits. Que a uma velocidade de 2400 bps, o tempo de transmissão será de aproximadamente 64 ms.
Passamos para a tabela de consumo de energia do módulo no início do artigo e extraímos o valor da corrente durante a transmissão com uma potência de saída de 13 dBm. Assim, ao enviar dados, o módulo gasta 30 mA.
No modo de recebimento, o módulo consumirá estaticamente 18,5 mA com base na mesma tabela.
Ainda não consegui traduzir o módulo para o modo Shutdown, por algum motivo não consegui tirá-lo do coma. Como resultado, me limitei ao modo Sleep, no qual o módulo consome 1 uA.
Além disso, ao receber e transmitir o pacote, acendo o LED vermelho conectado através de um resistor de 1 kΩ a 3,3 volts, que consome cerca de 1 mA.
O microcontrolador no modo wake consome 2,4 mA e no modo sleep com o WDT ligado - 44 uA. Dados obtidos da tabela acima.
O receptor também possui uma fuga parasita de corrente quando o termostato é fechado através de um resistor de tração ao solo (consulte o diagrama do transmissor), de modo que 3,3 V / 10 kOhm = 33 uA fluem através dele. Pareceu-me uma grande quantidade, então, no circuito, mudei o valor do resistor para 100 kOhm, mas no ferro ele ainda é montado com 10 kOhm, então vamos aceitá-lo como está.
O receptor tem mais consumidores. Em primeiro lugar, é um conversor de impulso de 20 volts. No modo de suspensão, consome 1 uA. Em operação ociosa, o consumo será de 2,2 mA. No programa, aguardo 100 ms para iniciar o conversor. A bobina do relé atua como uma carga para nós, sua característica é indicada abaixo:


Assim, verifica-se que a bobina, quando alimentada por 20 volts, consumirá 20 V / 1920 Ohms = 11 mA. Agora, passamos ao gráfico da dependência da eficiência do consumo atual de carga para avaliar o consumo total do conversor com uma bobina de relé conectada.


Como você pode ver, com esse consumo, o gráfico não reflete a eficiência, mas suponha que ele também se mova linearmente para baixo e, na pior das hipóteses, a eficiência será de aproximadamente 85%. Como resultado, o consumo atual será de 11 mA / 0,85 = 13 mA. Vale a pena reconhecer que, de fato, o pico de corrente na inicialização do conversor será pelo menos 1A, e os processos de operação e inicialização são complexos, e eu não sou a pessoa capaz de defini-los corretamente, portanto sentirei falta deles e simplificarei um pouco o processo.
O tempo de pulso gerado pelo relé de comutação é de 20 ms.
Agora que descobrimos quem consome energia e quanto, calcularemos a vida útil teórica das baterias AA. Mais uma vez, considere o receptor e o transmissor separadamente.
Vamos começar como sempre com o transmissor. Vamos tomar como base o algoritmo de trabalho dado acima. O tempo de ativação do controlador será um pouco maior que o tempo de transmissão e, levando em consideração os custos de configuração do módulo, o polling de entrada e a medição da tensão da bateria serão de 70 ms; o controlador será colocado no modo de suspensão por um minuto. Assim, em um ciclo de operação, o controlador consumirá 0,07 s * (transmissor 30 mA + LED 1 mA + 2,4 mA MK) + 60 s * (transmissor 44 uA MK + 1 uA + resistor de entrada 33 uA) = 2,338 mA * s + 4,68 mA * s = 7,018 mA * s. Dividindo o valor obtido por 60,07 s, obtemos o valor médio atual por um segundo - 0,111 mA. A capacidade média de uma bateria tamanho AA é de 2800 mA * h (quando conectada em série, a capacidade total das baterias não aumenta, se de repente alguém não souber) - isso é 2800 * 3600 = 10080000 mA * s. Como resultado, o tempo de operação teórico do transmissor de um conjunto de baterias é de 10080000 mA * s / 0,111 mA / 3600 s / 24 h = 997 dias.

Agora sobre o receptor. Também tomaremos como base o algoritmo de operação descrito acima, mas com uma ressalva, ligamos o receptor e o transmissor quase simultaneamente e, portanto, o receptor sincronizou imediatamente com o transmissor.
Para isso, o tempo máximo de ativação do controlador será a soma do tempo de espera do pacote (a recepção também entrará nele, pois a interrupção pelo módulo será gerada somente após o pacote ter sido completamente recebido), removendo-o do módulo, iniciando o conversor e definindo um novo estado de relé, além de medir voltagem da bateria. Depois de resumir todos os dados, obtemos - 1,126 s, e o controlador será colocado no modo de suspensão por 59 segundos. Mas desde Como o ciclo de trabalho é mais complicado do que no receptor, o cálculo consistirá em mais estados. Para um ciclo de operação, o controlador consumirá 1,006 s * (receptor de 18,5 mA + 2,4 mA MK) + 0,1 * (0,1 s * (receptor de 18,5 mA + LED de 1 mA + 2,4 mA MK + conversor de 2,2 mA + conversor de 2,2 mA em XX) + 0,02 s * (18,5 receptor mA + 1 mA LED + 2,4 mA MK + conversor de 13 mA)) + 59 s * (44 uA MK + 1 receptor de uA + 1 conversor de uA) = 21,0254 mA + 0,1 * (2,41 mA + 0,698 mA) + 2,714 mA = 24,0502 mA * s. O coeficiente 0.1 reflete o fato de que em apenas um dos 10 ciclos trocamos o relé. Dividindo o valor obtido por 60,126 s, obtemos o valor atual médio por um segundo - 0,4 mA. Vamos calcular a vida útil da bateria. Como resultado, o tempo de operação teórico do receptor de um conjunto de baterias é de 10080000 mA * s / 0,4 mA / 3600 s / 24 h = 291 dias, desde que alteremos o estado do relé a cada 10 minutos.
É óbvio que nesses cálculos o tempo todo por mais de dois anos não é realizado devido às características químicas do dispositivo da bateria. As baterias AA não são capazes de funcionar por mais de dois anos com uma fonte de alimentação constante do dispositivo, mesmo com uma corrente desprezível, apesar do fato de que a capacidade deve ser suficiente. Mas tudo que tem menos de dois anos já se tornará uma limitação de capacidade. Infelizmente, os resultados do cálculo da vida útil do receptor não se encaixam totalmente nas especificações técnicas, mas nesta situação, eu me culpei.

Implementação de código


Honestamente, sou cético em relação ao Arduino e seus IDEs similares. Comecei a entender microcontroladores de programação em C e trabalhar com registradores é mais compreensível e previsível para mim do que chamadas veladas para funções de alto nível. Embora, em geral, estudei a plataforma em si e alguns pequenos projetos, ainda o faço. Então, desta vez, a preguiça prevaleceu sobre mim. Fui subornado pela disponibilidade de uma biblioteca pronta para módulos SI4432 para o Arduino e realmente não queria perder tempo tentando portá-lo para o CVAVR. E o restante do código é extremamente simples. Depois de passar várias noites estudando as bibliotecas para trabalhar com o módulo, bem como o modo de suspensão do microcontrolador, as primeiras versões dos esboços do receptor e do transmissor ficaram prontas rapidamente. Em seguida, foi necessário montar o hardware e já continuar o desenvolvimento com hardware real.

Está vivo ...


O serviço online EasyEDA desenvolveu um projeto com um circuito e placas de circuito impresso. Eu não me incomodei com placas de dupla face, então coloquei jumpers na parte de trás.
Aqui está uma foto das placas transmissoras prontas ...


... e o receptor.

Para baterias, comprei suportes e também comprei estojos. Honestamente, eu queria em branco, mas não tínhamos um em estoque, então tive que coletá-lo em preto.
A montagem das placas foi realizada primeiro sem módulos, porque você precisa preencher o primeiro programador do carregador de inicialização do controlador. E como o módulo é de 3,3 volts e o programador é de 5 volts e eles usam o mesmo barramento, é melhor soldar o módulo após o firmware. Verificado o poder, programado o gerenciador de inicialização. Como não há máscara de solda na placa, colei um pedaço de Kapton sob os módulos. Soldou os módulos e começou a depurar o firmware.Imediatamente pisou em um ancinho na forma de congelamento de módulos, tudo acabou sendo trivial simples, o estabilizador de 3 volts que eu usei não forneceu a corrente necessária, depois de conectar o LBP ao receptor e as baterias ao transmissor, tudo funcionou de maneira estável. Além disso, instalei um capacitor eletrolítico nas proximidades do conversor no circuito de potência para iniciá-lo normalmente. Eu apenas tive que adicionar a lógica restante descrita acima. Nas antenas padrão, a conexão acabou sendo muito estável. Estruturalmente, o receptor e o transmissor se encaixam totalmente na caixa adquirida. As placas foram fixadas nas prateleiras padrão usando parafusos na parte inferior do estojo, e eu prendi os suportes da bateria a fita dupla face na parte superior. O gabinete está bem fechado, então eu não o prendi adicionalmente com parafusos,e é mais conveniente trocar as pilhas. Como resultado de mais algumas noites passadas em refinamentos e testes, obtive o resultado final.




Carregador de inicialização


Algumas palavras devem ser ditas separadamente às custas do gerenciador de inicialização. Para o Arduino, não há carregadores padrão para quartzo de 4MHz, eles precisam ser montados separadamente, mas tive sorte, em busca de informações antes de iniciar o design, me deparei com um artigo de uma pessoa, ele estava fazendo uma estação meteorológica nos mesmos módulos e enfrentava os mesmos problemas. Vou deixar um link para o artigo no final. By the way, eu recomendo a leitura, a pessoa também trabalhou duro. Como resultado, ele tinha um gerenciador de inicialização pronto em seu repositório e, como ele era de domínio público, eu o usei.

Conclusão


Como resultado de mais de uma noite passada, foi construída uma estrutura completamente funcional com as características necessárias. Agora, o dispositivo está funcionando há mais de três semanas, até agora não houve reclamações sobre sua operação, mas o tempo dirá quão verdadeiros foram meus cálculos.
Para quem disser que foi possível colocar um relé em 3 volts e não se incomodar com o conversor, responderei que concordo totalmente com eles. Mas para quem decide repetir o design, haverá uma oportunidade de escolher sua solução. No final, o engenheiro deve criar, e não apenas copiar as construções concluídas ...
Obrigado a todos que dominaram este artigo até o final, espero que tenha sido interessante. Para todas as suas perguntas, sugestões e comentários, por favor, comente.

Referências:


  1. Artigo da estação meteorológica
  2. Repositório do GitHub
  3. Esquemas e placas. Receptor
  4. Esquemas e placas. Transmissor

Source: https://habr.com/ru/post/pt431272/


All Articles