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

  • Browse and search Google Drive and Gmail attachments (plus Dropbox and Slack files) with a unified tool for working with your cloud files. Try Dokkio (from the makers of PBworks) for free. Now available on the web, Mac, Windows, and as a Chrome extension!

View
 

Arduíno Irrigation System

Page history last edited by andredasilvavidal 5 years, 5 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.