Índice:

Sensor de vazamento de água no ESP8266 + Micropython + Domoticz: 16 etapas (com fotos)
Sensor de vazamento de água no ESP8266 + Micropython + Domoticz: 16 etapas (com fotos)

Vídeo: Sensor de vazamento de água no ESP8266 + Micropython + Domoticz: 16 etapas (com fotos)

Vídeo: Sensor de vazamento de água no ESP8266 + Micropython + Domoticz: 16 etapas (com fotos)
Vídeo: Детектор воды/утечек Arduino UNO 2024, Julho
Anonim
Sensor de vazamento de água no ESP8266 + Micropython + Domoticz
Sensor de vazamento de água no ESP8266 + Micropython + Domoticz
Sensor de vazamento de água no ESP8266 + Micropython + Domoticz
Sensor de vazamento de água no ESP8266 + Micropython + Domoticz

Há algum tempo, minha esposa me pediu para fazer um sensor de vazamento de água. Ela temia que a mangueira da sala da caldeira pudesse estar vazando e que a água inundasse o piso de madeira recém-colocado. E eu, como um verdadeiro engenheiro, empreendi tal sensor para fazer.

Dos meus 15 anos de experiência como engenheiro médico, sei que a maneira mais fácil de detectar água são pinos de metal em curto com água. O princípio de operação dos sensores mais simples é que a água deve causar um curto-circuito em dois (ou mais) pinos de metal e, assim que isso acontecer, o alarme será acionado.

Etapa 1: Hardware

Hardware
Hardware

Para este projeto, precisamos:

1. ESP8266 - módulo 01

2. Módulo de fonte de alimentação do regulador linear de baixa queda HT7333 3,3 V MS

Precisamos deste módulo para reduzir a tensão da bateria para o nível aceitável para ESP8266. De acordo com a ficha técnica, deve haver entrada de 3 V a 3,6 V. Este módulo nos dá 3,3V.

3. Bateria. Estou usando uma bateria de íon de lítio de 3, 7 V, 400 mAh. Na verdade, você pode usar qualquer outra fonte de alimentação adequada. A bateria 18650 também é uma boa escolha. Ao escolher uma bateria, lembre-se de que o ESP "consome" cerca de 200mA ao se conectar à rede WiFi, e cerca de 60mA é usado quando a placa está enviando dados para o servidor.

4. Placa de carregamento de bateria TP4056 Lipo.

5. Botão liga / desliga com mini botão de pressão Pololu Placa minúscula muito interessante. Ele nos permite trocar o módulo ESP apenas quando a água é detectada. Você não precisa manter o ESP LIGADO. Portanto, é bom para economizar carga da bateria.

6. Habitação7. Micro-interruptor duplo ON-OFF. Uma linha serve para ligar o aparelho. A segunda linha é para teste - ela causa um curto circuito sem água, só para nos avisar se o aparelho está funcionando ou não.

8. Micro computador Raspberry Pi

Estou usando o Raspberry Pi Zero. É poderoso o suficiente para executar o servidor Domoticz.

Etapa 2: Software

No seu PC:

1. esptool instalado, para apagar módulos e atualizar o firmware

2. Ampy instalado, para atualizar seu programa

3 Python 3.6 ou superior recomendado

4. Qualquer editor de código que você deseja. Mais simples - Python IDLE que normalmente está sendo instalado com Python. Estou usando Pycharm / Atom ou Anaconda Spyder no raspberry Pi

5. Servidor Domoticz instalado no Raspberry Pi (ou PC comum no Windows ou Linux)

Etapa 3: Prepare Raspberry Pi - instale Domoticz

Portanto, pegue seu RPi e instale o sistema operacional adequado para executar o servidor Domoticz.

Você pode seguir estas instruções.

Estou usando o Raspbian Stretch com Desktop aqui:

O próximo passo é instalar o servidor Domoticz em seu PC. Você pode usar as instruções aqui ou aqui:). Não tenha medo, não é tão difícil. Obviamente, você precisa executar em seu terminal:

curl -L install.domoticz.com | sudo bash

E é isso:) mais ou menos. Configuração Domoticz

Agora que nosso servidor está pronto, podemos acessá-lo de qualquer navegador da web, inclusive de um tablet, digitando a seguinte URL: https:// IP_domoticz: 8080

Etapa 4: configuração do Domoticz

Configuração Domoticz
Configuração Domoticz

Agora que nosso servidor está pronto, podemos acessá-lo de qualquer navegador, inclusive de um tablet, digitando a seguinte URL: https:// IP_domoticz: 8080

Etapa 5: ajuste as configurações do aplicativo

Ajuste as configurações do aplicativo
Ajuste as configurações do aplicativo
Ajuste as configurações do aplicativo
Ajuste as configurações do aplicativo

Existem várias configurações de aplicativo que podem ser definidas em Setup | Menu de configurações.

O menu de configuração com várias guias permite inserir os parâmetros pessoais necessários para um melhor funcionamento do sistema. Depois de inserir os dados nos campos, você deve salvá-los pressionando o botão vermelho "Aplicar configurações". Após esta ação, todos os campos de senha, que estavam vazios no primeiro acesso, aparecerão com uma longa sequência de asteriscos, mesmo que não tenham sido usados.

Depois de fazer a configuração principal na página "Sistema", clique em "Notificações". Aqui, precisamos ajustar o tipo de notificações que vamos usar.

Etapa 6: configurar notificações

Notificações de configuração
Notificações de configuração

As notificações podem ser enviadas, por exemplo, quando um interruptor é pressionado, o uso de eletricidade é muito alto, a temperatura muito alta e para muitas outras opções.

No nosso caso, as notificações devem ser enviadas assim que a água for detectada pelo sensor. Então, basta ligar aqueles que você deseja usar. Normalmente, você também precisa da chave API para que a notificação funcione. Avançando um pouco, direi que experimentei Pushover, Pushsafer e Pushbullet. E eu fiquei com Pushover. Mais tarde direi por quê.

Algumas palavras sobre como funcionam as notificações. Você precisa ter uma conta no Pushbullet, Pushover ou outras páginas que gostaria de usar. Além disso, você precisará de um aplicativo no seu celular ou PC.

Obtenha a chave API e insira-a na página acima. Você pode testar a notificação clicando em "Testar". Se a chave API estiver correta, você deve receber notificações de teste em seu telefone celular.

Assim que o sensor detecta água, o ESP liga e envia a solicitação ao servidor Domoticz no formato JSON. Então, se as condições para acionar um evento (envio de notificação para o seu celular) forem satisfeitas, Domoticz enviará a notificação.

Mais tarde voltarei aos "eventos".

Etapa 7: configurar a comunicação com o (s) dispositivo (s) de hardware

Configure a comunicação com o (s) dispositivo (s) de hardware
Configure a comunicação com o (s) dispositivo (s) de hardware
Configure a comunicação com o (s) dispositivo (s) de hardware
Configure a comunicação com o (s) dispositivo (s) de hardware
Configure a comunicação com o (s) dispositivo (s) de hardware
Configure a comunicação com o (s) dispositivo (s) de hardware

Antes de usar o aplicativo Domoticz para controlar dispositivos ou ler sensores, você deve configurar a comunicação com o (s) dispositivo (s) de hardware. Selecione Configuração | Hardware para adicionar hardware. Os dispositivos não serão exibidos até que o hardware apropriado seja adicionado.

O aplicativo Domoticz suporta muitos dispositivos de hardware nativamente. Em nosso caso, para ler nosso sensor de inundação, precisamos adicionar o chamado hardware "fictício" da lista de hardware.

Quando o hardware é adicionado, a visão geral de todo o hardware definido será exibida. O hardware pode ser desativado ou excluído.

O novo hardware deve estar na lista e deve haver um botão "Criar Sensores Virtuais".

Clique neste botão e escolha o tipo de sensor "Alerta". Agora temos que adicionar o dispositivo no Domoticz para se tornar ativo.

Etapa 8: Adicione o dispositivo no Domoticz para se tornar ativo

Adicione o dispositivo no Domoticz para se tornar ativo
Adicione o dispositivo no Domoticz para se tornar ativo
Adicione o dispositivo no Domoticz para se tornar ativo
Adicione o dispositivo no Domoticz para se tornar ativo
Adicione o dispositivo no Domoticz para se tornar ativo
Adicione o dispositivo no Domoticz para se tornar ativo

Observe o número abaixo de "IDX". Esta é a referência única a este dispositivo e precisamos dela mais tarde em nosso script Python para abordar a notificação. Nesse caso, o número IDX é 1.

Habilite o dispositivo clicando na seta verde à esquerda (na minha foto abaixo ela é azul, por causa do dispositivo habilitado).

Preencha o nome do dispositivo e clique em "adicionar".

Navegue até o menu "Utilitários" e seu dispositivo deve estar listado lá.

Agora precisamos programar "evento" para nosso sensor. Significa que precisamos dizer ao servidor o que fazer caso tenha recebido uma mensagem do sensor. E foi, digamos, o lugar mais difícil para mim:).

Etapa 9: Não Funciona Desta Forma …

Não funciona assim …
Não funciona assim …

Comecei tentando programar o evento na página / dispositivo /. Isso abaixo não é meu, mas está tudo bem para ilustrar.

Se você acredita que marcará algumas caixas de seleção e funcionará, está enganado:) Não funciona desta forma. Suponho que este recurso aqui ainda não tenha terminado. Não se esqueça - é um software de código aberto. Ok, depois de várias horas eu encontrei a solução. Precisamos usar "Eventos" no menu suspenso "Configuração".

Depois de clicar em "Eventos", você pode criar seu próprio evento. Você pode fazer isso escrevendo um código em Python ou LUA, ou apenas usando algo chamado "Blockly". Eu escolhi usar Blockly. Existem duas maneiras de forçar o servidor a fazer o que você deseja.

Etapa 10: Crie um evento da maneira certa 1

Crie um evento da maneira certa 1
Crie um evento da maneira certa 1

1. Execute o arquivo externo via "Eventos", usando a mensagem do Blockly "Iniciar script"

Isso funciona perfeitamente para mim na máquina Windows. Mas não tive sucesso com isso no Raspbian no meu Raspberry Pi. Suspeito que haja um problema com as permissões.

Etapa 11: Crie o evento da maneira certa 2

Crie um evento da maneira certa 2
Crie um evento da maneira certa 2

2. Use a mensagem "Enviar notificação com assunto". Funciona no Raspbian. Esta opção oferece suporte ao envio de notificações para Pushsafe e Pushover.

A vantagem de usar a 1ª via é que ela é mais flexível. Você pode escolher o ícone a ser mostrado em sua tela, sons e assim por diante. Meu "evento" é mostrado na imagem acima.

A seguir, vamos programar o módulo ESP.

Etapa 12: Programação do Módulo ESP8266-01

Módulo de programação ESP8266-01
Módulo de programação ESP8266-01

Vamos começar atualizando nosso módulo ESP8266. Normalmente esses módulos vêm com firmware de fábrica. é possível comunicar-se com os módulos usando os chamados comandos AT. E também este software não permite o uso de módulos como controladores autônomos. Para usá-los como controladores autônomos, precisamos apagar o firmware de fábrica e instalar um novo.

Para fazer isso, usaremos esptool. Do que precisamos conectar nosso módulo ao PC para apagar o firmware. Para fazer isso, você precisa do conversor TTL + alguns componentes adicionais. Mas existe uma maneira mais fácil:). Basta comprar no aliexpress ou ebay USB para ESP8266 ESP-01 Módulo Adaptador Wi-Fi com driver CH340G.

Conecte o módulo ESP8266 ao conversor TTL conforme mostrado na imagem e conecte-o à porta USB.

Se você tiver o mesmo conversor que eu, então, por si só, você precisa mudar a chave para a posição "Prog". Encontre onde o esptool está instalado (normalmente em algum lugar como C: / Arquivos de programas (x86) Python36-32 / Scripts. Vá para esta pasta, inicie o prompt de comando lá. Digite: python esptool.exe --port COM5 erase_flash

Claro, escolha a porta correta. No meu caso, é COM5. Você pode verificar a porta onde o ESP está instalado em Painel de controle - Sistema - Gerenciador de dispositivos.

Instale o firmware (eu o retirei daqui: https://micropython.org/download#esp8266) digitando:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = detectar 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Ok, agora estamos prontos para enviar os scripts de micropython para ESP8266.

Estou usando a ferramenta Adafruit MicroPython (ampy) para isso.

Mas hoje em dia existe uma outra opção chamada Esplorer. Este é um aplicativo com interface de usuário, permitindo fazer upload de arquivos para módulos ESP.

Você pode encontrar instruções sobre como instalar o ampy aqui. Portanto, coloque a chave do conversor TTL na posição "UART". Precisaremos fazer upload dos arquivos:

  • wifimgr.py - gerenciador de wi-fi para conexão à rede wi-fi
  • main.py - nosso script principal

Na linha de comando digite: ampy --port COM5 coloque C: / caminho para o seu arquivo

Pressione "Enter". Após alguns segundos, você deverá ver a linha de comando vazia. Isso significa que o arquivo foi carregado. Você pode verificar a lista de arquivos no ESP pelo comando ampy:

ampy --port COM5 ls

Pela minha experiência, é melhor carregar main.py depois de carregar todos os arquivos necessários. é assim, porque assim que você carregar main.py - o módulo ESP8266 será reiniciado e iniciará a execução do arquivo main.py. Portanto, neste caso, se você tentar fazer upload de outro arquivo, às vezes o processo de upload falhará. Mas isso não significa que tudo está perdido:), tente uma segunda vez e você terá sucesso (de novo, por experiência própria).

Todos os arquivos para este projeto estão disponíveis aqui:

Etapa 13: Conecte-se à sua rede WiFi. Receber notificação

Conecte-se à sua rede WiFi. Receber notificação
Conecte-se à sua rede WiFi. Receber notificação
Conecte-se à sua rede WiFi. Receber notificação
Conecte-se à sua rede WiFi. Receber notificação

se estiver tudo bem, reinicie o módulo, reinserindo o conversor TTL na porta USB do seu PC.

Após o início do ESP, encontre uma nova rede WiFi chamada "Wifimanager". Conecte-o com seu PC ou telefone e vá para o endereço IP 192.168.4.1.. Aqui você pode conectar seu ESP à rede WiFi local. Escolha a rede WiFi que você vai usar, digite a senha e clique em "Enviar".

Se tudo estiver correto, você verá a mensagem "ESP conectado com sucesso à rede XXXX". Seu ESP agora está conectado à sua rede WiFi e pronto. Assim que se conectar ao WiFi, ele se conectará ao servidor Domoticz. Baixinho você tem que receber uma notificação no seu celular.

Você pode acompanhar o processo em "Setup" / "Log".

Vua lia!:) Funciona. Agora podemos prosseguir com a montagem de todas as peças, de acordo com o diagrama de blocos abaixo.

Etapa 14: Diagrama de blocos

Diagrama de bloco
Diagrama de bloco

Não há muito a dizer sobre este diagrama. Muito simples. Alterne a alimentação com o interruptor S1. O dispositivo fica no estado desligado até que a água atinja os pinos do "sensor de água". Em seguida, a "placa Pololu" é ligada e alimenta o conversor de tensão. Este módulo de energia baseado no chip HT7333 converte a voltagem em 3,3 V estáveis para ESP8266. Em seguida, o ESP liga e envia uma mensagem ao servidor Domoticz.

Etapa 15: Resultado e conclusões

Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões
Resultado e Conclusões

Funciona. O envio de notificação demorava até 10 segundos: conexão com Wi-Fi, envio de notificação, recebimento de mensagem de alarme para o telefone.

Programei o sensor para enviar alarmes a cada 30s, caso seja detectada água. O sensor pode enviar de 5 a 6 notificações até que a bateria seja descarregada. Esse dispositivo também pode ser usado para determinar o nível de água. O que eu gostaria de melhorar.

1. Para fazer funcionar mais rápido. Acho que vou tentar usar a tecnologia ESP-Now, que me permite conectar vários ESPs diretamente. Neste caso, o consumo de energia durante a conexão é muito baixo e mais rápido. Portanto, a ideia é usar um ESP como um hub para conectar outros ESPs.

2. Implemente o alarme de nível de bateria. Agora você não pode saber se há energia suficiente para enviar mensagem de alarme ou não. Acho que na próxima geração deste sensor haverá um botão especial para testar a carga da bateria.

O usuário terá que apertar um botão e o nível da bateria será mostrado.

Recomendado: