Arduino Nano ESP32 - Sensor de Umidade do Solo
Este tutorial mostra como usar o Arduino Nano ESP32 para ler a umidade do solo de um sensor. Em detalhes, vamos aprender:
- Sensor de Umidade Capacitivo vs Sensor de Umidade Resistivo
- Como usar o Arduino Nano ESP32 para ler o valor de um sensor de umidade capacitivo
- Como calibrar um sensor de umidade capacitivo
- Como o Arduino Nano ESP32 determina se o solo está úmido ou seco
Hardware Necessário
Or you can buy the following kits:
| 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

Existem dois tipos de sensores de umidade:
- Sensor de umidade resistivo
- Sensor de umidade capacitivo.
Ambos os sensores fornecem o valor da umidade do solo. No entanto, seus princípios de funcionamento são diferentes. Recomendamos fortemente usar o sensor de umidade capacitivo, pelos seguintes motivos:
- O sensor resistivo de umidade do solo corrói com o tempo. A corrente elétrica que flui entre as pontas do sensor causa corrosão eletroquímica.
- O sensor capacitivo de umidade do solo NÃO corrói com o tempo. Os eletrodos do sensor não ficam expostos e nenhuma corrente elétrica flui entre eles.
A imagem abaixo mostra a corrosão em um sensor resistivo de umidade do solo.

O restante deste tutorial usa o sensor capacitivo de umidade do solo.
Pinagem do Sensor Capacitivo de Umidade do Solo
Um sensor capacitivo de umidade do solo tem três pinos:
- Pino GND: conecte este pino ao GND (0V)
- Pino VCC: conecte este pino ao VCC (5V ou 3.3v)
- Pino AOUT: o pino de saída de sinal analógico fornece a tensão em proporção inversa ao nível de umidade do solo. Conecte este pino a um pino de entrada analógica do ESP32.

Como Funciona
Quanto mais água há no solo, menor é a tensão no pino AOUT
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código Arduino Nano ESP32
Passos Rápidos
- Copie o código acima e cole no Arduino IDE
- Clique no botão Upload no Arduino IDE para fazer upload do código para a placa Arduino Nano ESP32
- Enterre o sensor no solo e depois despeje água no solo. Ou mergulhe-o lentamente em um copo de água com sal.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
※ Nota:
- Não use água pura para testar, porque ela não conduz eletricidade e, por isso, não vai afetar as leituras do sensor.
- As leituras do sensor nunca chegam a zero. É normal que os valores fiquem entre 3100 e 2600, embora isso possa mudar devido a fatores como a profundidade em que o sensor é colocado, a composição do solo ou da água e a tensão da fonte de alimentação.
- Evite enterrar a parte do circuito (localizada na parte de cima do sensor) no solo ou na água, pois isso pode danificar o sensor.
Calibração do Sensor Capacitivo de Umidade do Solo
O valor medido pelo sensor de umidade é relativo. Ele depende da composição do solo e da água. Na prática, precisamos fazer a calibração para determinar um limite (threshold) que seja a fronteira entre úmido e seco.
Como fazer a calibração:
- Execute o código acima no Arduino Nano ESP32
- Coloque o sensor de umidade no solo
- Coloque o sensor de umidade no solo
- Irrigue o solo lentamente
- Observe o Serial Monitor.
- Anote o valor no momento em que você perceber que o solo muda de seco para úmido. Esse valor é chamado de THRESHOLD.
Determinar se o solo está úmido ou seco
Depois da calibração, atualize o valor de THRESHOLD que você anotou no código abaixo. O código abaixo determina se o solo está úmido ou seco
O resultado no Serial Monitor.
※ Nota:
Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor ou componente. O ADC do Arduino Nano ESP32 é adequado para projetos que não exigem alta precisão. No entanto, para projetos que precisam de medições precisas, tenha em mente o seguinte:
- O ADC do Arduino Nano ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa Arduino Nano ESP32 pode variar um pouco, então a calibração é necessária para cada placa individual.
- A calibração pode ser desafiadora, especialmente para iniciantes, e nem sempre produz os resultados exatos que você quer.
Para projetos que exigem alta precisão, considere usar um ADC externo (por exemplo, ADS1115) com o Arduino Nano ESP32 ou usar outro Arduino, como o Arduino Uno R4 WiFi, que tem um ADC mais confiável. Se você ainda quiser calibrar o ADC do Arduino Nano ESP32, consulte o ESP32 ADC Calibration Driver.