domingo, 4 de setembro de 2016

IRRIGAÇÃO ARDUÍNO (ELETRÓLISE)

 Caso você não tenha acessado o material anterior, ele pode ser visualizado por este link.

 Dando sequência ao assunto sobre irrigação iremos falar sobre hidrólise, este fenômeno ocorre toda vez em que se alimenta o sensor quando ele está  em contato com o solo úmido, ocasionando em corrosão do mesmo. Uma forma para reduzir esta corrosão do sensor é liga-lo somente em horários pré definidos para a leitura de dados, usando para isso um relógio de tempo real (RTC), este componente funciona como o relógio do computador, mesmo que a alimentação do Arduíno seja desligada o horário permanece gravado. O Arduíno ira verificar se a hora atual é a mesma da programação, caso seja irá realizar a irrigação das plantas.
 Será necessário colocar um horário para ligar o sensor e um horário para desligar o sensor, caso a umidade esteja abaixo da necessária a válvula solenoide irá ser acionada e efetuará a irrigação, caso a umidade esteja acima, a válvula continuará desligada mesmo com o sensor ligado.    



Funcionamento



O Arduíno irá verificar a hora, caso seja a hora pré programada a porta 7 irá ser acionada, ligando o sensor.
 O sensor sendo ligado ele verificará se à umidade é maior que 700 através da porta analógica A0, caso seja o solenoide que está ligado ao pino 13 continuará desligado, no entanto se a umidade for menor que 700 o pino 13 irá acionar a solenoide e as plantas serão irrigadas.
 O vídeo abaixo tem mais informações sobre a montagem.






 Uma das formas de ligação do RTC é vista no desenho abaixo, o Arduíno utilizado tem duas portas especificas para os pinos SCL e SDA.



Fonte: http://blog.filipeflop.com/wp-content/uploads/2014/06/Circuito_DS1307_Serial_Monitor1-630x287.png


 Para se utilizar o RTC é necessário a utilização de uma biblioteca que pode ser baixada neste link.


 O código fonte está disponibilizado logo abaixo, recomendamos acompanhar à matéria anterior neste link.


#include <Wire.h>
#include "RTClib.h"
int umidade;
RTC_DS1307 rtc;

void setup () {
pinMode(13,OUTPUT);
pinMode(7,OUTPUT);

digitalWrite(13,LOW);// Desliga o solenóide
   digitalWrite(7,LOW); // Desliga o sensor

 
    Serial.begin(9600);
 
   #ifdef AVR
      Wire.begin();
      #else
      Wire1.begin();
      #endif

  rtc.begin();


  if (! rtc.isrunning()) {
     Serial.println("RTC is NOT running!");
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
 
   ///Serial.print("inicializaçao");
        }
  }

void loop () {

 umidade = analogRead(A0);
 
   DateTime now = rtc.now();
 
    Serial.print(now.hour()); // Mostra a hora
    Serial.print(":");        // mostra separação da hora
    Serial.println(now.minute(),DEC);//mostra os minutos
  //Serial.println(now.year(), DEC); // Mostra anos

 Serial.println(umidade); //Mostra o valor da umidade

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
       
          //Verifica se está no horário do acionamento

if (( now.hour()==(23)and ( now.minute()==(28)))){


  Serial.println("Ligado");


    digitalWrite(7,HIGH); // Liga pino 7 para acionar o sensor

     if (umidade > 700){  //Se a umidade for maior que 700 desliga o solenoide
   
      digitalWrite(13,LOW);// Desliga o pino 13 do solenoide
   
      }

  else{
    digitalWrite(13,HIGH);  //Caso o valor esteja abaixo de 700 liga o pino 13 do solenoide
 
  }}

              //Desliga a acionamento na parte da manha

if (( now.hour()==(23)and ( now.minute()>=(29)))){

  Serial.println("Desligado");
    digitalWrite(7,LOW);  //Desliga o pino 7
    digitalWrite(13,LOW); //Desliga pino 13
 
}


   
   delay(1000);


   }

Abaixo podemos ver o esquema de ligação completo, a alimentação da válvula solenoide esta separada do Arduíno, nota, a foi utilizado uma bateria nesse esquema, mas a válvula pode funcionar na rede elétrica ( 127V) também.





Caso tenha dificuldades em fazer o modulo relé você pode encontrar mais informações nesse vídeo.




A figura abaixo mostra o esquema de ligação utilizando um módulo relé comercial encontrado a venda na internet, um detalhe ao utilizar estes tipos de módulos é a inversão nas linhas onde aciona o relé, onde for LOW deve se utilizar HIGH e vise versa.

    digitalWrite(13,HIGH);   Passa a ser digitalWrite(13,LOW);
    digitalWrite(13,LOW);    Passa a ser digitalWrite(13,HIGH);






Obrigado.