ESP32 - Bomba com Sensor de Umidade do Solo
Neste tutorial, vamos aprender a usar o ESP32 para controlar a bomba de acordo com o valor lido do sensor de umidade do solo capacitivo.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Many soil moisture sensors available in the market are unreliable, regardless of their version. We strongly recommend buying the sensor with TLC555I Chip from the DIYables brand using the link provided above. We tested it, and it worked reliably.
Sobre o sensor de umidade do solo e a Bomba
Se você não conhece a bomba e o sensor de umidade do solo (pinagem, funcionamento, programação...), aprenda sobre eles nos seguintes tutoriais:
- Tutorial ESP32 - Sensor de Umidade do Solo
- Tutorial ESP32 - Controle de Bomba
Como Funciona
O ESP32 lê periodicamente o valor do sensor de umidade do solo capacitivo. Com base no valor de umidade do solo, ele executa as seguintes ações:
- Se o valor do sensor estiver acima de um limiar (o solo está seco), o ESP32 ativa automaticamente um relé para ligar a bomba.
- Caso contrário, o ESP32 desativa automaticamente o relé para desligar a bomba.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Faça a calibração para determinar o THRESHOLD entre úmido e seco, veja ESP32 - Calibração do Sensor de Umidade do Solo
- Atualize o valor calibrado em THRESHOLD no código
- Abra o Serial Monitor na Arduino IDE
- Carregue o código no ESP32
- Confira o resultado no Serial Monitor.
Explicação do Código
Leia a explicação linha por linha nas linhas de comentário do código-fonte!
※ Nota:
Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de umidade do solo. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. No entanto, para projetos que precisam de medições precisas, observe:
- O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
- A calibração pode ser difícil, especialmente para iniciantes, e nem sempre fornece os resultados exatos que você deseja.
Para projetos que precisam de alta precisão, considere usar um ADC externo (ex.: ADS1115) com o ESP32 ou usar um Arduino, que tem um ADC mais confiável. Se ainda assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver