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.
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.
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.
digitalWrite(13,HIGH); Passa a ser digitalWrite(13,LOW);
digitalWrite(13,LOW); Passa a ser digitalWrite(13,HIGH);
Obrigado.
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,LOW); Passa a ser digitalWrite(13,HIGH);
Obrigado.