ESP8266 - Sensor de Umidade do Solo
Este tutorial ensina você a usar um sensor de umidade com o ESP8266. Especificamente, vamos ver:
- As diferenças entre um sensor de umidade resistivo e um capacitivo
- Como programar o ESP8266 para ler o valor do sensor de umidade usando o ESP8266
- Como usar o ESP8266 para calibrar o sensor de umidade
- Como o ESP8266 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: o sensor de umidade resistivo e o sensor de umidade capacitivo.
Os dois sensores oferecem informações sobre a umidade do solo. No entanto, seus métodos de funcionamento são diferentes. Sugerimos usar o sensor de umidade capacitivo pelos seguintes motivos:
- O sensor resistivo de umidade do solo tende a corroer com o tempo, pois a corrente elétrica passa entre suas sondas, causando corrosão eletroquímica.
- O sensor capacitivo de umidade do solo, por outro lado, corrói muito mais devagar do que o sensor resistivo de umidade do solo. Isso acontece porque seus eletrodos não ficam expostos e ele é comparativamente resistente à corrosão.
Esta é uma ilustração de um sensor resistivo de umidade do solo que foi danificado pela corrosão.

O restante deste tutorial vai utilizar o sensor capacitivo de umidade do solo.
Pinagem do Sensor Capacitivo de Umidade do Solo
O sensor capacitivo de umidade do solo tem três pinos:
- Pino GND: Deve ser conectado a GND (0V).
- Pino VCC: Deve ser conectado a VCC (5V ou 3.3v).
- Pino AOUT: É o pino de saída do sinal analógico, que produz uma tensão proporcional ao nível de umidade do solo. Deve ser conectado a um pino de entrada analógica de um ESP8266.

Como Funciona
A quantidade de água presente no solo tem uma proporção inversa com o nível de tensão do pino AOUT.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Código ESP8266 para ler o valor do sensor de umidade do solo
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for sua primeira vez usando o ESP8266.
- Faça a ligação dos componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Copie o código e abra-o com o Arduino IDE.
- Clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o ESP8266.
- Enterre o sensor no solo e depois despeje água no solo. Ou mergulhe-o devagar em um copo de água salgada.
- Confira o resultado no Serial Monitor. Ele se parece com o abaixo:
※ Nota:
- Não use água pura para o teste, porque ela não conduz eletricidade, então não vai mudar as leituras do sensor.
- As leituras do sensor nunca serão zero. É normal os valores ficarem entre 500 e 600, embora isso possa mudar conforme fatores como a profundidade em que o sensor é colocado, o tipo de solo ou de água e a tensão da fonte de alimentação.
- Evite enterrar a parte do circuito (encontrada 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 obtido do sensor de umidade não é absoluto. Ele se baseia na composição do solo e no teor de água. Para determinar com precisão um limite entre úmido e seco, precisamos fazer a calibração.
Instruções para a Calibração:
- Execute o código no ESP8266
- Coloque o sensor de umidade no solo
- Adicione água ao solo aos poucos
- Acompanhe o Serial Monitor
- Anote o valor quando o solo muda de seco para úmido. Isso é chamado de THRESHOLD.
O código ESP8266 determina se o solo está úmido ou seco
Depois que a calibração estiver pronta, atualize o valor de THRESHOLD que você anotou no código abaixo. Este código será usado para decidir se o solo está úmido ou seco.
A saída vista no Serial Monitor.
※ Nota:
Este tutorial usa a função analogRead() para obter dados de um ADC (Conversor Analógico-Digital) que está conectado a um sensor ou a outra peça. O ADC do ESP8266 funciona bem para projetos em que você não precisa de leituras muito precisas. Mas lembre-se, o ADC do ESP8266 não é muito preciso para medições detalhadas. Se o seu projeto precisa ser muito preciso, você pode querer usar um ADC separado, como o ADS1115 com o ESP8266, ou usar um Arduino como o Arduino Uno R4 WiFi, que tem um ADC mais confiável.