| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Get control of your email attachments. Connect all your Gmail accounts and in less than 2 minutes, Dokkio will automatically organize your file attachments. You can also connect Dokkio to Drive, Dropbox, and Slack. Sign up for free.

View
 

Arduíno Irrigation System

Page history last edited by andredasilvavidal 4 years, 4 months ago

Arduino Irrigation System

Itens necessários:

1 Arduino Uno

2 Um ou mais sensores de umidade de solo (higrometro)
http://produto.mercadolivre.com.br/MLB-713434924-sensor-de-umidade-do-solo-higrmetro-_JM

3 Um Relay 5v para Arduino
http://produto.mercadolivre.com.br/MLB-714228857-modulo-rele-relay-um-cana-5v-pra-arduinocodigo-estoque-sp-_JM

4 Uma valvula solenoide normalmente fechada 110v
http://produto.mercadolivre.com.br/MLB-680762297-valvula-solenoide-simples-entrada-de-agua-110220v-csuporte-_JM

5 Conexão com a rede de agua

6 Canos ou mangueias para irrigar

Funcionamento

    Esse é um sistema automático de irrigamento, que liga a saída de água de acordo com a taxa de umidade detectada na terra, garantindo a quantidade exata desejada durante todo o dia.

    O arduino recebe as informações do sensor de umidade e, caso detecte que a umidade esta abaixo de um determinado nível, aciona o relay por alguns segundos (ou minutos), que por sua vez liga a válvula solenoide liberando a saída de água.

    O desligamento é feito quando se atinge a taxa de umidade desejável ou após um determinado período (caso o sensor falhe).

 

Ligações

 

 

Somente duas portas do arduino são utilizadas no projeto, uma porta digital para controlar o relay e outra porta analógica receber valores do sensor de umidade.

 

O relay possui dois lados, no lado um, com as marcações S + - é o lado a ser controlado pelo arduino. O S significa signal, e recebe os dados da porta digital do arduino.

 

Do outro lado do relay existem as marcações NC, NO e C, que significam Normally closed, Normally Opened e Common. Para o nosso sistema de irrigação utilizaremos o relay na função Normally Closed. Isso significa que a corrente só passara pelo relay caso o arduino a acione. Isso evita desperdício de energia.

 

O relay nada mais é do que um interruptor controlado pelo arduino.

 

 

Código 1

 

int umidade = 0; //Variavel

int umid_minima = 300; //Esta variavel deve ser testada para determinar o nivel de umidade desejado

int tempo_irrigacao = 5000; //Tempo em que a valvula ficara ligada em milesimos de segundos, precisa testar

void setup()

{

Serial.begin(9600); //Inicia o monitoramento da Serial

pinMode(6, OUTPUT);

}

 

void loop()

{

Serial.print("A umidade agora e "); //Escreve a umidade na Serial

Serial.println(analogRead(A0));

if(analogRead(A0)<=umid_minima) //Condicional que testa a umidade do sistema

{

digitalWrite(6, HIGH); //Liga a valvula e inicia a irrigacao

delay(tempo_irrigacao); //Tempo de espera para desligar a irrigacao

digitalWrite(6, LOW); //Desliga a valvula

}

delay(60000); //Tempo entre cada teste de umidade

}

 

Nesse código o arduino vai testar a umidade do solo a cada 1 minuto (60000) e com base nisso irá irrigar o solo por 5 segundos, caso a umidade esteja a baixo de 300. Todos os valores devem ser testados para evitar que o solo fique seco demais ou encharcado.

 

Se o tempo de irrigação for muito alto, a quantidade de agua pode ser maior do que a necessária. O ideal é que a irrigação seja feita em pequenas etapas.

 

 

Código 2

 

int umidade = 0; //Variavel

int umid_minima = 300; //Esta variavel deve ser testada para determinar o nivel de umidade desejado

int umid_maxima = 500;

void setup()

{

Serial.begin(9600); //Inicia o monitoramento da Serial

pinMode(6, OUTPUT);

}

 

void loop()

{

Serial.print("A umidade agora e "); //Escreve a umidade na Serial

Serial.println(analogRead(A0));

if(analogRead(A0)<=umid_minima) //Condicional que testa a umidade do sistema

{

while(analogRead(A0)<umid_maxima)

{

digitalWrite(6, HIGH); //Liga a valvula e inicia a irrigacao

}

digitalWrite(6, LOW); //Desliga a valvula

}

delay(60000); //Tempo entre cada teste de umidade

}

 

Nesse código a irrigação não depende do tempo estipulado mas do nível de umidade medido. Quando o Arduino detecta que a umidade está muito baixa, ele inicia a irrigação até que o o sensor detecte o valor máximo estipulado pela variável umid_maxima.

 

Aviso: caso ocorra algum erro de medição de umidade máxima, a válvula não será desligada e a terra ficara encharcada.

Comments (0)

You don't have permission to comment on this page.