Skip to content

endimonan/manjerica-esp32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Monitoramento de Umidade do Solo com ESP32

Sistema completo de monitoramento de plantas com ESP32, sensor de umidade do solo e integração com backend de hidroponia.

Características

  • Leitura de umidade do solo via sensor capacitivo
  • Conexão WiFi automática
  • Envio de dados para backend REST API
  • Controle remoto de válvula de irrigação
  • Classificação automática (Seco, Úmido, Muito Úmido)
  • Reconexão automática em caso de falha

Hardware Necessário

  • ESP32 (testado com UPESY WROOM)
  • Sensor de umidade do solo capacitivo
  • Relé ou módulo de controle para válvula (opcional)
  • Válvula solenoide 12V (opcional)
  • Fonte de alimentação adequada

Conexões

Sensor de Umidade

  • VCC → 3.3V
  • GND → GND
  • AOUT → GPIO36 (VP)

Válvula/Relé (opcional)

  • Controle → GPIO25
  • VCC → fonte externa (12V)
  • GND → GND comum

Configuração

1. Credenciais WiFi

Edite o arquivo platformio-ini e configure:

-D WIFI_SSID="\"Nome_Da_Sua_Rede\""
-D WIFI_PASSWORD="\"Sua_Senha_WiFi\""

2. Configuração do Backend

No arquivo src/main.cpp, ajuste:

const char* serverUrl = "http://SEU_IP:3000/api/ingest";
const char* deviceToken = "seu-token-aqui";
const char* deviceId = "esp32-001";
const char* zoneId = "zona-manjericao-1";

Importante: Se o backend está rodando na mesma máquina, substitua localhost pelo IP real da máquina na rede local (ex: http://192.168.1.100:3000/api/ingest).

3. Calibração do Sensor

Após a primeira execução, calibre o sensor:

  1. Coloque o sensor no ar seco e anote o valor AirValue
  2. Coloque o sensor em água e anote o valor WaterValue
  3. Atualize os valores no código:
const int AirValue = 3780;
const int WaterValue = 440;

Formato dos Dados Enviados

O ESP32 envia dados no formato JSON:

{
  "device_id": "esp32-001",
  "zone_id": "zona-manjericao-1",
  "readings": [
    {"metric": "soil_moisture_raw", "value": 2860},
    {"metric": "soil_moisture_pct", "value": 42}
  ]
}

Com header de autenticação:

X-DEVICE-TOKEN: seu-token-aqui

Comandos Recebidos

O backend pode responder com instruções:

{
  "ok": true,
  "next_instructions": [
    {
      "actor": "valvula_A",
      "command": "ON",
      "seconds": 20
    }
  ]
}

Comandos suportados:

  • ON com duração em segundos - abre a válvula pelo tempo especificado
  • OFF - fecha a válvula imediatamente

Intervalos de Leitura

  • Leitura do sensor: a cada 5 segundos
  • Envio para backend: a cada 60 segundos (1 minuto)

Para alterar, modifique:

const unsigned long sendInterval = 60000;
delay(5000);

Compilação e Upload

pio run -t upload
pio device monitor

Ou use a interface do PlatformIO no VS Code.

Monitoramento Serial

Abre o monitor serial (115200 baud) para ver:

  • Status da conexão WiFi
  • Leituras de umidade em tempo real
  • Envio de dados e respostas do servidor
  • Execução de comandos da válvula

Estrutura do Projeto

manjerica-esp32/
├── src/
│   └── main.cpp          # Código principal
├── platformio-ini        # Configurações do projeto
└── README.md            # Este arquivo

Resolução de Problemas

WiFi não conecta

  • Verifique SSID e senha
  • Certifique-se que a rede é 2.4GHz (ESP32 não suporta 5GHz)

Dados não chegam no backend

  • Substitua localhost pelo IP real da máquina
  • Verifique se o backend está rodando na porta 3000
  • Confirme que o firewall não está bloqueando

Leituras imprecisas

  • Calibre o sensor corretamente
  • Aguarde sensor estabilizar (alguns minutos)
  • Verifique conexões e alimentação

Válvula não aciona

  • Confirme conexão no GPIO25
  • Teste com LED primeiro
  • Verifique alimentação do relé/válvula

Próximos Passos

  • Adicionar sensor de temperatura DHT22
  • Implementar Deep Sleep para economia de energia
  • Adicionar mais zonas/sensores
  • Display OLED para visualização local
  • Modo de calibração via botão

Licença

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages