← Todos os projetos
Iniciante ⏱ 45 min 03 de julho de 2026

Sensor de umidade do solo com Arduino: monitor e irrigação automática

Nunca mais esqueça de regar as plantas! Neste projeto você monta um sensor de umidade do solo que mostra com LEDs se a terra está seca, úmida ou na medida certa. E vai além: com um relé e uma bomba d'água, o sistema rega sozinho quando o solo seca. Ideal para hortas, jardins e vasos.

Projeto Arduino: Sensor de umidade do solo com Arduino: monitor e irrigação automática — A2 Robotics

Como funciona

O sensor de umidade do solo tem dois espetões que você enfia na terra. Ele mede a resistência elétrica entre eles: terra molhada conduz melhor a eletricidade (menor resistência), terra seca conduz pior (maior resistência). O Arduino lê esse valor pela porta analógica e converte numa escala de umidade. Na primeira parte do projeto, três LEDs mostram o estado: verde para úmido, amarelo para ok e vermelho para seco. Na segunda parte, adicionamos um módulo relé e uma bomba d\'água: quando o solo fica seco demais, o Arduino aciona o relé, que liga a bomba e rega a planta automaticamente, desligando quando a umidade volta ao normal.

Dica: proteja o sensor Sensores de umidade com espetões metálicos podem corroer com o tempo se ficarem sempre ligados. No código, fazemos leituras rápidas e espaçadas para prolongar a vida do sensor.

O que você vai precisar

Todos os componentes disponíveis na A2 Robotics — clique em cada item para comprar

Arduino Uno R3

1 unidade

Ver produto ↗

Sensor de umidade do solo

1 unidade

Ver produto ↗

LED difuso 5mm verde

1 unidade

Ver produto ↗

LED difuso 5mm amarelo

1 unidade

Ver produto ↗

LED difuso 5mm vermelho

1 unidade

Ver produto ↗

Resistor 330Ω (1/4W)

3 unidades

Ver produto ↗

Módulo relé 5V

1 unidade

Ver produto ↗

Mini bomba submersível d'água

1 unidade

Ver produto ↗

Protoboard

1 unidade

Ver produto ↗

Jumpers (cabos de ligação)

1 kit

Ver produto ↗

Esquema de ligação

ARDUINO UNO R3 D5D6D7D8 A05VGND SENSOR Umidade (A0) Verde D5 Amar. D6 Verm. D7 RELÉ (D8) Bomba
Sensor → A0 LED verde → D5 LED amarelo → D6 LED vermelho → D7 Relé → D8

Parte 1: monitor com LEDs

Comece pelo mais simples: ler o sensor e acender os LEDs conforme a umidade. Este código não usa a bomba ainda — é ótimo para calibrar e entender os valores do seu sensor. Abra o Monitor Serial para ver os números e ajustar os limites conforme o seu solo.

// Monitor de umidade do solo com LEDs — A2 Robotics
#define SENSOR    A0
#define LED_VERDE    5
#define LED_AMARELO  6
#define LED_VERMELHO 7

void setup() {
  pinMode(LED_VERDE, OUTPUT);
  pinMode(LED_AMARELO, OUTPUT);
  pinMode(LED_VERMELHO, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // Lê o sensor e converte para porcentagem de umidade
  int leitura = analogRead(SENSOR);
  int umidade = map(leitura, 1023, 0, 0, 100);  // seco=0%, molhado=100%

  Serial.print("Umidade: ");
  Serial.print(umidade);
  Serial.println("%");

  // Apaga todos e acende o LED conforme o nível
  digitalWrite(LED_VERDE, LOW);
  digitalWrite(LED_AMARELO, LOW);
  digitalWrite(LED_VERMELHO, LOW);

  if (umidade > 60) {
    digitalWrite(LED_VERDE, HIGH);      // solo úmido
  } else if (umidade > 30) {
    digitalWrite(LED_AMARELO, HIGH);    // solo ok
  } else {
    digitalWrite(LED_VERMELHO, HIGH);   // solo seco - regar!
  }

  delay(1000);
}

Parte 2: irrigação automática

Agora a mágica: quando o solo fica seco, o Arduino aciona o relé, que liga a bomba d\'água e rega a planta. Quando a umidade volta ao normal, a bomba desliga sozinha. Ajuste o valor LIMITE_SECO conforme o que você observou no Monitor Serial da Parte 1.

// Irrigação automática com sensor de umidade — A2 Robotics
#define SENSOR       A0
#define LED_VERDE    5
#define LED_AMARELO  6
#define LED_VERMELHO 7
#define RELE         8

// Abaixo deste valor de umidade, liga a bomba
const int LIMITE_SECO = 30;

void setup() {
  pinMode(LED_VERDE, OUTPUT);
  pinMode(LED_AMARELO, OUTPUT);
  pinMode(LED_VERMELHO, OUTPUT);
  pinMode(RELE, OUTPUT);
  digitalWrite(RELE, HIGH);  // relé começa desligado (módulos comuns são ativados em LOW)
  Serial.begin(9600);
}

void loop() {
  int leitura = analogRead(SENSOR);
  int umidade = map(leitura, 1023, 0, 0, 100);

  Serial.print("Umidade: ");
  Serial.print(umidade);
  Serial.println("%");

  digitalWrite(LED_VERDE, LOW);
  digitalWrite(LED_AMARELO, LOW);
  digitalWrite(LED_VERMELHO, LOW);

  if (umidade > 60) {
    digitalWrite(LED_VERDE, HIGH);
    bomba(false);
  } else if (umidade > LIMITE_SECO) {
    digitalWrite(LED_AMARELO, HIGH);
    bomba(false);
  } else {
    digitalWrite(LED_VERMELHO, HIGH);
    bomba(true);   // solo seco: liga a bomba
  }

  delay(1000);
}

// Liga ou desliga a bomba pelo relé
void bomba(bool ligar) {
  // A maioria dos módulos relé liga em LOW e desliga em HIGH
  digitalWrite(RELE, ligar ? LOW : HIGH);
}

Passo a passo

  1. Ligue o sensor de umidade

    O sensor tem uma plaquinha (módulo) com pinos VCC, GND e A0. Ligue VCC no 5V, GND no GND e a saída analógica (A0 ou AO) no pino A0 do Arduino.

  2. Monte os LEDs

    Verde no D5, amarelo no D6, vermelho no D7 — cada um com um resistor de 330Ω.

  3. Teste a Parte 1

    Carregue o código da Parte 1, abra o Monitor Serial e teste enfiando o sensor em terra seca e úmida. Anote os valores para calibrar.

  4. Adicione o relé e a bomba

    Ligue o sinal do relé no D8. A bomba é alimentada por uma fonte externa e controlada pelos contatos do relé — nunca ligue a bomba direto no Arduino.

  5. Ajuste e teste a irrigação

    Carregue o código da Parte 2, ajuste o LIMITE_SECO e teste. Quando o solo secar, a bomba deve ligar; ao molhar, deve desligar.

Vá além

Com o sistema funcionando, dá para evoluir bastante: adicionar um display LCD mostrando a umidade em tempo real, criar uma horta com vários sensores e bombas independentes, registrar o histórico de rega, ou até avisar no celular quando precisar regar. É a base de uma estufa automatizada caseira.

Gostou do projeto? Monte o seu Todos os componentes disponíveis com entrega para todo o Brasil
Ver produtos →