Neste artigo veremos como utilizar o sensor capacitivo de mistura de solo na Pi Pico 2,onde iremos medir a quantidade de água num determinado tipo de solo.
Na eletrônica temos algumas formas para detectar se o solo está seco ou molhado, as mais usadas são os sensores resistivos [1] e capacitivos [2].
Sabemos que a água é um condutor de eletricidade, misturado com sais minerais se torna mais condutiva ainda. Tendo em mente esta propriedade da água, é possível colocar duas hastes de cobre no solo, separada por uma certa distância, e se aplicamos uma certa corrente elétrica numa das hastes ela será conduzida à outra através da água. Como a corrente sofre uma certa resistência à passagem da corrente, é possível medir essa corrente e assim verificar a quantidade de água entre as duas hastes, quanto mais água , menor será a resistência. Mas existe uma outra forma de fazer esta medição, que é a capacitiva, onde as hastes funcionam como um capacitor e assim medir a capacitância gerada entre as hastes e a quantidade de água entre elas. Existem vantagens e desvantagens em usar uma ou outra forma de medição, mas tudo depende do uso que será feito.
Como forma didática, temos na figura 2 o esquema elétrico, onde usamos a própria Pi Pico como fonte de energia para o funcionamento do sensor. O GND do módulo ligado à qualquer GND da Pi Pico e o Aout, ou seja, a saída analógica do sensor ao GPIO 26 que é uma entrada analógica.

Na figura 3 temos uma ideia de como o sensor capacitivo funciona, ele possui um gerador de alta frequência usando um 555, os sinais gerados passam por um filtro passa-baixas alimentando uma das hastes, e um retificador, onde o capacitor atenua o sinal alternado transformando em sinais de tensão DC na saída Aout.
O Código-fonte
A seguir temos o código utilizado para obter valores da quantidade de água entre as duas hastes do sensor.
import machine
import time
# Configura o pino GP26 como entrada analógica (ADC0)
adc_pico = machine.ADC(26)
# --- VALORES DE CALIBRAÇÃO ---
# Como o sensor é capacitivo, o valor no ar (seco) é MAIOR que o valor na água (úmido).
# Execute o código primeiro para descobrir seus valores reais e ajustar estas variáveis:
VALOR_AR = 48000 # Valor de leitura quando o sensor está totalmente seco (no ar)
VALOR_AGUA = 22000 # Valor de leitura quando inserido em um copo com água
def converter_para_porcentagem(valor_adc):
# Trata valores fora do intervalo de calibração
if valor_adc >= VALOR_AR:
return 0.0
elif valor_adc <= VALOR_AGUA:
return 100.0
# Mapeamento inverso (quanto maior a leitura do ADC, menor a umidade)
porcentagem = ((VALOR_AR - valor_adc) / (VALOR_AR - VALOR_AGUA)) * 100
return porcentagem
while True:
# Lê o valor bruto do ADC (16-bit: varia de 0 a 65535 na Pico)
leitura_bruta = adc_pico.read_u16()
# Calcula a porcentagem aproximada de umidade
umidade = converter_para_porcentagem(leitura_bruta)
print(f"Leitura Bruta ADC: {leitura_bruta} | Umidade Estimada: {umidade:.1f}%")
time.sleep(1)
Conclusão
Com este sensor é possível utilizar a Pi Pico num sistema de rega inteligente, seja em pequenos vasos com em algumas plantações. Ligando relés ou bombas d'água quando o solo estiver seco. A vantagem de se usar um sensor capacitivo é que os contatos de cobre não ficam em contato direto com o solo, ao contrário do que acontece com os sensores resistivos. Por ser uma placa de baixo custo, a sua utilização em projetos acadêmicos se torna muito acessível.
Referências:
[1] Sensor de umidade - https://www.newtoncbraga.com.br/projetos-educacionais/3347-art463.html
[2] Hacking a Capacitive Soil Moisture Sensor (v1.2) for Frequency Output - https://thecavepearlproject.org/2020/10/27/hacking-a-capacitive-soil-moisture-sensor-for-frequency-output/














