Pular para o conteúdo
pedrovilaca.dev

pedro/projetos/horta-inteligente

Horta Inteligente

ESP8266 com sensor de umidade do solo publicando por MQTT, e um app em React Native que mostra a umidade em tempo real e abre ou fecha a irrigação.

IoTAcadêmico

Contexto

A Horta Inteligente foi um projeto interdisciplinar de Engenharia de Computação na PUC Minas. No começo, o projeto se chamava HortaControlApp.

Problema

A proposta: acompanhar a umidade do solo de longe e acionar a irrigação pelo celular, sem precisar ir até o vaso.

Solução

No hardware, um ESP8266 NodeMCU lê um sensor analógico de umidade do solo no pino A0 e converte a leitura para uma escala de 0 a 100%. A irrigação é acionada pelo pino D0, que comandaria um relé ou uma válvula; no protótipo, um LED faz esse papel.

Na comunicação, voltei ao MQTT (com a biblioteca PubSubClient), usando o broker público da HiveMQ:

  • o ESP8266 publica a umidade a cada 1 segundo no tópico …/umidade;
  • o ESP8266 assina o tópico …/status e reage às mensagens abrir e fechar.

No app, feito em React Native 0.62, a tela mostra a umidade em tempo real, o estado da irrigação e dois botões para abrir ou fechar a válvula.

Tela do app: percentual de umidade do solo em 37,78%, irrigação fechada e os botões Abrir irrigação e Fechar irrigação.
O app em React Native, com a umidade lida do tópico MQTT.

Resultado e aprendizado

O protótipo funcionou com controle manual pelo app: o ESP8266 publica a umidade, o app assina e manda abrir ou fechar a irrigação.

A tela do app traz a frase "Irrigação ligará ao atingir 10% de umidade", mas essa regra não foi implementada no firmware. A irrigação automática ficou como próximo passo planejado: o ESP8266 já tem a leitura e o acionamento, falta a lógica que liga um ao outro.

O projeto confirmou o que eu tinha visto na iniciação científica do CEFET-MG: com um broker no meio, o dispositivo e o app não precisam se conhecer, só combinar os tópicos.