Jardinar é o passatempo favorito de muitos – e saudável. Na verdade, um estudo recente descobriu que mesmo uma pequena horta oferece qualidades de melhoria do humor semelhantes às proporcionadas pelo exercício físico.
No entanto, uma das principais preocupações de muitos jardineiros novos ou novatos é com que frequência e quanto devem regar as suas plantas. Outros podem precisar de deixar o seu jardim sem vigilância durante algum tempo e necessitar de assistência com a rega. Então, e se fosse possível garantir que as plantas fossem regadas automaticamente e ao mesmo tempo garantir a quantidade ideal, no momento ideal?
Bem… com o sistema certo implementado, isso é possível.
O projeto a seguir funciona regando as plantas automaticamente quando necessário. O circuito é construído usando um sensor de umidade do solo e Arduino. Como o próprio nome sugere, esse sensor rastreia o teor de umidade do solo e, via Arduino, é controlada uma bomba que fornece água às plantas.
Para evitar irrigação excessiva ou insuficiente, o solo nunca fica completamente seco ou totalmente molhado. Pelo contrário, o nível de humidade é mantido a um nível razoável. Pessoalmente, construí e usei esse sistema com sucesso em minha horta, que tem alguns vasos de plantas.
Os sensores de umidade do solo são colocados nos vasos e uma mini bomba d'água submersível (12 V) é colocada dentro de uma caixa d'água. Sua saída de água é feita para os vasos através de um bico que possui irrigação por gotejamento. Quando o solo em qualquer um dos vasos começa a secar, a bomba liga automaticamente e a planta é regada suavemente.
Assim que o solo recebe um nível adequado de umidade, a bomba desliga automaticamente. Este sistema garantiu que todas as minhas plantas fossem devidamente regadas, sempre que necessário e sem a minha ajuda!
Se desejar um sistema semelhante para a sua horta, basta seguir as instruções abaixo. Primeiro, você precisará coletar os itens necessários para começar.
O que é necessário…
1. Arduino NANO
2. Um sensor de umidade do solo
3. Um módulo de relé Arduino
4. Uma bateria de 12 V – 1 AH ou mais
5. Uma mini bomba d’água submersível
Diagrama de circuito
Conforme mostrado no diagrama acima, este circuito requer apenas alguns componentes. Os principais incluem a placa Arduino NANO, um sensor de umidade do solo, uma mini bomba d'água e a bateria.
Agora, é assim que funciona…
- O sensor de umidade fornece saída de tensão analógica, portanto, deve ser conectado aos pinos de entrada analógica A0 e A1 do Arduino – que recebem alimentação de 5V Vcc da placa.
- O relé é usado para ligar/desligar a bomba de água. Está conectado entre o terminal “NO” (normalmente aberto) e o terra do circuito.
- O Arduino aciona o relé através do transistor NPN BC547. O pino digital D2 do Arduino é usado para ligar/desligar o relé usando o transistor. (O transistor está conectado na configuração do switch.)
- O relé e a bomba d'água operam a 12 V, que é fornecido pela bateria.
- A bateria também fornece o pino VIN de 12 V do Arduino.
Nota: apenas dois sensores são mostrados no diagrama, mas é possível conectar oito sensores a oito pinos de entrada analógica do Arduino (A0 – A7).
Operação do circuito
O funcionamento do circuito é bastante simples: quando o solo começa a secar, o sensor irá enviar para a placa Arduino, que liga a bomba d'água. Assim que o solo estiver adequadamente regado, o Arduino desliga a bomba d'água. É isso.
- O sensor de umidade do solo tem resistência variável. Isso significa que sua resistência varia de acordo com as mudanças de condutividade entre as duas hastes do sensor. Quando essas hastes são inseridas no solo, sua condutividade muda de acordo com o teor de umidade do solo. Se o solo estiver seco, a condutividade é menor (e a resistência é alta). Por outro lado, se o solo estiver bastante úmido, a condutividade é alta (e a resistência é baixa). Assim, a resistência do sensor muda de alta para baixa, ou de “máx” para “mín”, conforme a umidade do solo (uma proporcionalidade inversa). Esta mudança na resistência é convertida em uma saída de tensão analógica e à medida que a umidade do solo aumenta, a tensão de saída analógica diminui e vice-versa.
- A tensão de saída do sensor é fornecida ao Arduino como uma entrada analógica. A placa Arduino irá então convertê-lo em um valor digital e medir o nível de umidade do solo (de 0 a 100%).
- Se o nível de umidade for menor que o nível limite definido (digamos, 10 ou 20%), ele ligará o relé através do transistor, ligando a bomba.
- À medida que a bomba flui, o solo começa a umedecer. O Arduino lerá continuamente o nível de umidade do solo em ambos os sensores.
- Quando um nível de umidade definido é atingido (digamos, 90 ou 95%) em ambas as hastes do sensor, o Arduino DESLIGA o relé, que desliga a bomba.
- Este ciclo é contínuo, então a planta é regada quando o solo fica seco.
Para este projeto, usei apenas dois sensores. Mas pode-se usar no máximo oito em vasos de plantas diferentes.
O funcionamento deste circuito funciona porque o programa é baixado (ou embutido) no microcontrolador do Arduino.
Aqui está o programa Arduino C, que é escrito e compilado no software Arduino IDE.
Programa de software
#define sen1 A0
#define sen2 A1
int led1=3,led2=4,led3=5, bomba_rly=2;
configuração nula
{
// coloque seu código de configuração aqui, para executar uma vez:
pinMode(led1,SAÍDA);
pinMode(led2,SAÍDA);
pinMode(led3,SAÍDA);
pinMode(bomba_rly,SAÍDA);
digitalWrite(led1,BAIXO);
digitalWrite(led2,BAIXO);
digitalWrite(led3,BAIXO);
digitalWrite(bomba_rly,BAIXO);
Serial.begin(9600);
Serial.println(“sistema de irrigação automática usando arduino”);
}
loop vazio
{
//coloque seu código principal aqui, para executar repetidamente:
int sen1_value, sen2_value,soil_moisture_level_1,soil_moisture_level_2;
sen1_valor = analogRead(sen1);
sen2_valor = analogRead(sen2);
solo_moisture_level_1 = mapa(sen1_value,200,1020,100,1);
solo_moisture_level_2 = mapa(sen2_value,200,1020,100,1);
Serial.print(“Nível de umidade do solo no POT 1: “);
Serial.print(soil_moisture_level_1);
Serial.println('%');
Serial.print(“Nível de umidade do solo no POT 2: “);
Serial.print(soil_moisture_level_2);
Serial.println('%');
if(soil_moisture_level_1<10)
{
digitalWrite(led1,ALTO);
Serial.println(“o nível de umidade no POT 1 é baixo”);
}
senão if(soil_moisture_level_1>90)
{
digitalWrite(led1,BAIXO);
Serial.println(“nível de umidade no POT 1 é adequado”);
}
if(soil_moisture_level_2<10)
{
digitalWrite(led2,ALTO);
Serial.println(“o nível de umidade no POT 2 é baixo”);
}
senão if(soil_moisture_level_2>90)
{
digitalWrite(led2,BAIXO);
Serial.println(“nível de umidade no POT 2 é adequado”);
}
/* if(sen3_valor>500)
{
digitalWrite(led3,ALTO);
Serial.println(“o nível de umidade no POT 3 é baixo”);
}
senão if(sen3_valor<50)
{
digitalWrite(led3,BAIXO);
Serial.println(“nível de umidade no POT 3 é adequado”);
}*/
if((nível_de_umidade_do_solo_1<10) (nível_de_umidade_do_solo_2<10))
{
Serial.println(“BOMBA LIGADA”);
digitalWrite(bomba_rly,ALTO);
}
if((nível_de_umidade_do_solo_1>94) && (nível_de_umidade_do_solo_2>94))
{
Serial.println(“BOMBA DESLIGADA”);
digitalWrite(bomba_rly,BAIXO);
}
atraso(3000);
}
(tagsParaTraduzir)Arduino