Índice:

MQTT / Google Home Flood / Water WIFI Sensor With ESP-01: 7 etapas
MQTT / Google Home Flood / Water WIFI Sensor With ESP-01: 7 etapas

Vídeo: MQTT / Google Home Flood / Water WIFI Sensor With ESP-01: 7 etapas

Vídeo: MQTT / Google Home Flood / Water WIFI Sensor With ESP-01: 7 etapas
Vídeo: How to make Universal Remote control using ESP8266 Google Assistant & Cadio 2024, Julho
Anonim
MQTT / Google Home Flood / Sensor WIFI de água com ESP-01
MQTT / Google Home Flood / Sensor WIFI de água com ESP-01

Neste instrutível, vou mostrar a você como construir um sensor de inundação / água wi-fi com custo mínimo. Todo o projeto me custa menos de $ 8 para as peças que adquiro no ebay e minhas peças sobressalentes existentes.

Neste projeto, usaremos ESP-01 para fornecer Wifi e cliente MQTT para detectar a presença de água e, opcionalmente, usar alto-falante / campainha diretamente conectado para fornecer alarme localizado.

Minha aplicação específica para o projeto é detectar inundação / água dentro do poço da bomba do reservatório, no caso de falha da bomba do reservatório. Quando a água é detectada por 2 fios abertos, ele enviará uma mensagem ao intermediário MQTT. O broker MQTT então retransmitiria a mensagem para NodeRED. Ao receber a mensagem MQTT, o NodeRED enviaria o anúncio para vários dispositivos domésticos do Google e também, opcionalmente, enviaria a mensagem para o celular / navegador via pushbullet

É claro que esse projeto só funcionaria se a eletricidade da casa estivesse LIGADA. No próximo instrutível irei integrar o circuito de backup de bateria. Mas se você fizer a fonte de alimentação da mesma maneira que eu fiz, você pode simplesmente conectar um banco de energia USB para backup de bateria. Se você tiver um banco de energia que permite carregar e fornecer energia ao mesmo tempo, está tudo pronto.

Eu uso o RaspberryPi ZeroW para hospedar o servidor Mosquitto MQTT e o NodeRED. Está em execução há mais de um ano sem nenhum problema.

Referências: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi…Install NodeRED no Raspberry Pi:

Etapa 1: peças de que você precisa

Peças que você vai precisar
Peças que você vai precisar
Peças que você vai precisar
Peças que você vai precisar
Peças que você vai precisar
Peças que você vai precisar

Lista de peças:

(1) ESP-01

(2) Resistor de 10K ohm

(1) transistor NPN genérico de pequeno sinal (usei 2N3904)

(2) fios longos

(1) Fonte de alimentação genérica de 5 V (este circuito requer menos de 300 mA de corrente)

(1) Módulo regulador de 3,3 V AMS1117

(1) Micro-USB para adaptador DIP conector fêmea PCB conversor kit faça você mesmo

(1) Cabo USB-A para MicroUSB.

(1) Soquete IC de 8 pinos - pode ser omitido se você quiser soldar o ESP-01 diretamente na placa de circuito. Corte as pontes de plástico que criam a lacuna entre as fileiras e, a seguir, cole as 2 fileiras, veja a foto.

(1) Pequeno recinto para o projeto

Abaixo estão as peças opcionais se você precisar de um alarme localizado usando alto-falante / campainha

(1) Transistor PNP genérico, escolha de acordo com os requisitos de corrente / potência do alto-falante / campainha. No meu caso, eu uso o 2N2907, pois meu alto-falante tem apenas 0,3 W (8 ohm), ele forneceria energia suficiente para acionar o alto-falante. Você pode escolher um transistor e um alto-falante maiores se quiser um som mais alto.

(1) Alto-falante, consulte a nota sobre Transistor PNP acima

(1) Resistor de 100 - 110 ohm

Etapa 2: Diagrama de Circuito

Diagrama de circuito
Diagrama de circuito

A primeira etapa seria criar o circuito mostrado no diagrama.

Eu construí a fonte de alimentação de 3,3 VCC usando um carregador de celular de 5 V antigo acoplado a um regulador de 3,3 VCC AMS1117. Para o soquete ESP-01, eu uso um soquete IC padrão de 8 pinos, e corte as pontes de plástico que criam a lacuna entre as fileiras e, em seguida, colo as 2 fileiras.

O circuito que projetei serve para detectar a presença de água entre os dois fios. Quando a água atinge a ponta de ambos os fios, ela cria uma resistência de aproximadamente 10K a 20K ohm. Então, em série com o R1 de 10K ohm, ele fornece uma pequena corrente para a base do Q1, causando a saturação do Q1, prendendo o GPIO-2 ao aterramento. R1 é necessário para fornecer proteção a Q1 no caso de ocorrer um curto acidental nos fios de detecção.

R2 é um resistor pull-up que permite ao ESP-01 inicializar a partir do flash.

Agora, para o alto-falante / campainha opcional, se você só precisa de ESP-01 para falar MQTT e não deseja implementar esse alarme localizado, pode remover R2, Q2, alto-falante e colocar um resistor pull-up de 10K entre GPIO-0 e VCC.

Se você não sentir a necessidade de usar o adaptador fêmea Micro-USB para DIP, pode soldar os fios entre o PS 5V e o módulo regulador de 3,3V. Eu prefiro usar o adaptador MicroUSB fêmea para poder usar qualquer carregador de celular genérico e cabo MicroUSB.

Etapa 3: Construindo o Circuito

Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito
Construindo o Circuito

Solde todos os componentes e peças em PCB de acordo com o diagrama de circuito na página anterior e corte o PCB no tamanho certo.

Coloque o PCB dentro de um gabinete que caberia no PCB e no alto-falante opcional. No meu caso, todas as peças caberiam dentro de uma pequena caixa de tomadas de telefone, mas tenho que aquecer um pouco a tampa para criar uma protuberância para que o módulo ESP-01 caiba.

Etapa 4: Atualizando o ESP-01

Nesta etapa, faremos um flash do ESP-01 com o esboço do arduino. Se você nunca atualizou o módulo ESP-01, pode seguir minhas instruções para começar:

Você pode encontrar meu esboço na minha página do github:

No esboço, você precisa, no mínimo, alterar as seguintes informações relativas à sua rede / configuração doméstica:

#define MQTT_SERVER "10.0.0.30" const char * ssid1 = "SSID"; const char * password1 = "MYSSIDpassword"; const char * ssid2 = "SSID1"; const char * password2 = "MYSSIDpassword";

Na minha rede doméstica, eu tenho 2 pontos de acesso diferentes que transmitem 2 SSIDs diferentes, e este esboço permitiria redundância conectando-se ao próximo SSID se a comunicação com o AP atual fosse perdida. Se você tiver apenas um SSID, preencha ssid1 e ssid2 com o mesmo valor.

Depois de fazer a modificação, carregue o esboço no ESP-01 e conecte o ESP-01 na placa de interface.

Etapa 5: execução de teste

Para testar se nosso projeto funciona, o mais fácil seria monitorar as mensagens MQTT na rede. Para fazer isso, você precisa abrir uma sessão SSH para o corretor mosquitto e emitir o seguinte comando:

mosquitto_sub -v -t '#'

O comando acima nos permitiria ver todas as mensagens MQTT chegando ao broker.

Agora ligue nosso circuito e, se tudo funcionar, em alguns segundos você deverá ver pelo menos a seguinte mensagem MQTT:

stat / SumpWaterSensor / LWT Online

Agora teste o sensor de água mergulhando os 2 fios sensores em um copo d'água, e você verá esta mensagem:

tele / SumpWaterSensor WET

E se você tirar os fios da água, deverá ver esta mensagem:

tele / SumpWaterSensor DRY

Se você vir essas mensagens, seu projeto é um sucesso.

Também incluí vários tópicos MQTT úteis no esboço que você pode usar:

"stat / SumpWaterSensorInfo": esta mensagem é enviada a cada minuto para fornecer tempo de atividade e outras informações.

"cmnd / SumpWaterSensorInfo": ESP-01 enviará informações se receber este tópico com valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorCPUrestart": ESP-01 irá reiniciar se receber este tópico com valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorBeep": ESP-01 irá soar o alto-falante se receber este tópico com valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorBeepFreq": Define a frequência do alarme do alto-falante, padrão = 900 (Hz)

"cmnd / SumpWaterSensorDebug": Habilita e define o nível de depuração serial (o padrão é 0 - sem depuração)

Etapa 6: Monte o Sensor

Monte o Sensor
Monte o Sensor
Monte o Sensor
Monte o Sensor

Em meu aplicativo, desejo monitorar o nível de água dentro do poço da bomba do reservatório e notificar se a água ultrapassar o interruptor da bóia da bomba do reservatório, o que significa que a bomba do reservatório não está funcionando. Passei os fios e usei amarras para prendê-los ao longo do tubo de drenagem.

Etapa 7: toque final

Toque final
Toque final

Agora que o projeto está funcionando e podemos publicar a mensagem MQTT para o broker, a próxima etapa é pensar em uma ideia o que fazer com isso.

Em meu projeto, eu uso o Node-RED para ouvir / assinar o tópico MQTT "tele / SumpWaterSensor" e anunciar para vários alto-falantes domésticos do Google se água for detectada. Além disso, também vinculei o fluxo a um nó pushbullet para enviar notificação ao meu telefone Android.

Também criei um front-end web para ver o status do sensor (on / offline, uptime, etc). Às vezes eu vi que ele fica offline algumas vezes no decorrer de 1 semana, pelas estatísticas, muitas vezes é devido ao ESP-01 se desconectar do wi-fi ou MQTT. Mas não se preocupe, meu esboço incluiu uma rotina para reiniciar o ESP-01 se ele continuar falhando ao tentar se conectar ao WIFI e / ou corretor MQTT.

A imagem nesta etapa mostra o fluxo do Node-RED para fazer isso. Você também pode colar o fluxo da minha página do github em seu Node-RED:

O anúncio da página inicial do Google é apenas um exemplo para este projeto, mas acho que é o mais útil e prático. Você sempre pode fazer interface com outro ouvinte MQTT ou até mesmo usar o IFTTT para acionar outros dispositivos quando a água for detectada.

Divirta-se…

Recomendado: