sensor-de-humedad-del-suelo-capacitivo-y-arduino

Sensor de humedad del suelo capacitivo y Arduino

¿Qué es higrómetro capacitivo?

Un higrómetro capacitivo es un sensor que mide la humedad del suelo mediante la variación de la capacitancia. Es un sensor habitual en sistemas de riego automático.

Ya vimos un higrómetro resistivo para medir la humedad del suelo en esta entrada, como antecesor de peores características que los capacitivos.

La principal ventaja que tienen los sensores capacitivos es que no tienen el problema de oxidación de los electrodos, que sí tenían los sensores resistivos.

Además, su precisión es ligeramente superior. Sin embargo, no esperéis tampoco una gran precisión que, por otro lado, tampoco es necesario para accionar un sistema de riego.

El sensor tiene una tensión de operación de 3V3 a 5V. Su salida es una señal analógica de 0 a 3V. El consumo típico durante es de 5mA.

Finalmente, indicar que el sensor dispone de una línea blanca que indica la profundidad máxima a la que podemos introducir el sensor en la tierra

Precio

Los higrómetros capacitivos son dispositivos baratos. Podemos encontrarlos por 1.40€ en vendedores internacionales de Ebay y Aliexpress.

Como vemos, el precio es similar a los sensores de humedad resistivos. Por tanto, en general, siempre preferiremos los sensores de humedad capacitivos, por sus características superiores.

arduino-sensor-humedad-suelo-capacitivo-componente

¿Cómo funciona un higrómetro capacitivo?

Este tipo de sensores capacitivos disponen de un timer 555, que se emplea para generar una onda cuadrada. Al aplicar esta onda al sensor, en contacto con la tierra, el efecto de la capacitancia registrada modifica la onda aplicada.

arduino-sensor-humedad-suelo-capacitivo-funcionamiento

De forma resumida, esta diferencia en las ondas es comparada por el sensor, dando lugar a una pequeña tensión diferencial que puede ser medidas por un microprocesador como Arduino.

Cuanto mayor es la humedad del suelo, mayor es la capacidad registrada por el sensor. Por tanto, menor el voltaje proporcionado por el sensor.

Valores habituales son 2.3-2.5V para sensor totalmente seco (en el aire) y 1.2-1.3V para sensor totalmente húmedo (en el agua).

Esquema de montaje

La conexión es muy sencilla, únicamente tenemos que alimentar el sensor y conectar su salida a una entrada analógica.

arduino-sensor-humedad-suelo-capacitivo-esquema

La conexión, vista desde Arduino, sería la siguiente.

arduino-sensor-humedad-suelo-capacitivo-conexion

Ejemplos de código

Lectura simple

La lectura del sensor es realmente sencilla. Únicamente tenemos que realizar su lectura empleando una entrada analógica.

En este ejemplo, realizamos la lectura y mostramos el valor por pantalla.

const int sensorPin = A0;

void setup()
{
 Serial.begin(9600);
}
void loop()
{
 int humedad = analogRead(sensorPin);
 Serial.print(humedad);
 delay(1000);
}

Porcentaje de humedad

Sabiendo los valores máximos y mínimos de la salida del sensor, podemos estimar el porcentaje de humedad del suelo, si asumimos que esta es lineal con la medición del sensor.

Aproximadamente hemos dicho que estos valores son 2.3V en el aire, y 1.3V en agua. Empleando un ADC de 10 bits (0-1023) se traduce, respectivamente, en 550 y 250.

const int sensorPin = A0;
const int humedadAire = 550;
const int humedadAgua = 250;

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
   int humedad = analogRead(sensorPin);
   Serial.println(humedad);
   
   porcentajeHumedad = map(humedad, humedadAire, humedadAgua, 0, 100);
   if(porcentajeHumedad > 100) porcentajeHumedad = 100;

   Serial.print(porcentajeHumedad);
   Serial.println("%"); 
}

Podéis obtener precisiones superiores calibrando estos valores a los de vuestro sensor. Sin embargo, tampoco os compliquéis demasiado. Ya hemos indicado que no es un sensor especialmente preciso, y tampoco es realmente necesario.

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full