Índice:

Alarme de inundação de subsolo de energia ultrabaixa com ESP8266: 3 etapas
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266: 3 etapas

Vídeo: Alarme de inundação de subsolo de energia ultrabaixa com ESP8266: 3 etapas

Vídeo: Alarme de inundação de subsolo de energia ultrabaixa com ESP8266: 3 etapas
Vídeo: Como economizar Energia 2024, Novembro
Anonim
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266

Olá, bem-vindo ao meu primeiro instrutível.

O porão da minha casa fica inundado a cada poucos anos por vários motivos, como fortes tempestades de verão, águas subterrâneas altas ou até mesmo o rompimento de um cano. Embora não seja um lugar agradável, mas minha caldeira de aquecimento central está localizada lá embaixo e a água pode danificar suas partes eletrônicas, então preciso bombear a água o mais rápido possível. É difícil e desconfortável verificar a situação após uma forte tempestade de verão, então decidi fazer um alarme baseado em ESP8266 que me envia um e-mail em caso de inundação. (Quando a inundação é causada por água subterrânea elevada, o nível da água é geralmente inferior a 10 centímetros, o que não é prejudicial para o aquecedor e não é recomendado bombear porque ela voltará de qualquer maneira e quanto mais você bombear, mais água subterrânea virá da próxima vez. Mas é bom saber sobre a situação.)

Neste aplicativo o aparelho pode ficar em "hibernação" por anos e, se tudo funcionar conforme planejado, só funciona por alguns segundos. Usar o sono profundo não é prático, pois consome muita corrente se quisermos dormir por períodos muito longos e o ESP8266 só consegue dormir por no máximo 71 minutos.

Decidi usar um interruptor de flutuação para ligar o ESP. Com esta solução o ESP não é alimentado quando o interruptor está aberto, portanto o consumo de energia é apenas a autodescarga das baterias, o que mantém o sistema pronto para o alarme por anos.

Quando o nível da água atinge o interruptor de flutuação, o ESP inicia normalmente, se conecta à minha rede WiFi, me envia um e-mail e vai dormir para sempre com o ESP. Deepsleep (0) até que a energia seja desligada e ligada novamente. Se não conseguir se conectar ao WiFi ou enviar o e-mail, ele entrará em hibernação por 20 minutos e tentará novamente até obter sucesso.

Essa ideia é semelhante à solução descrita por Andreas Spiess neste vídeo. Mas, devido à natureza da inundação e do interruptor de flutuação, não precisamos adicionar um MOSFET para manter o ESP ligado até que termine sua tarefa, porque o interruptor de flutuação será fechado se o nível da água estiver acima do nível de acionamento.

Etapa 1: O esquema:

O esquema
O esquema

Peças

  • D1: Díodo Schottky BAT46 para despertar em sono profundo. Tenho melhores experiências com diodos Schottky do que resistores entre D0 e RST.
  • Interruptor de flutuação: Tubo de palheta simples de $ 1,2 e interruptor de flutuação com base em ímã do eBay. O anel com o ímã pode ser invertido para alternar entre a comutação de nível de fluido alto e baixo. Link eBay
  • Suporte de bateria: para 2 baterias AAA de 1,5 V
  • P1: 2 terminais de parafuso 2P 5,08 mm (200mil) para conectar os fios da bateria e do interruptor de bóia.
  • C1: capacitor 1000uF 10V para aumentar a estabilidade do ESP enquanto o rádio está ligado. Observe que, se o ESP estiver em hibernação profunda, a energia armazenada no capacitor é suficiente para alimentá-lo por 3-4 minutos. Nesse período, a operação do interruptor de flutuação não pode reiniciar o ESP porque o capacitor o mantém ligado durante o sono profundo. Isso só é interessante durante o teste.
  • U1: Microcontrolador LOLIN / Wemos D1 Mini Pro ESP8266. Esta é a versão profissional com conector de antena externa, que pode ser útil quando colocada no porão. Observe que você deve soldar novamente o "resistor" SMD de 0 ohm para selecionar a antena externa em vez da antena de cerâmica embutida padrão. Eu recomendo comprar microcontroladores LOLIN na loja oficial do LOLIN AliExpress porque existem muitas placas Wemos / LOLIN falsas ou antigas por aí.
  • Perfboard: Uma protoplaca de 50 mm * 50 mm será suficiente para caber todas as peças. O circuito é muito simples para fazer um PCB.:)

Observe que a bateria está conectada à entrada de 3,3V. Embora o D1 Mini tenha um LDO integrado para operação USB / LiPo, não precisamos disso quando ele é alimentado por 3V de 2 baterias alcalinas AAA. Com esta conexão, meu D1 Mini foi capaz de completar sua tarefa com apenas 1,8 V de tensão de alimentação.

Etapa 2: O Código

O programa poderia ser melhor ou mais simples, mas suas partes foram comprovadas em meus outros projetos.

O esboço usa as seguintes bibliotecas:

ESP8266WiFi.h: Padrão para placas ESP8266.

Gsender.h: Biblioteca de remetentes do Gmail de Borya, pode ser baixada aqui.

O fluxo do programa é bastante simples.

  • ESP começa.
  • Lê a memória RTC para verificar se é a primeira vez ou não
  • Conecta-se ao WiFi usando a função cleverwifi (). Isso se conecta ao WiFi usando o endereço MAC do roteador (BSSID) e o número do canal para uma conexão mais rápida, tenta novamente sem eles após 100 tentativas malsucedidas e vai dormir após 600 tentativas. Esta função foi derivada do esboço de economia de consumo de energia WiFi de OppoverBakke, mas sem salvar os dados de conexão para a parte RTC neste aplicativo.
  • Verifica a tensão da bateria com o ESP integrado nos recursos ADC_MODE (ADC_VCC) / ESP.getVcc (). Isso não requer divisor de tensão externo ou qualquer fiação para A0. Perfeito para tensões abaixo de 3,3 V, que é o nosso caso.
  • Envia um novo e-mail com Gsender.h. Eu adicionei variáveis e texto personalizado ao assunto e strings de mensagem para relatar a tensão da bateria, o tempo decorrido desde a primeira detecção e conselhos sobre a substituição da bateria. Não se esqueça de alterar o endereço de e-mail do destinatário.

    • Dorme

      • Se for bem-sucedido, ele dorme "para sempre" com ESP.deepSleep (0); Fisicamente, ficará em modo de espera até que o nível da água esteja alto. Tecnicamente, isso leva algumas horas ou no máximo alguns dias, o que não drenará a bateria com os poucos uA de corrente de suspensão. Quando a água acabar, o interruptor de bóia abrirá e o ESP será desligado completamente, e o consumo de corrente será 0.
      • Se não obtiver êxito, ele entrará em hibernação por 20 minutos e, em seguida, tentará novamente. É possível ter uma queda de energia CA no caso de uma tempestade de verão. Ele conta as reinicializações e as armazena na memória RTC. Esta informação é usada para relatar o tempo decorrido desde a primeira tentativa de alarme. (Observe que, ao testá-lo com alimentação USB e monitor serial, o RTC pode manter o valor da contagem do ciclo entre os downloads também.)

Etapa 3: Montagem e instalação

Montagem e Instalação
Montagem e Instalação
Montagem e Instalação
Montagem e Instalação
Montagem e Instalação
Montagem e Instalação

Depois de testar o código em uma placa de ensaio, eu o soldei em um pequeno pedaço de perfboard.

Usei 2 peças de terminais de parafuso de 2 pólos com passo de 5,08 mm costuradas juntas, um cabeçote fêmea para o ESP, um capacitor e alguns jumpers.

Observe que o resistor SMD com o número "0" próximo à antena de cerâmica deve ser soldado novamente aos blocos vazios próximos a ele para selecionar a antena externa.

Então coloquei tudo em uma pequena caixa de junção elétrica IP55. Os fios da chave flutuante são conectados por meio de um prensa-cabo.

A caixa é colocada em uma altura segura, onde a água pode (espero) nunca alcançá-la, então usei um par de um fio de cobre relativamente grosso de 1 mm ^ 2 (17AWG) para conectar a chave flutuante. Com esta configuração, o ESP poderia iniciar e enviar a mensagem mesmo com tensão de entrada de 1,8 V.

Após a instalação, este silencioso sentinela fica de guarda, mas espero que não precise enviar um alarme em breve …

Recomendado: