Início/Blog/IoT agrícola com ESP32
Arquitetura de IoT Agrícola

IoT agrícola com ESP32: sensores de solo, irrigação e alertas preditivos

Um sensor barato ajuda a programar irrigação apenas quando a leitura é calibrada para o solo, instalada na zona radicular, combinada com clima e evidência hidráulica e conectada a um controlador que continua seguro sem cloud ou rede.

Meça uma zona, não um campo abstrato

Solo varia com textura, compactação, relevo, raiz, sombra, equipamento e estágio da cultura. Uma sonda não representa toda a fazenda. Defina zonas de manejo e sensores em locais e profundidades representativos.

Guarde cultura, estágio, perfil, profundidade radicular, capacidade de campo, threshold, sensor, instalação, calibração, método, vazão nominal e operador.

Evidência do soloUmidade ou potencial por profundidade, temperatura, salinidade, calibração, qualidade e idade.
Demanda climáticaChuva, temperatura, umidade, vento, radiação, forecast, ET de referência, coeficiente e chuva efetiva.
Evidência hidráulicaComando/estado de válvula, bomba, pressão, vazão, reservatório, filtro, runtime e volume.
Policy operacionalJanela, threshold, alvo, runtime/volume máximo, cooldown, override, interlocks e fail-safe.

Calibre o sensor na instalação real

Sondas capacitivas baratas expõem valor elétrico, não umidade volumétrica universal. ADC, tensão, cabo, salinidade, temperatura, envelhecimento e contato afetam a leitura. Calibre referências seca/molhada para sensor, solo, profundidade e eletrônica.

Registre valor raw e valor calibrado com calibration ID para interpretar o histórico após troca.

Mantenha o loop de segurança local

A cloud recomenda e compara; não pode ser o único componente capaz de parar válvula travada, bomba seca, tubo rompido, reservatório vazio ou irrigação longa. Controle local aplica runtime/volume máximo, limites de pressão/vazão, cooldown e emergência.

Comando inclui ID, zona, início, expiração, alvo, precondições, policy, emissor e auth. O ESP32 revalida estado e reporta accepted, started, flowing, completed, stopped, rejected ou faulted.

Construa o loop campo-dashboard

Loop de controle campo-dashboard
01 AmostrarLeia a zona radicularAcorde, estabilize, amostre, rejeite impossível, agregue, timestamp e bateria.
02 DecidirAplique policy localThreshold, agenda, chuva, reservatório, pressão, runtime recente, expiração e manual.
03 AgirAcione com segurançaDrivers isolados, default-off, watchdog, interlock, runtime máximo e override físico.
04 VerificarObserve águaVálvula, aumento de vazão, pressão, volume, no-flow, leak e desligamento.
05 BufferizarPersista eventosSequência, sensores, comando, estados, falhas, calibração, firmware e fila.
06 TransmitirUse o caminho disponívelWi-Fi, gateway celular, LoRaWAN, MQTT, store-and-forward, retries e expiração.
07 ModelarCalcule balanço hídricoSolo, água entregue, chuva, ET, estágio, forecast, anomalias e manutenção.
08 OperarMostre decisões e alertasGráfico, freshness, recomendação, status, água, owner e controle manual.

Mostre thresholds e resposta

Tendência de umidade na zona radicular
Threshold de reposição
06h
09h
12h
15h
18h
21h
00h
03h

Exiba também freshness, calibração, profundidade, intervalo de irrigação, chuva e volume. Percentual sem contexto cria falsa confiança.

Use múltiplas amostras e flags

Energize a sonda apenas na leitura quando possível, estabilize, leia várias vezes, use mediana e retenha variância. Marque desconectado, saturado, fora de faixa, instável, stale, sem calibração e estimado.

Não suavize a resposta real ou assinatura de vazamento. Guarde raw por janela curta e agregados por mais tempo.

Conectividade depende da geometria

Wi-Fi atende estufa/prédios; LoRaWAN atende baixa taxa em área rural; celular atende gateways remotos; satélite ou sync tardio pode ser necessário. Escolha por payload, alcance, energia, terreno, custo e downlink.

Controle continua local. Telemetria bufferiza com sequence/event time. Comando antigo expira.

MQTT precisa de semântica de domínio

QoS não torna operação de válvula exactly-once. Cada leitura/comando tem ID estável. Deduplicate e separe desired command de observed state e resultado.

Retained command stale é perigoso. Use expiração e checagem atual. Status inclui firmware, boot, fila, calibração, bateria, sinal e falha.

Demanda hídrica precisa de solo e atmosfera

Sensor mostra água local; evapotranspiração estima demanda e uso. O método FAO combina ET de referência e coeficiente da cultura. Use como input e calibre com sensor, chuva, irrigação e observação agronômica.

Forecast pode adiar recomendação, mas incerteza não deve ocultar estresse crítico.

Alertas preditivos começam com física e tendência

Calcule taxa de queda, tempo até threshold, residual de balanço, vazão por válvula, pressão, descarga de bateria, packet loss e discordância. São explicáveis e muitas vezes suficientes.

ML pode prever necessidade, falha, entupimento, vazamento ou manutenção, retornando horizonte, confiança, evidência e inspeção, não comando direto.

Matriz operacional

CondiçãoEvidênciaResposta automáticaGate de segurançaAlerta
Zona abaixo do thresholdAmostras válidas, perfil, ET/chuva, estágio e freshness.Recomendar ou agendar irrigação limitada.Janela, reservatório, pressão, runtime e manual.Estresse próximo sem janela elegível.
Válvula comandada sem vazãoComando, feedback, vazão e pressão.Parar após timeout curto e marcar fault.Nunca estender para “ver se começa”.Inspecionar válvula, fiação, bomba ou linha.
Vazão inesperada com válvulas offVazão, comandos off, pressão/reservatório.Fechar master ou parar bomba por policy.Emergência física e override.Vazamento de alta severidade.
Umidade não sobe após volumeVolume, qualidade, atraso, profundidade e peers.Não repetir; abrir anomalia.Limite diário e cooldown.Sensor, vazamento, runoff, entupimento ou canalização.
Chuva prevista e solo adequadoPerfil, ET, probabilidade/volume e deadline.Adiar dentro da policy.Umidade mínima e atraso máximo.Alertar se incerteza pode causar estresse.
Sensor stale/driftLast seen, variância, peers, calibração e bateria.Excluir do controle e usar fallback seguro.Sem ação consequencial de sonda inválida.Ordem de manutenção.

Energia determina confiabilidade

Use deep sleep, duty cycle, regulador de baixo consumo, bateria medida e orçamento para sensing, retries, frio e aging. Solar precisa considerar dias nublados e sujeira.

Brownout corrompe estado e pode acionar relé. Use drivers, flyback, decoupling, watchdog, outputs seguros no boot e storage com writes limitados.

Hardware outdoor precisa de metadata

Enclosure, UV, condensação, insetos, prensa-cabo, corrosão, raios, aterramento, troca e identificação afetam uptime. Registre serial, instalação, profundidade, calibração, bateria, firmware e manutenção.

Dashboard deve orientar rota técnica com zona, peça provável, histórico, isolamento e verificação.

Secure boot e OTA precisam de recovery

Use firmware assinado, secure boot/flash encryption quando aplicável, credenciais protegidas, identidade por device e transporte autenticado. OTA por hardware/zona, com rollback e health check.

Não atualize todos os controladores juntos. Preserve agenda local segura e manual. Registre firmware, config, calibração, update e rollback.

Observe agronomia e infraestrutura

Dashboard combina perfil, threshold, ET, chuva, recomendação, irrigação, vazão, pressão, volume, energia, freshness, bateria, sinal, firmware, fila e falhas. Compare resposta do solo após cada ciclo.

Outcomes: água por hectare, eficiência, horas de estresse evitadas, vazamentos, visitas, energia, contexto de produtividade e reparo. Não alegue ganho de safra sem evidência controlada.

Teste campo, rádio e backend

Teste calibração, drivers, no-flow, overcurrent, watchdog, brownout, manual, expiração, offline queue, duplicatas, clock drift, storage cheio, bateria, packet loss, gateway e OTA rollback.

Faça piloto por zonas diferentes e compare com medidas de referência e inspeção agronômica antes da automação.

O que eu construiria

Eu construiria nós ESP32 calibrados e deep sleep, controlador local de válvula/bomba, gateway LoRaWAN/Wi-Fi, MQTT, time series raw, digital twin de zona, balanço hídrico, recommendation engine, anomaly detector, command service e dashboard de campo.

Começaria em advisory mode. Depois, zonas de baixo risco receberiam automação limitada com vazão/pressão, limites diários, expiração, interlocks, auditoria e override.

O princípio de design

Irrigação inteligente não é “umidade abaixo de 30%, ligue o relé”. É sistema medido: evidência calibrada, policy, segurança local, entrega verificada, telemetria resiliente, previsão explicável e ownership humano.