
Uma vez eu estava cansado de fazer leituras de hidrômetros. Era possível instalar um ímã perto do balcão e se acalmar, mas achei esse caminho antidesportivo.
Meu caminho foi difícil e ornamentado. Mas o resultado foi um dispositivo que transmite leituras de água via Wi-Fi para o telefone. Simples e intuitivo de usar e configurar para pelo menos um aluno da escola, pelo menos
para um idoso. E familiarizado com a palavra "Arduino" - também simples de fabricar. O dispositivo pode funcionar com baterias por quatro anos (mais do que o relacionamento com seu ex). Este também é o primeiro projeto aberto com essas características.
Eu escrevi análogos de fábrica, eles são poucos e estão bem com eles.
Portanto, temos algum dinheiro e um desejo grande, mas honesto, de simplificar nossas vidas sem violar o Código Penal. E para que nenhum dos seus 220V, servidores e um monte de botões! Observamos as leituras no smartphone no aplicativo Blynk ou em um serviço similar.
Agora sente-se em uma cadeira, coma mais desses pães franceses macios e beba chá. Veja fotos lindas e ouça minha história sobre o que considerar ao criar dispositivos independentes. Mas primeiro, uma breve descrição de Waterius.
Exigências
- contador com fio (UPD2: qualquer
saída "contato seco" ) - Roteador Wi-Fi com Internet
Características
- Alimentação: 3 pilhas AA
- tempo de trabalho 4 anos ou mais
- 2 medidores de água
- um único botão para configurar
- memória não volátil para indicações e configurações de rede
Transferência diária Wi-Fi
- leituras atuais
- consumo de água por dia
- tensão de alimentação
- email letras (corpo e título podem ser alterados)
Suporte implementado para servidor TCP e aplicativo Blynk. Adicione
HTTP ,
MQTT , Modbus TCP, Cayenne, IFTTT, etc. (aqui é dado um lugar para a manifestação do seu gênio criativo).
UPD2: gênios criativos revelados ainda HTTPS, MQTT
Personalização
Quando o botão Waterius é clicado, ele liga o ponto de acesso Wi-Fi. Conecte-se, preencha o formulário, incline-se para o leste três vezes e diga "obrigado" aos desenvolvedores do
WiFiManager . Você pode mentalmente.

Entretenimento Eletrônico
Uma dispersão de elementos de rádio para a montagem de Waterius

A única maneira de atingir unidades de consumo de micro-ampères ao contar pulsos é usar um microcontrolador econômico, não o que você pensava. Coração Waterius - microcontrolador Attiny85 (análogos - MSP430, STM8L). É costurado sem problemas com qualquer placa Arduino com as mãos crescendo acima da cintura. Attiny85 opera a uma frequência de 1 MHz a partir do gerador interno e conta os pulsos, verificando periodicamente 2 entradas quanto a um curto-circuito e um botão. Corrente de sono
4 μA a 3V . Um conto de fadas.
Como Wi-Fi, uso o ESP8266-01. Consumo durante a operação 75mA, pulsa até 250mA. Dois microcontroladores se comunicam no barramento i2c. A correção da escolha foi confirmada pelo
projeto da estação meteorológica . O ESP8266 está constantemente em um sonho: o pino EN é puxado para GND através de um resistor. A corrente de consumo é inferior a 10 μA (me deparei com instâncias com 0 μA). Uma vez por dia, o Attiny85 fornece ALTO, o ESP8266 acorda, recebe leituras do Attiny85, conecta-se ao Wi-Fi doméstico e envia dados em ~ 4 segundos - o que, de acordo com pesquisas de cientistas britânicos, é muito mais rápido do que você costuma acessar manualmente esses contadores.
A foto mostra um bom ESP, o consumo salta 7-11μA. Geralmente os números são 19-23μA.Outros tipos de sono não funcionam para Waterius, pelo menos polvilhe com melatonina aos sons de uma canção de ninar: um sono profundo e infinito com ativação instantânea em um reset externo consome 20 μA e é adequado para o envio frequente de dados. A opção mais econômica: desligue o ESP8266 completamente, mas você precisará de transistores de efeito de campo com medo de eletricidade estática, é isso.
O botão de configuração está localizado na linha SCL. Todos os pinos Attiny85 estão ocupados! Por esse motivo, o Waterius não suporta as saídas dos medidores Namur e não possui um sensor de vazamento.
O LED está conectado ao pino TX do ESP e acende quando o ESP está em execução. Conecte o adaptador TTL-USB para ver o registro (interessante!). No início do desenvolvimento, pensei que, para indicar um erro, você precisa piscar o LED, mas poderá gerenciar - isso só complicará o código.
Se você se conectar com êxito a um roteador Wi-Fi após 3 a 10 segundos, o LED se apagará e, se continuar acendendo, reconecte o telefone ao Waterius novamente. Tecnologia sofisticada, nanotecnologia, as realizações da NASA, os ensinamentos da China antiga.
Cada um de nós sabe: uma característica dos dispositivos de baixa potência é sua suscetibilidade à interferência eletromagnética. Por isso, recorri a um engenheiro eletrônico familiar e estudei
literatura (+ o mais belo curso de
Murata ). Todos os pinos no ESP e Attiny são puxados para a energia ou GND. Capacitores de energia instalados. O terra "sujo" dos medidores é conectado ao "limpo" através de um resistor de 300 ohm e as saídas são efetuadas através de um resistor de 3k3. Todo mundo seria assim!
Habitação
Pegamos uma garrafa de plástico ... uma piada. Usei um compartimento para 4 pilhas AA. Um orifício é cortado na tampa do conector, na lateral do LED e do botão.

Você pode usar a caixa de junção (com uma impressora 3D e outro xamanismo, experimente a si mesmo se não estiver).
No
github, há uma placa de camada única para LUT e uma placa de duas camadas para produção em fábrica. Waterius pode ser feito mesmo por um estudante! Verdade, se ele não tem um hoverboard e nunca gire o botão giratório.
O quadro ideal não funciona imediatamente. O primeiro protótipo ficou assim:

Mas a quarta versão, que foi construída, é quase "perfeita":

Não pude resistir e pedi um pacote de tábuas em Resonite. Isso é alto!

Nutrição
Em Waterius, existe um estabilizador
MCP1700 de 3V com um consumo mínimo muito baixo (alguns μA). Três baterias alcalinas AA de 1,5V
poderão descarregar quase completamente para 3,2 V. Além disso, o Attiny85 terá uma tensão estável (e a
frequência será menos
flutuante , o que é agitado, embora isso não seja importante neste projeto).
O circuito funcionará sem um estabilizador de duas pilhas AA. Attiny85 deve comprar a versão V (potência de até 1,8V). O ESP trabalhou "na Internet" até 2,5V. Poderemos usar 40% da capacidade da bateria (não acredite - veja
o teste de
A. Nadezhin ). Se você comprar duas baterias de lítio AA de 1,5V 3 Ah, a Waterius funcionará por até 10 anos a uma temperatura baixa, e aí - veja você - e construiremos o comunismo.
A falta de ferramentas não me permite medir com precisão o consumo de Waterius. Ele trabalha em casa há 45 dias, enviando leituras a cada 30 minutos (para acelerar a descarga). A tensão de alimentação caiu 0,17V de 4,68V para 4,51V (UPD: 100 dias 4,38V, UPD2: 313 dias 3,9V). Se isso continuar, as baterias durarão 1,5 anos. Enviar leituras uma vez ao dia é 3 vezes mais econômico, portanto, 4 anos de trabalho. Sim, eu sei sobre baterias com descarga automática.
A folha de dados do Energizer e o prazo de validade das embalagens dizem que não é forte.
Aqui está um cálculo do consumo de bateria e o custo dos componentes para os mais curiosos (
tabela do Google ).
Detalhes do programador (para quem não está cansado)
A implementação da contagem de pulsos nas interrupções não é adequada, porque a água pode ser desligada no momento em que a chave reed estiver fechada (zona ~ 3L) e a corrente fluirá através dos resistores de pull-up. A proteção contra rejeição de contato será necessária: microcircuito ou atraso de código. Eu implementei uma pesquisa periódica a cada 250ms e aumentei (uma palavra bonita, certo?) Valor apenas com um fechamento repetido. Nada precisa ser soldado, mas se você realmente quiser, poderá.
Para proteger contra o recarregamento do Attiny, eu armazeno todos os valores em sua memória EEPROM. Para exceder o limite de 100 mil entradas, escrevi um
buffer de anel com uma marca de anel para a célula atual. Agora eu durmo em paz, e é isso que desejo para você. O código prevê a inclusão de log para depuração. Conecte o TTL-USB ao segundo conector do medidor.
Exportação de dados
No começo, escrevi o bot do Telegram, mas Roskomnadzor bloqueou o Telegram. Eu tive que abandonar essa decisão para não iniciar o servidor proxy e não agitar o barco. Usar o Blynk acabou sendo ótimo (desenvolvedores sem medo estão lutando com bloqueios). Aqui está o
código QR do projeto . Além dele, o projeto Cayenne possui uma aplicação por telefone.
O envio automático para Mosvodokanal não é implementado, porque projeto sem fins lucrativos, mas quais são os nossos anos. Ou o seu. Não tenho meios de manter meu servidor e "legitimar" o procedimento de envio, mas você pergunta com amigos, de repente ... Ficarei feliz por sua ajuda e pensamentos livres.
Os moscovitas enviam testemunhos via SMS, o que significa que um servidor da Web é suficiente para receber dados do Waterius e uma página com o SMS (
github ). Os especialistas em Moscou do programa Fiddler, que usam o aplicativo do serviço de Estado de Moscou, devem estar interessados no meu
script Python para enviar leituras de água.
Desenvolvimento
Um dos principais freios ao criar um novo produto é o perfeccionismo, como você sabe. Não é necessário criar uma nova função sem verificar se os consumidores precisam dela. Código simples é mais fácil de desenvolver.
O caminho para o perfeccionismo está no
- Atualizando o firmware ESP e Attiny pela Internet
- UPD2:
suporte para HTTPS ou criptografia - um servidor em que o usuário pode baixar seu script para enviar leituras de água.
- usando STM8L / MSP430 (eles são mais econômicos e mais pinos)
- UPD2:
verificação visual da presença de contato com os medidores quando conectados - indicação do período de envio do email letras
- UPD2:
suporte de contador para saídas Namur - sensor de vazamento (UPD2: feito na redefinição)
- controle de guindaste
- suporte medidor de eletricidade
Agradecimentos
Agradecimentos a
Ivan Kovalenko e Ivan Ganzha pelos conselhos em engenharia elétrica, Aigul, E. Lapin pela abordagem correta da vida e do pai, pelo fato de eu não apenas poder programar, mas também soldar e para você - pela atenção!

Terei todo o prazer em quaisquer sugestões, pool de pedidos e críticas!
Aqueça o ferro de soldar!
Projeto GithubUPD2 05/07/2019: Obrigado a todos que ajudam no projeto!