Leitura do medidor de água: ESP8266 + Android

Muitos agora têm hidrômetros. E a maioria enfrenta o problema de fazer leituras desses medidores e sua entrega pontual. Eu não fui exceção. Era conveniente receber depoimentos de mim, mas aqui sempre me esqueci de tomá-los e me lembrei deles no momento mais inoportuno. Decidiu-se automatizar o processo de fazer leituras para que você possa visualizá-las a qualquer momento. Quem se importa em tirar uma foto à esquerda no meu telefone, por favor, sob gato.

1. Introdução


A ideia de implementação veio a mim depois de ler este artigo. Durante o reparo, ajustei imediatamente os contadores de pulso. A primeira versão do dispositivo baseada no ESP-03 foi feita. O código está escrito em LUA. Os dados também foram transmitidos para thingspeak.com .

Primeira versão


Após 2 meses de uso, as seguintes desvantagens foram identificadas:

  1. Não havia indicação clara de operação, já que o módulo pendurou algumas vezes, era importante
  2. A complexidade das configurações, porque as configurações estavam no código
  3. Para energia, era necessário um fio com um conector miniUSB. Eu só tinha isso da Sony Playstation
  4. Não é confortável ver resultados em thingspeak.com
  5. A complexidade relativa da implementação.

Por isso, decidiu-se fazer a segunda versão, que atenderá aos seguintes requisitos:

  1. Conector de alimentação MicroUSB
  2. Realize a configuração conectando-se ao dispositivo via WiFi
  3. Indicação de trabalho
  4. Conveniência de visualizar informações
  5. Facilidade de repetição
  6. Aparência estética
  7. Baixo custo

Taxa


A placa de circuito é bastante simples. É baseado no mesmo ESP-03. O site esp8266.ru me ajudou com os principais recursos da conexão .



FRIO, QUENTE - soquetes RJ9
LED1 - serve para indicar a operação da placa (modo de configuração - constantemente ligado, erro - intermitente frequente, operação normal - intermitente uma vez por segundo)
LED2 - indica fonte de alimentação
R3, R4 - 330 Ohm
R1, R2, R5, R6 , R7 - 6,8 kOhm Capacitor de
tântalo C1 - 33 mkF ; capacitor de
cerâmica C2 - 0,1
mkF ; LM1117 - para converter 5V a 3,3V;
J1 - jumper para piscar ESP-03
BTN - para escolher o modo de operação da placa

Um conector miniUSB foi adicionado para piscar o módulo e gravar scripts. Para energia, outro conector microUSB é adicionado separadamente sem conectar os pinos RX e TX a ele (ele não é exibido no diagrama). Isso se deve ao fato de que, se você alimentar o módulo através do conector miniUSB, onde RX e TX estão conectados, o módulo, por algum motivo, congela. Tentei puxar o RX e o TX, mas nada ajudou. Por isso, decidi deixar assim, além de possuir muitos cabos com microUSB.

As dimensões dos componentes facilitam a criação de uma placa usando o método LUT, que foi feito para scripts de depuração. Mais tarde, pedi a fabricação do cartão aos chineses . O tamanho do quadro foi ajustado para se ajustar ao gabinete existente.

Fotos antes da instalação:

imagem


Foto após:



Firmware


Eu coletei o firmware usando o construtor online . Permite gerar o firmware do NodeMCU apenas com os módulos necessários, o que permite aumentar a quantidade de memória livre. Não tive problemas com falta de memória e, como resultado, cerca de 30% do espaço livre foi gasto em scripts e arquivos auxiliares. Carreguei o firmware usando nodemcu-pisca-pisca . Eu usei o ESPlorer para escrever e preencher scripts .

A operação do contador de pulsos é semelhante a pressionar um botão. Quando certos valores são passados, os contatos fecham e abrem. Meu contador fechou os contatos no número 7 e abriu no número 2. Pendurei os contadores nas portas GPIO12, GPIO13 e aterrei com uma tração na fonte de alimentação (um resistor interno é usado). Assim, quando a porta altera seu valor para 0, podemos assumir que 10 l de água foram gastos.

O dispositivo pode operar em 2 modos: modo de configuração e modo de leitura. Para alternar para o modo de configuração quando a energia é aplicada, mantenha pressionado o botão BTN. Isso leva 2 segundos. Nesse modo, o ESP começa a funcionar como um ponto de acesso e é um servidor web simples. Aparece uma rede ESP acessível - ???????, onde, em vez de caracteres? será id esp. Para configurar, você precisa se conectar a esta rede e, no navegador, vá para 1.1.1.1. A seguinte página aparece:



Se o botão não foi pressionado durante a inicialização, o modo de leitura é iniciado. Nesse modo, o status das portas GPIO12 e GPIO13 é verificado a cada segundo. Se 0 aparecer em algum lugar, o valor correspondente aumentará. Inicialmente, fiz uma verificação baseada em interrupções, mas esse método não era confiável (ESP periodicamente suspenso). A cada minuto, há uma tentativa de enviar dados para o servidor (se houver alterações). Para cada contador, são transmitidos 2 valores: a leitura atual do contador e a quantidade de alterações desde a última transferência de dados.

Aplicativo para Android


Como eu disse, no thingspeak.com eu não estava confortável olhando as leituras. Eu decidi escrever um aplicativo para Android. O resultado é um aplicativo que permite:

  • Crie gráficos de consumo por horas, dias, meses
  • Acessar dados offline
  • Adicionar widget de métricas

O Thingspeak.com possui uma API que permite coletar dados. Usando esta API, o aplicativo a cada inicialização ou antes de atualizar o widget solicita os dados mais recentes e os salva em um banco de dados local. Trabalhos adicionais já estão em andamento com ela. Adicionados 2 tipos de widgets ao aplicativo: como um contador e como um gráfico de consumo. Descobriu-se bastante conveniente.

Capturas de tela do aplicativo


Pensei em implementar a leitura automática do medidor, mas não encontrei uma API pronta. Foi possível analisar o pedido oficial, mas não é confiável. Para Moscou, existe um EMP . Registrei-me lá e obtive acesso à API deles, mas isso só permite que você veja quais leituras foram feitas, o que não foi interessante para mim.

Conclusão


O custo do dispositivo, excluindo o caso, totalizou aproximadamente 450 rublos. Alguns dos componentes foram comprados em uma loja conhecida. Se você pegar tudo do chinês, o custo poderá ser reduzido para cerca de 370 rublos. Esta versão por 4 meses nunca foi interrompida ou falhou. O dispositivo resultante é fácil de repetir e modificar. Com a ajuda dele, aprendi que o vaso sanitário estava lenta mas seguramente passando água.

Links úteis:

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


All Articles