Introdução ao Sensor Capacitivo de Umidade do Solo
Diferente dos sensores resistivos tradicionais, este módulo utiliza o princípio de capacitância para medir a umidade do solo. Isso elimina o problema comum de corrosão dos eletrodos, aumentando significativamente a vida útil do dispositivo. O sensor inclui um regulador de tensão integrado, operando entre 3,3 V e 5,5 V, sendo compatível com placas Arduino de 3,3 V. A interface padrão Gravity (DFRobot) permite conexão direta com shields de expansão I/O. Para plataformas como Raspberry Pi, é necessário um conversor ADC externo.
Características Técnicas
- Alimentação: 3,3–5,5 V DC
- Sinal de saída analógico: 0–3,0 V
- Conector: PH2.0-3P
- Dimensões: 99×16 mm
- Saída inversamente proporcional à umidade (menor valor em água)
Esquema Elétrico e Conexão
O módulo possui três pinos: VCC, GND e Sinal (analógico). Conecte VCC ao 5V do Arduino, GND ao GND e Sinal a uma entrada analógica (ex.: A0).
Calibração do Sensor
Antes de usar, é necessário calibrar o sensor para definir os limites de umidade. O procedimento consiste em:
- Carregar o código de calibração abaixo no Arduino.
- Abrir o Serial Monitor (9600 baud).
- Medir o valor lido com o sensor exposto ao ar seco (valor de referência para seco).
- Mergulhar o sensor em água (até a marca indicada no corpo, sem ultrapassar a linha vermelha) e anotar o valor (referência para 100% de umidade).
Como a saída é inversamente proporcioanl à umidade, o valor em água será menor que o valor ao ar.
Código de Calibração
// Calibração do sensor capacitivo de umidade do solo
void setup() {
Serial.begin(9600);
}
void loop() {
int leitura = analogRead(A0);
Serial.println(leitura);
delay(500);
}
Exemplo Prático: Classificação da Umidade
Com os valores de calibração (exemplo: ar = 620, água = 308), podemos dividir o intervalo em três faixas: seco, úmido e muito úmido. O código abaixo classifica e exibe o estado no Serial Monitor.
// Classificação da umidade do solo em três níveis
const int VALOR_AR = 620; // Valor no ar seco
const int VALOR_AGUA = 308; // Valor na água
const int INTERVALO = (VALOR_AR - VALOR_AGUA) / 3;
void setup() {
Serial.begin(9600);
}
void loop() {
int leitura = analogRead(A0);
if (leitura > VALOR_AGUA && leitura < (VALOR_AGUA + INTERVALO)) {
Serial.println("Muito úmido");
}
else if (leitura > (VALOR_AGUA + INTERVALO) && leitura < (VALOR_AR - INTERVALO)) {
Serial.println("Úmido");
}
else if (leitura < VALOR_AR && leitura > (VALOR_AR - INTERVALO)) {
Serial.println("Seco");
}
delay(2000);
}
Observações Importantes
- A profundidade de inserção e a copmactação do solo influenciam as leituras; recomenda-se fixar uma profundidade padrão.
- Após retirar o sensor, o solo pode se soltar, alterando leituras subsequentes.
- Para proteger a parte eletrônica, aplique verniz isolante ou resina na região dos componentes.
Integração com Plataformas Gráficas
O sensor pode ser utilizado em ambientes como Mind+ ou Linkboy (simulação), facilitando o aprendizado de programação visual.