Sensor de auga no solo

Descrición:

Imos usar o sensor Soilwatch10 (pino-tech) que permite medir o contido relativo de auga no chan.

Semella un condensador onde as placas están formadas por pistas de cobre na placa do circuíto e o medio circundante (o solo) é o material dieléctrico, producíndose un campo eléctrico entre a placa positiva e negativa en función da permitividade eléctrica do solo. Os factores que afecta a este valor non son unicamente o contido de auga do solo, senón tamén a temperatura, porosidade, tipo de minerais, etc.

Montaxe:

Este sensor conéctase nun pin analóxico que mide a saída de voltaxe no sensor, que variará segundo a permitividade eléctrica do solo, que está relacionada co contido de auga.

Fíxate na serigrafía e conecta VCC, GND e o pin de datos ao pin analóxico A0.

Programa:

O primeiro que temos que facer é calibrar o sensor vendo os valores que dá cando está completamente seco (minSolo) e completamente somerxido en auga (maxSolo). No programa calcularemos a saída en % utilizando a función map.

// Declaración de variables:

const int PinSolo = A0;   // Pin analóxico no que conectamos o sensor
int minSolo = 7;          // substitúe pola túa medición no aire
int maxSolo = 660;        // substitúe pola túa medición completamente somerxido

bool is1V1Output = false;  // poñer "true" se é un sensor con saída de 1.1V e "false"para un sensor de 3V
 
int medidaSolo;            // variable da saída do convertedor analóxico dixital do sensor de auga no solo
int augaSolo;              // contido de auga no solo a partir do valor de saída mínimo en aire e máximo en auga
 
// Configuración:

void setup() {

  Serial.begin(9600);   // Iniciamos a comunicación serie
  
  // Isto non o imos usar nós, pois é para o caso de que o sensor sexa de 1.1V
  if(is1V1Output == true){
    analogReference(INTERNAL); //set ADC reference to internal 1.1V
  }
  
}

// Programa:
 
void loop() {
  
  medidaSolo = analogRead(PinSolo);  // Lectura analóxica no pin A0
  augaSolo = map(medidaSolo,minSolo,maxSolo, 0, 100); // Calculamos a porcentaxe de auga

  Serial.print("Medida= " );  // Imprimimos na consola
  Serial.print(medidaSolo);
  Serial.print("  - " );
  Serial.print("auga= " );
  Serial.print(augaSolo);
  Serial.println("%" );

  delay(500);  // tempo de agarda entre medicións
  
}

Propostas:

  1. Imos regar unha planta cando o % de humidade do solo sexa menor que un 20%. Deberá activarse unha bomba de auga mediante un relé que regue a maceta que funcionará ata que a humidade do solo alcance o 50%.