Magos do Arduino

Sensor de umidade de solo

Aprenda a utilizar um sensor de umidade de solo com o Arduino

Magos do Arduino

Sensor de umidade de solo

O sensor de umidade do solo serve para medir a quantidade de água presente na terra.

Sensor de umidade de solo

Ele detecta a resistência elétrica entre as duas hastes metálicas.

Quando o solo está seco, a resistência é alta, ou seja, pouca ou nenhuma condução.

Quando o solo está úmido, a resistência é baixa, ou seja, maior condução elétrica.

Ele possui quatro pinos, sendo dois para alimentação de 5V e GND, além de um pino de leitura analógica (A0) e outro digital (D0).

O pino digital (D0) retorna 0V ou 5V dependendo do nível de umidade, que pode ser calibrado utilizando o potenciômetro existente nele.

Já o pino analógico (A0) retorna um valor entre 0 e 1023, que pode ser utilizado no Arduino da seguinte forma:

  1. Se o valor do sensor estiver entre 600 e 1023, o solo está seco.
  2. Se o valor do sensor estiver entre 370 e 600, o solo está úmido.
  3. Se o valor do sensor for menor do que 370, o sensor está muito úmido/molhado.

* Esses valores podem variar de sensor para sensor.

Ele pode ser utilizado para monitorar a umidade da terra em vasos de plantas ou jardins, automatizar sistemas de irrigação ligando uma bomba ou válvula quando o solo estiver seco.

Pode também ser utilizado para evitar desperdício de água em plantações, e até mesmo em projetos educacionais sobre sensores, automação e agricultura inteligente.

Sensor de umidade de solo

Neste projeto você criará um circuito que faz o uso de um sensor de umidade de solo com o Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x Breadboard (opcional)
  • 1x Arduino UNO
  • 1x Sensor de umidade do solo
  • Jumpers

Circuito Sensor de umidade de solo

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Sensor de umidade de solo

Código fonte para o circuito do sensor de umidade de solo

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
 * Código do curso Magos do Arduino para utilizar um sensor de umidade do solo com o Arduino. 
 * 
 * Imprima no monitor serial as leituras digitais e analógicas de um sensor de umidade de solo com o Arduino.
 * Se o valor do sensor for maior que 600, mas menor que 1000, o solo está seco. 
 * Se o valor do sensor estiver entre 370 e 600, o solo está úmido. 
 * Se o valor do sensor for menor que 370, o sensor está na água.
 *
 * (c) Copyright KazaleIT
 * @kazaleitoficial no YouTube
 **/

#define PINO_SENSOR_DIGITAL 2
#define PINO_SENSOR_ANALOGICO A0

int valorDigital = 0;
int valorAnalogico = 0;

void setup() {
  pinMode(PINO_SENSOR_DIGITAL, INPUT);

  Serial.begin(9600);
}

void loop() {
  // faz a leitura do valor digital do sensor
  valorDigital = digitalRead(PINO_SENSOR_DIGITAL);
  // imprime o valor digital obtido pelo sensor
  Serial.print("Valor digital: ");
  Serial.println(valorDigital);

  // imprime uma mensagem com base no valor digital obtido (HIGH ou LOW)
  if (valorDigital == HIGH) {
    Serial.println("Nível da umidade do solo está no nível desejado.");
  } else {
    Serial.println("Nível da umidade do solo está abaixo do valor desejado.");
  }

  // faz a leitura do valor analógico do sensor
  valorAnalogico = analogRead(PINO_SENSOR_ANALOGICO);

  // imprime o valor analógido obtido pelo sensor
  Serial.print("Valor analógico: ");
  Serial.println(valorAnalogico);

  // imprime o nível de umidade do solo.
  Serial.print("Nível de umidade do solo: ");
  if (valorAnalogico > 600) {
    Serial.println("o solo está seco.");
  } else if (valorAnalogico > 370) {
    Serial.println("o solo está úmido.");
  } else { // menor do que 370
    Serial.println("o solo está com excesso de água.");
  }

  Serial.println("");
  delay(500);
}