Projeto Irrigador automático para hortas e jardins.(Parte 1 - Monitorando umidade da planta e selecionando variáveis).
Autor: Odilon Almeida | Publicado: 2014-12-27T18:17:00-08:00

Olá, esse projeto tem por finalidade criar um sistema que possa monitorar e controlar a irrigação de uma pequena horta. A ideia básica é utilizar o Arduino para colher informações sobre o estado da umidade do solo e com isso irrigar-lo se necessário.
De início pensei nas variáveis que preciso monitorar, ex: temperatura, umidade, nível de água ... Porem decidir partir para a prática e por logo algo para funcionar e depois incrementar o projeto de acordo com as necessidades. Pensando dessa forma criei um código para o Arduino que lê um sinal pela porta analógica A0, sinal esse que varia entre 0 e 5V, utilizando "sensores", (fios de cobre fincados no solo), consegui monitorar a umidade presente no vazo da planta, sendo que, níveis de tensão próximos a 0V indicam que a planta necessita de água, logicamente níveis próximos a 5V indicam que o solo está molhado. Utilizei 2 LEDs, um vermelho que indica o estado "solo seco", e o verde indica o estado "solo molhado". Utilizei também a comunicação serial para um melhor monitoramento do estado do solo.
Logo abaixo o esquema elétrico do projeto feito com o Fritzing.



&nbsp;os fios cinza e roxo são os sensores que ficam fincados no solo dentro do vazo da planta.







Código utilizado para as primeiras experiências:

int sensorUmidade = 0;&nbsp;
int led1 = 2 ;&nbsp;
int led2 = 3;
int valor = 0; // Essa variável armazenará a leitura do sensor

void setup() {
&nbsp; Serial.begin(9600);
&nbsp; pinMode(led1, OUTPUT);
&nbsp; pinMode(led2, OUTPUT);










































}

void loop() {
&nbsp; valor = analogRead(sensorUmidade); //Armazena os valores obtidos pelo sensor na variável "valor"
&nbsp; Serial.println(valor); //Escreve na serial as leituras obtidas que vão de 0 a 1023
&nbsp; if(valor &lt;= 500){ // Compara as leitura, se for menor ou igual a 500, faz o que se pedo no bloco abaixo ...
&nbsp; &nbsp; Serial.println("Solo seco");
&nbsp; &nbsp; digitalWrite(led1, HIGH);
&nbsp; &nbsp; digitalWrite(led2, LOW);&nbsp;
&nbsp; }
&nbsp; else if(valor &gt;= 501){ // compara as leitura, se for maior ou igual a 501, faz o que se pedo no bloco abaixo...
&nbsp; &nbsp; Serial.println("Solo molhado");
&nbsp; &nbsp; digitalWrite(led1, LOW);
&nbsp; &nbsp; digitalWrite(led2, HIGH);
&nbsp; }
&nbsp; else{
&nbsp; &nbsp; digitalWrite(led1, LOW); //caso contrario, mantem os leds apagados.
&nbsp; &nbsp; digitalWrite(led2, LOW);
&nbsp; } &nbsp;
&nbsp; delay(500);
}

O código é relativamente simples, e com ele pude observar o monitoramento da variável umidade pelo Arduino.&nbsp;
Utilizei como "cobaia" um pezinho de alecrim que cultivo aqui em casa e tudo funcionou como esperado.














Monitor serial do Arduino exibindo os valores das leituras.&nbsp;



Bom, por enquanto é isso. Agora vou estudar como ampliar a leitura das variáveis e como de fato irrigar de uma maneira eficiente e segura para que ela não morra por falta d'água e para que não aja desperdícios.



Até o próximo post.



Referencias:



http://playground.arduino.cc/Portugues/LearningAnalogInput

http://arduinobymyself.blogspot.com.br/2013/09/sistema-de-irrigacao.html