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.

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.
Todos os componentes disponíveis na A2 Robotics — clique em cada item para comprar
Arduino Uno R3
1 unidade
Sensor de umidade do solo
1 unidade
LED difuso 5mm verde
1 unidade
LED difuso 5mm amarelo
1 unidade
LED difuso 5mm vermelho
1 unidade
Resistor 330Ω (1/4W)
3 unidades
Módulo relé 5V
1 unidade
Mini bomba submersível d'água
1 unidade
Protoboard
1 unidade
Jumpers (cabos de ligação)
1 kit
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); }
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); }
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.
Verde no D5, amarelo no D6, vermelho no D7 — cada um com um resistor de 330Ω.
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.
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.
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.
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.