Sistema completo de telemetria de nível de água à prova de intempéries utilizando ESP32, sensor ultrassônico submersível JSN-SR04T com divisor de tensão, boia magnética de segurança física e relé optoacoplado para acionamento automático da bomba.
Microcontrolador com Wi-Fi/Bluetooth e GPIOs de 3.3V.
Transdutor ultrassônico estanque IP67 com cabo de 2.5m.
Protege a entrada do ESP32 convertendo 5V em 3.3V no pino ECHO.
Sensor de nível crítico para bloqueio de hardware contra queima da bomba.
Acionamento do contator da motobomba monofásica/trifásica.
Alimentação confiável e contínua sem ruídos elétricos.
Conexões ponto a ponto entre o ESP32, a placa controladora do sensor e os atuadores.
| Origem (ESP32) | Nível Lógico | Destino (Dispositivo) | Função / Observação |
|---|---|---|---|
| GPIO 5 | 3.3V Out | JSN-SR04T TRIG | Pulso de disparo de 10µs gerado pelo microcontrolador. |
| GPIO 18 | 3.3V In (Divisor) | JSN-SR04T ECHO | Retorno do tempo de eco acústico (medido após divisor 1k/2k). |
| GPIO 19 | 3.3V In (Pull-up) | Boia Magnética (Pólo A) | Pólo B conectado ao GND. Quando a boia baixa, fecha o circuito. |
| GPIO 23 | 3.3V Out | Módulo Relé (IN) | Comanda a bobina do relé para ligar ou desligar a motobomba. |
| VIN / 5V | 5.0V DC | JSN VCC + Relé VCC | Alimentação principal dos módulos de potência e transdutor. |
| GND | 0V Terra | GND Geral | Barramento de terra comum interligado. |
JSN-SR04T (ECHO 5V) ---->[ Resistor 1kΩ ]----+----> GPIO18 (ESP32 3.3V)
|
[ Resistor 2kΩ ]
|
GND
Fure a tampa da cisterna com broca serra-copo no diâmetro da rosca do JSN-SR04T. O sensor possui uma zona morta (blind zone) de cerca de 20 a 25 cm. Garanta que o sensor fique posicionado pelo menos 25 cm acima do nível máximo do espelho d'água para evitar leituras erráticas quando o reservatório estiver 100% cheio.
Ambientes de cisterna possuem umidade relativa próxima a 100%. Mantenha a placa de circuito do JSN-SR04T e o ESP32 em uma caixa de passagem IP65/IP66 hermética fora do poço da cisterna, passando apenas o cabo blindado do sensor pela vedação de prensa-cabos de borracha.
Posicione a boia magnética a aproximadamente 15% do fundo da cisterna. Se o nível de água cair abaixo desta cota, a boia abre o circuito imediatamente, acionando o bloqueio de hardware no código para impedir que a bomba trabalhe sem escorva (a seco).
O relé do ESP32 deve acionar a bobina de um contator eletromecânico caso a bomba tenha mais de 1/2 CV (ou opere em 220V/10A+). Nunca ligue motores indutivos pesados diretamente no contato simples do módulo relé para evitar arco voltaico e travamento por interferência EMI.
Grave esta configuração no seu ESP32 via dashboard ESPHome ou PlatformIO.
esphome:
name: cisterna-monitor
friendly_name: Monitor Cisterna Lab
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
sensor:
- platform: ultrasonic
trigger_pin: GPIO5
echo_pin: GPIO18
name: "Distância Espelho d Água"
update_interval: 3s
pulse_time: 10us
timeout: 4.5m
filters:
- filter_out: nan
- median:
window_size: 7
send_every: 3
id: distancia_bruta
- platform: template
name: "Nível da Cisterna em Porcentagem"
unit_of_measurement: "%"
accuracy_decimals: 1
icon: "mdi:water-percent"
lambda: |-
const float PROF_TOTAL = 2.20; // Metros
float dist = id(distancia_bruta).state;
if (isnan(dist)) return {};
float lamina = (2.45 - dist);
float pct = (lamina / PROF_TOTAL) * 100.0;
return (pct > 100.0) ? 100.0 : (pct < 0 ? 0 : pct);
binary_sensor:
- platform: gpio
pin:
number: GPIO19
mode: INPUT_PULLUP
inverted: true
name: "Boia Nível Mínimo (Segurança)"
device_class: problem
id: boia_seguranca
switch:
- platform: gpio
pin: GPIO23
name: "Relé Bomba Cisterna"
id: rele_bomba
on_turn_on:
- if:
condition:
binary_sensor.is_on: boia_seguranca
then:
- switch.turn_off: rele_bomba
- logger.log: "BLOQUEIO ATIVADO: Boia em nível crítico!"
Crie uma automação para proteção automática e alertas no Telegram / push notification.
alias: "Cisterna - Proteção de Nível Crítico"
trigger:
- platform: numeric_state
entity_id: sensor.nivel_da_cisterna_em_porcentagem
below: 15
- platform: state
entity_id: binary_sensor.boia_nivel_minimo_seguranca
to: "on"
action:
- service: switch.turn_off
target:
entity_id: switch.rele_bomba_cisterna
- service: notify.notify
data:
title: "⚠️ Alerta Cisterna Vazia"
message: "A bomba foi desligada automaticamente para evitar cavitação e queima por falta de água!"
Adquira os componentes deste projeto nas principais plataformas com envio rápido: