#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
#include <virtuabotixRTC.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include "EmonLib.h"
#include <avr/eeprom.h>
#include "DHT.h"
#include "SIM900.h"
#include <SoftwareSerial.h>
//Carrega a biblioteca SMS
#include "sms.h"
#include "call.h"
CallGSM call;
SMSGSM sms;
boolean started = false;
char smsbuffer[160];
char n[20];
boolean estado = LOW;
char numero[20] = "031991555945";
char mensagem[30] = "Comando Feito";
char mensagemq1l[30] = "Lampada Quarto1 ligada";
char mensagemq1d[30] = "Lampada Quarto1 Desligada";
char mensagemq2l[30] = "Lampada Quarto2 ligada";
char mensagemq2d[30] = "Lampada Quarto2 Desligada";
char mensagembl[30] = "Lampada Banheiro ligada";
char mensagembd[30] = "Lampada Banheiro Desligada";
char mensagemsl[30] = "Lampada Sala ligada";
char mensagemsd[30] = "Lampada Sala Desligada";
char mensagemcl[30] = "Lampada Cozinha ligada";
char mensagemcd[30] = "Lampada Cozinha Desligada";
char mensagemal[30] = "Lampada Area ligada";
char mensagemad[30] = "Lampada Area Desligada";
String msg_esperadaativalig("Ativaliga");
String msg_esperadadesativalig("Desativaliga");
String msg_esperadaativasms("Ativasms");
String msg_esperadadesativasms("Desativasms");
String msg_esperadaq1l("Quarto1 liga");
String msg_esperadaq1d("Quarto1 desliga");
String msg_esperadaq2l("Quarto2 liga");
String msg_esperadaq2d("Quarto2 desliga");
String msg_esperadabl("Banheiro liga");
String msg_esperadabd("Banheiro desliga");
String msg_esperadasll("Sala liga");
String msg_esperadasld("Sala desliga");
String msg_esperadacl("Cozinha liga");
String msg_esperadacd("Cozinha desliga");
String msg_esperadaal("Area liga");
String msg_esperadaad("Area desliga");
String msg_esperadatemp("T");
#define DHTPIN A4 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
#define eeprom_read_to(dst_p, eeprom_field, dst_size) eeprom_read_block(dst_p, (void *)offsetof(__eeprom_data, eeprom_field), MIN(dst_size, sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_read(dst, eeprom_field) eeprom_read_to(&dst, eeprom_field, sizeof(dst))
#define eeprom_write_from(src_p, eeprom_field, src_size) eeprom_write_block(src_p, (void *)offsetof(__eeprom_data, eeprom_field), MIN(src_size, sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_write(src, eeprom_field) { typeof(src) x = src; eeprom_write_from(&x, eeprom_field, sizeof(x)); }
#define MIN(x,y) ( x > y ? y : x )
EnergyMonitor emon1;
virtuabotixRTC myRTC(A8, A9, A10);
#define pinSensor 4
struct __eeprom_data {
double flash_kwhtotal;};
LiquidCrystal_I2C lcd(0x27,20,4); //Define endereço e número de colunas e linhas do LCD
#define ventplc 32 // ventilador PLC
#define blq2 22 // botão lamp. quarto 2
#define lq2 23 // lampada do quarto 2
#define lb2 24 // lampada do botão quarto 2
#define blq3 25 // botão lamp. quarto3
#define lq3 26 // lampada do quarto 3
#define lb3 27 // lampada quarto 3
#define blsl 28 // botão lamp. sala
#define lsl 29 // lampada da sala
#define lbsl 30 // lampada botão da sala
#define blb 31 // botão lamp. banheiro
#define lb 32 // lampada botão banheiro
#define lbb 33 // lampada banheiro
#define blc 34 // botão lamp. cozinha
#define lc 35 // lampada botão cozinha
#define lbc 36 // lampada cozinha
#define bla 37 // botão lamp. área
#define la 38 // lampada botão área
#define lba 39 // lampada área
#define bma 40 // botão menu avança
#define bmv 41 // botão menu volta
#define bme 42 // botao menu enter
int value =-1;
int pinoSensorquarto2 = 0;
byte valorLidoquarto2 = 0;
float temperaturaquarto2 = 0;
unsigned int contquarto2 = 0;
unsigned int automaticoquarto2 = 0;
unsigned int automaticoquarto3 = 0;
unsigned int automaticosala = 0;
int segq2 =0;
String estadolquarto2 = " Desligada";
String estadoquarto2 = " MANUAL " ;
String estadolquarto3 = " Desligada";
String estadoquarto3 = " MANUAL " ;
String estadolsala = " Desligada";
String estadosala = " MANUAL " ;
String estadolbanheiro = " Desligada";
String estadosbanheiro = " MANUAL " ;
String estadolcozinha = " Desligada";
String estadocozinha = " MANUAL " ;
String estadolarea = " Desligada";
String estadoarea = " MANUAL " ;
int q2tdesejado = 10;
String estadotquarto2 ;
int sensorq2 = 2;
int val = 0;
int outputValue;
int pulsobotao = 0; // variavel quarto casal
int pulsobotao1 = 0;// variavel quarto solteiro
int pulsobotao2 = 0;// variavel sala
int pulsobotao3 = 0;// variavel banheiro
int pulsobotao4 = 0;// variavel cozinha
int pulsobotao5 = 0;// variavel area
int segq2at =0;
int escq2 = 0 ;// variavel quarto casal
int escq3 = 0 ;// variavel quarto solteiro
int escq4 = 0 ;// variavel sala
int escq5 = 0 ;// variavel banheiro
int escq6 = 0 ;// variavel cozinha
int escq7 = 0 ;// variavel area
int acertohora = 0 ; // habilita acerto horas
int segq2p;
String estadocooler = "Desligado em Manual";
int analogPin = 5;
int valAnalog;
int temperatura;
int trava = 0 ;// variavel quarto casal
int trava1 =0; // variavel quarto solteiro
int trava2 =0; // variavel sala
int trava3 =0; // variavel banheiro
int trava4 =0; // variavel cozinha
int trava5 =0; // variavel area
int travama =0;
int travamr =0;
int travame =0;
int trava10; // trava do controle
int trava11; // trava do controle
int trava12; // trava do controle
int trava13; // trava do controle
int trava14; // trava do controle
int trava15; // trava do controle
int acertohoras = 0 ; // em "0"desativa o acerto de horas
int xseg = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xmin = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xhor = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xsemana = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xdia = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xmes = 0; // variavel guarda o valor que irá igualar com acerto de horas
int xano = 2016 ; // variavel guarda o valor que irá igualar com acerto de horas
int menu40 = 0; // variavel guarda o valor que irá igualar com acerto de horas
int menu = 0; // variavel guarda o valor que irá igualar com acerto de horas
int hlld = 17 ;
int mlld = 0 ;
int hdld = 7 ;
int mdld = 0 ;
int ajustaled = 0; // variável para entra no menu ajustar led
String estadom = "Desligar";
String Rede = "OnLine";
int hlqc = 0;
int mlqc = 0;
int hdqc = 0;
int mdqc = 0;
int onqc = 0;
String onoffqc ="OFF" ;
int hlqs = 0;
int mlqs = 0;
int hdqs = 0;
int mdqs = 0;
int onqs = 0;
String onoffqs ="OFF" ;
int hlb = 00;
int mlb = 00;
int hdb = 00;
int mdb = 00;
int onb = 0;
String onoffb ="OFF" ;
int hlcz = 00;
int mlcz = 00;
int hdcz = 00;
int mdcz = 00;
int oncz = 0;
String onoffcz ="OFF" ;
int hlsl= 00;
int mlsl = 00;
int hdsl = 00;
int mdsl = 00;
int onsl = 0;
String onoffsl ="OFF" ;
int hla = 00;
int mla = 00;
int hda = 00;
int mda = 00;
int ona = 0;
String onoffa ="OFF" ;
String Ajuste ="Ajustar" ;
int menuenter = 0;
int menu91 =0;
int menu92= 0;
int menu93= 0;
int menu94= 0;
int menu95= 0;
int menu101 =0;
int menu102= 0;
int menu103= 0;
int menu104= 0;
int menu105= 0;
int menu111 =0;
int menu112= 0;
int menu113= 0;
int menu114= 0;
int menu115= 0;
int menu121 =0;
int menu122= 0;
int menu123= 0;
int menu124= 0;
int menu125= 0;
int menu131 =0;
int menu132= 0;
int menu133= 0;
int menu134= 0;
int menu135= 0;
int menu141 =0;
int menu142= 0;
int menu143= 0;
int menu144= 0;
int menu145= 0;
int ativalig=0;
int ativasms=1;
//Tensao da rede eletrica
int rede = 110.0;
//Pino do sensor SCT
int pino_sct = A1;
// Ativa led time
int ledtime = 0;
int ledtimea = 1; // define led time irá acender ou não pelo relógio
//Cria variaveis globais
double kwhTotal;
double kwhTotal_Acc;
double vlreais;
double vlreais_Acc;
double realPower;
double pot;
unsigned long ltmillis, tmillis, timems, previousMillis, refresh;
char charBuf[30];
void setup() {
Serial.begin(9600); // habilita a leitura serial
//myRTC.setDS1302Time(00, 16, 15, 7, 02, 04, 2016);
emon1.current(pino_sct, 12); //Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29.
eeprom_read(kwhTotal, flash_kwhtotal);
previousMillis = millis();
mySwitch.enableReceive(0);
//Inicializa a serial
Serial.print("Ligando shield GSM SIM900. ");
//liga_desliga_GSMShield();
//Comunicacao com o Shield GSM a 2400 bauds
/*
if (gsm.begin(2400))
{
Serial.println("nstatus=READY");
started = true;
}
else Serial.println("nstatus=IDLE");
*/
pinMode(ventplc,OUTPUT); // saida do cooleer
pinMode(lb2, OUTPUT); // lampada botão quarto casal
pinMode(lq2, OUTPUT); // lampada quarto casal
pinMode(blq2,INPUT); // botão quarto casal
pinMode(lb3, OUTPUT); // lampada botão quarto solteiro
pinMode(lq3, OUTPUT); // lampada quarto solteiro
pinMode(blq3,INPUT); // botão quarto solteito
pinMode(lbsl, OUTPUT); // lampada botão sala
pinMode(lsl, OUTPUT); // lampada sala
pinMode(blsl, INPUT) ; // botão sala
pinMode(lbb,OUTPUT); // lampada botão banheiro
pinMode(lb, OUTPUT); // lampada banheiro
pinMode(blb,INPUT) ; // botão banheiro
pinMode(lbc, OUTPUT); // lampada botão cozinha
pinMode(lc, OUTPUT); // lampada cozinha
pinMode(blc, INPUT); // botão cozinha
pinMode(lba, OUTPUT); // lampada botão area
pinMode(la, OUTPUT); // lampada area
pinMode(bla, INPUT); // botão area
pinMode(bma, INPUT); // botão menu AVANÇA
pinMode(bmv, INPUT); // botão menu VOLTA
pinMode(bme, INPUT); // botão menu ENTER
dht.begin();
digitalWrite(blq2,1); // define entrada botão lâmpada do quarto casal senpre em 0
digitalWrite(blq3,1); // define entrada botão lâmpada do quarto solteiro senpre em 0
digitalWrite(blsl,1); // define entrada botão lâmpada da sala senpre em 0
digitalWrite(blb,1); // define entrada botão lâmpada do banheiro senpre em 0
digitalWrite(blc,1); // define entrada botão lâmpada da cozinha senpre em 0
digitalWrite(bla,1); // define entrada botão lâmpada da area senpre em 0
digitalWrite(bma,1); // define entrada botão lâmpada do banheiro senpre em 0
digitalWrite(bmv,1); // define entrada botão lâmpada da cozinha senpre em 0
digitalWrite(bme,1); // define entrada botão lâmpada da area senpre em 0
digitalWrite(bma,1); // define entrada botão lâmpada do banheiro senpre em 0
digitalWrite(bmv,1); // define entrada botão lâmpada da cozinha senpre em 0
digitalWrite(bme,1); // define entrada botão lâmpada da area senpre em 0
// inicio gsm
lcd.init();
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Projeto ");
lcd.setCursor(0,1);
lcd.print("Automacao Residencial ");
delay(1000);
lcd.clear();
eeprom_read(kwhTotal, flash_kwhtotal);
previousMillis = millis();
} // end setup()
void loop()
{
quarto2(); // rotina quarto casal.
quarto3(); // rotina quarto solteiro.
sala1(); // rotina sala.
banheiro(); // rotina banheiro.
cozinha(); // rotina cozinha.
area(); // rotina sala.
relogio(); // relogio da CPU
ajustehora(); // ajustar horas
botaomenu() ; // logica botão menu
atualisaestado(); // atualisa estado do menu
automatico();
timeled() ; // rotina do led dos interruptores desligarem no horario selecionado
float h = dht.readHumidity();
float t = dht.readTemperature();
// =====================================================================================================
//início gsm Código
/*
if (started)
{
//Aguarda SMS
if (gsm.readSMS(smsbuffer, 160, n, 20))
{
String msg_recebida(smsbuffer);
msg_recebida.trim();
msg_esperadaativalig.trim();
msg_esperadadesativalig.trim();
msg_esperadaativasms.trim();
msg_esperadadesativasms.trim();
msg_esperadaq1l.trim();
msg_esperadaq1d.trim();
msg_esperadaq2l.trim();
msg_esperadaq2d.trim();
msg_esperadabl.trim();
msg_esperadabd.trim();
msg_esperadasll.trim();
msg_esperadasld.trim();
msg_esperadacl.trim();
msg_esperadacd.trim();
msg_esperadaal.trim();
msg_esperadaad.trim();
// inico quarto 1
if (msg_recebida == msg_esperadatemp)
{
char mensagemtemp[22] = "ss";
sms.SendSMS(numero,mensagemtemp);
}
if (msg_recebida == msg_esperadaativalig)
{
ativalig = 1 ;
sms.SendSMS(numero, mensagem);
}
if (msg_recebida == msg_esperadadesativalig)
{
ativalig =0 ;
sms.SendSMS(numero, mensagem);
}
if (msg_recebida == msg_esperadaativasms)
{
ativasms =1 ;
sms.SendSMS(numero, mensagem);
}
if (msg_recebida == msg_esperadadesativasms)
{
ativasms =0 ;
sms.SendSMS(numero, mensagem);
}
// inicio q1
if (msg_recebida == msg_esperadaq1l)
{
digitalWrite(lq2,1);
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemq1l);
}
}
if (msg_recebida == msg_esperadaq1d)
{
digitalWrite(lq2,0);
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemq1d);
}
}
// fim quarto1
//inicio qurto2
if (msg_recebida == msg_esperadaq2l)
{
digitalWrite(lq3,1);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemq2l);
}
}
if (msg_recebida == msg_esperadaq2d)
{
digitalWrite(lq3,0);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemq2d);
}
}
// fim quarto2
//inicio banheiro
if (msg_recebida == msg_esperadabl)
{
digitalWrite(lb,1);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagembl);
}
}
if (msg_recebida == msg_esperadabd)
{
digitalWrite(lb,0);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagembd);
}
}
// fim banheiro
//inicio sala
if (msg_recebida == msg_esperadasll)
{
digitalWrite(lsl,1);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemsl);
}
}
if (msg_recebida == msg_esperadasld)
{
digitalWrite(lsl,0);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemsd);
}
}
// fim sala
//inicio cozinha
if (msg_recebida == msg_esperadacl)
{
digitalWrite(lc,1);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemcl);
}
}
if (msg_recebida == msg_esperadacd)
{
digitalWrite(lc,0);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemcd);
}
}
// fim cozinha
//inicio area
if (msg_recebida == msg_esperadaal)
{
digitalWrite(la,1);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemal);
}
}
if (msg_recebida ==msg_esperadaad)
{
digitalWrite(la,0);
// ligação ou sms
if( ativalig == 1){
call.Call("031991555945");
delay(10000);
call.HangUp();
}
if( ativasms == 1){
sms.SendSMS(numero, mensagemad);
}
}
// fim area
}
}
//fim gsm Código
// =====================================================================================================
*/
// inicia calculo potencia
// Calcula quantidade de tempo desde a última measurment realpower.
ltmillis = tmillis;
tmillis = millis();
timems = tmillis - ltmillis;
double Irms = emon1.calcIrms(1480); // Calculate Irms
// Calcular o número de hoje de kWh consumido.
kwhTotal = (((Irms*127.0)/1000.0) * 1.0/3600.0 * (timems/1000.0));
kwhTotal_Acc = kwhTotal_Acc + kwhTotal;
vlreais = kwhTotal * 0.87012117;
vlreais_Acc = vlreais_Acc + vlreais;
//grava na memoria a cada 1 minuto
if ((millis() - refresh)>= 100)
refresh = millis(); //actualiza a contagem.
{
//Serial.println("Gravando na EEprom");
eeprom_write(kwhTotal, flash_kwhtotal);
previousMillis=millis();
}
if ( menu == 0)
{
acertohoras = 0;
myRTC.updateTime();
imprime_dia_da_semana(myRTC.dayofweek);
lcd.setCursor(0,1);
lcd.print("Data :");
// Chama a rotina que imprime o dia da semana
lcd.print(" ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.setCursor(0,2);
lcd.print("Hora :");
// Adiciona um 0 caso o valor da hora seja <10
if (myRTC.hours < 10)
{
lcd.print("0");
}
lcd.print(myRTC.hours);
lcd.print(":");
// Adiciona um 0 caso o valor dos minutos seja <10
if (myRTC.minutes < 10)
{
lcd.print("0");
}
lcd.print(myRTC.minutes);
lcd.print(":");
// Adiciona um 0 caso o valor dos segundos seja <10
if (myRTC.seconds < 10)
{
lcd.print("0");
}
lcd.println(myRTC.seconds);
lcd.setCursor(0,3);
lcd.print("T: ");
lcd.print(t);
lcd.print("*C");
lcd.print("H: ");
lcd.print(h);
lcd.print("%");
}
if ( menu == 1)
{
lcd.setCursor(12,1);
lcd.print(" ");
lcd.setCursor(12,2);
lcd.print(" ");
lcd.setCursor(12,3);
lcd.print(" ");
lcd.setCursor(0,0);
lcd.print("Gerencia de Energia");
lcd.setCursor(0,1);
lcd.print("Potencia(W) ");
lcd.print(Irms * rede);
lcd.setCursor(0,2);
lcd.print("Corrente(A) ");
lcd.print(Irms);
lcd.setCursor(0,3);
lcd.print("Consumo R$ ");
lcd.print(vlreais_Acc,3);
}
if ( menu == 2)
{
lcd.setCursor(0,0);
lcd.print("Quarto Casal");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolquarto2);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 3)
{
lcd.setCursor(0,0);
lcd.print("Quarto Solteiro");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolquarto3);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 4)
{
lcd.setCursor(0,0);
lcd.print("Sala de Estar");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolsala);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 5)
{
lcd.setCursor(0,0);
lcd.print("Cozinha");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolcozinha);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 6)
{
lcd.setCursor(0,0);
lcd.print("Banheiro");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolbanheiro);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 7)
{
lcd.setCursor(0,0);
lcd.print("Area Servico");
lcd.setCursor(0,1);
lcd.print("Lampada");
lcd.setCursor(7,1);
lcd.print(estadolarea);
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(11,3);
lcd.print(estadom);
}
if ( menu == 8)
{
lcd.setCursor(0,0);
lcd.print("Ajustar Horas?");
lcd.setCursor(0,2);
lcd.print("Pressione ENTER");
lcd.setCursor(0,3);
lcd.print("<< >>");
lcd.setCursor(14,3);
lcd.print("ENTER");
}
if ( menu == 9)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print(" Quarto de Casal");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hlqc< 10)
{
lcd.print("0");
}
lcd.print(hlqc);
lcd.print(":");
if (mlqc< 10)
{
lcd.print("0");
}
lcd.print(mlqc);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hdqc< 10)
{
lcd.print("0");
}
lcd.print(hdqc);
lcd.print(":");
if (mdqc< 10)
{
lcd.print("0");
}
lcd.print(mdqc);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffqc);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu == 10)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print(" Quarto de Solteiro");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hlqs< 10)
{
lcd.print("0");
}
lcd.print(hlqs);
lcd.print(":");
if (mlqs< 10)
{
lcd.print("0");
}
lcd.print(mlqs);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hdqs< 10)
{
lcd.print("0");
}
lcd.print(hdqs);
lcd.print(":");
if (mdqs< 10)
{
lcd.print("0");
}
lcd.print(mdqs);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffqs);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu == 11)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print(" Banheiro");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hlb< 10)
{
lcd.print("0");
}
lcd.print(hlb);
lcd.print(":");
if (mlb< 10)
{
lcd.print("0");
}
lcd.print(mlb);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hdb< 10)
{
lcd.print("0");
}
lcd.print(hdb);
lcd.print(":");
if (mdb< 10)
{
lcd.print("0");
}
lcd.print(mdb);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffb);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu ==12)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print("Sala de Estar");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hlsl< 10)
{
lcd.print("0");
}
lcd.print(hlsl);
lcd.print(":");
if (mlsl< 10)
{
lcd.print("0");
}
lcd.print(mlsl);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hdsl< 10)
{
lcd.print("0");
}
lcd.print(hdsl);
lcd.print(":");
if (mdsl< 10)
{
lcd.print("0");
}
lcd.print(mdsl);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffsl);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu == 13)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print("Cozinha");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hlcz< 10)
{
lcd.print("0");
}
lcd.print(hlcz);
lcd.print(":");
if (mlqc< 10)
{
lcd.print("0");
}
lcd.print(mlcz);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hdcz< 10)
{
lcd.print("0");
}
lcd.print(hdcz);
lcd.print(":");
if (mdcz< 10)
{
lcd.print("0");
}
lcd.print(mdcz);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffcz);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu == 14)
{
lcd.setCursor(0,0);
lcd.print("Lig / Deslig Autom");
lcd.setCursor(0,1);
lcd.print("Area de Servico");
lcd.setCursor(0,2);
lcd.print("Lig:");
if (hla< 10)
{
lcd.print("0");
}
lcd.print(hla);
lcd.print(":");
if (mla< 10)
{
lcd.print("0");
}
lcd.print(mla);
lcd.setCursor(9,2);
lcd.print("Desl:");
if (hda< 10)
{
lcd.print("0");
}
lcd.print(hda);
lcd.print(":");
if (mda< 10)
{
lcd.print("0");
}
lcd.print(mda);
lcd.setCursor(0,3);
lcd.print("<<");
lcd.print(onoffa);
lcd.print(">>");
lcd.setCursor(13,3);
lcd.print(Ajuste);
}
if ( menu == 15)
{
lcd.setCursor(0,0);
lcd.print("Horas de Desligar LED");
lcd.setCursor(0,1);
lcd.print("HORA LIGAR:");
lcd.setCursor(12,1);
lcd.print(hlld);
lcd.setCursor(0,2);
lcd.print("HORA DESL.:");
lcd.setCursor(12,2);
lcd.print(hdld);
lcd.setCursor(0,3);
lcd.setCursor(0,3);
lcd.print("<< ");
lcd.setCursor(14,3);
lcd.print("ENTER");
}
if ( menu == 40) // pisca semana
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Semana selecionado");
}
if ( menu == 41) // pisca hora
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Hora selecionado");
}
if ( menu == 42) // pisca minuto
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Minuto selecionado");
}
if ( menu == 43) // pisca dia
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Dia selecionado");
}
if ( menu == 44) // pisca mês
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Mes selecionado");
}
if ( menu == 45) // pisca ano
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Semana: ");
lcd.print(xsemana);
lcd.setCursor(0,1);
lcd.print("Horas: ");
if (xhor< 10)
{
lcd.print("0");
}
lcd.print(xhor);
lcd.print(":");
if (xmin< 10)
{
lcd.print("0");
}
lcd.print(xmin);
lcd.setCursor(0,2);
lcd.print("Data:");
if (xdia< 10)
{
lcd.print("0");
}
lcd.print(xdia);
lcd.print("/");
if (xmes< 10)
{
lcd.print("0");
}
lcd.print(xmes);
lcd.print("/");
if (xano< 10)
{
lcd.print("0");
}
lcd.print(xano);
lcd.setCursor(0,3);
lcd.print("Ano selecionado");
}
} // finaliza rotina Loop();
void quarto2()
{
// monitor temperatura quarto2
valorLidoquarto2 = analogRead(pinoSensorquarto2);
temperaturaquarto2 = (valorLidoquarto2 * 0.00488);
temperaturaquarto2 = temperaturaquarto2 * 100;
// botão quarto
int leiturabme = digitalRead(bme);
int leiturablq2 = digitalRead(blq2); // leitura do botão
int leituralq2 = digitalRead(lq2); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 2 && travame == 0 && leiturabme == 0 && leituralq2 == 0 ){ digitalWrite(lq2,1); travame = 1 ; lcd.clear();}
if (menu == 2 && travame == 0 && leiturabme == 0 && leituralq2 == 1) { digitalWrite(lq2,0); travame = 1 ; lcd.clear();}
if (leituralq2 == 0 && ledtime == 1 ){digitalWrite(lb2,1);}
if (leituralq2 == 0 && ledtime == 0){digitalWrite(lb2,0);}
if (leituralq2 == 1){digitalWrite(lb2,0);}
if (leituralq2 == 1 && trava == 0 ){ estadolquarto2 =" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Quarto Casal");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava = 1 ;}
if (leituralq2 == 0 && trava == 1){ estadolquarto2 =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Quarto Casal");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(200);
lcd.clear();
trava = 0; }
if (leiturablq2 == 0 && pulsobotao == 0 && escq2 == 0 && leituralq2 == 0) {
automaticoquarto2 = 0;
digitalWrite(lq2,1);
escq2 = 0 ;
pulsobotao = 1; // trava o set do botão para ficar apagada
}
if ( leiturablq2 == 1) { pulsobotao = 0;}
if (leiturablq2 == 0 && pulsobotao == 0 && escq2 == 0 && leituralq2 == 1) {
automaticoquarto2 = 0;
// pisca botão
digitalWrite(lq2,0);
pulsobotao = 1;
// trava o set do botão para ficar acesa
}}
void quarto3()
{
int leiturabme = digitalRead(bme);
int leiturablq3 = digitalRead(blq3); // leitura do botão
int leituralq3 = digitalRead(lq3); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 3 && travame == 0 && leiturabme == 0 && leituralq3 == 0 ) { digitalWrite(lq3,1); travame = 1 ; lcd.clear();}
if (menu == 3 && travame == 0 && leiturabme == 0 && leituralq3 == 1) {digitalWrite(lq3,0); travame = 1 ; lcd.clear(); }
if (leituralq3 == 0 && ledtime == 1 ){digitalWrite(lb3,1);}
if (leituralq3 == 0 && ledtime == 0){digitalWrite(lb3,0);}
if (leituralq3 == 1){digitalWrite(lb3,0);}
if (leituralq3 == 1 && trava1 == 0 ){ estadolquarto3 =" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Quarto Solteiro");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava1 = 1 ;}
if (leituralq3 == 0 && trava1 == 1){ estadolquarto3 =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Quarto Solteiro");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(200);
lcd.clear();
trava1 = 0; }
if ( leiturablq3 == 1) { pulsobotao1 = 0;}
if (leiturablq3 == 0 && pulsobotao1 == 0 && escq2 == 0 && leituralq3 == 0) {
automaticoquarto2 = 0;
digitalWrite(lq3,1);
escq2 = 0 ;
pulsobotao1 = 1; // trava o set do botão para ficar apagada
}
if (leiturablq3 == 0 && pulsobotao1 == 0 && escq3 == 0 && leituralq3 == 1) {
// pisca botão
digitalWrite(lq3,0);
pulsobotao1 = 1;
// trava o set do botão para ficar acesa
// contagem em automatica
}
}
void sala1()
{
int leiturabme = digitalRead(bme);
int leiturabsl = digitalRead(blsl); // leitura do botão
int leituralsl = digitalRead(lsl); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 4 && travame == 0 && leiturabme == 0 && leituralsl == 0 ) { digitalWrite(lsl,1);travame = 1 ; lcd.clear(); }
if (menu == 4 && travame == 0 && leiturabme == 0 && leituralsl == 1) { digitalWrite(lsl,0); travame = 1 ; lcd.clear(); }
if (leituralsl == 0 && ledtime == 1 ){digitalWrite(lbsl,1);}
if (leituralsl == 0 && ledtime == 0){digitalWrite(lbsl,0);}
if (leituralsl == 1){digitalWrite(lbsl,0);}
if (leituralsl == 1 && trava2 == 0 ){ estadolsala =" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Sala Estar");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava2 = 1 ;}
if (leituralsl == 0 && trava2 == 1){ estadolsala =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Sala Estar");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(200);
lcd.clear();
trava2 = 0; }
if ( leiturabsl == 1) { pulsobotao2 = 0;}
if (leiturabsl == 0 && pulsobotao2 == 0 && escq4 == 0 && leituralsl == 0) {
automaticoquarto2 = 0;
digitalWrite(lsl,1);
escq4 = 0 ;
pulsobotao2 = 1; // trava o set do botão para ficar apagada
}
if (leiturabsl == 0 && pulsobotao2 == 0 && escq4 == 0 && leituralsl == 1) {
// pisca botão
digitalWrite(lsl,0);
pulsobotao2 = 1;
// trava o set do botão para ficar acesa
// contagem em automatica
}
}
void banheiro()
{
int leiturabme = digitalRead(bme);
int leiturabb = digitalRead(blb); // leitura do botão
int leituralb = digitalRead(lb); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 6 && travame == 0 && leiturabme == 0 && leituralb == 0 ) { digitalWrite(lb,1); travame = 1 ; lcd.clear();}
if (menu == 6 && travame == 0 && leiturabme == 0 && leituralb == 1) { digitalWrite(lb,0); travame = 1 ; lcd.clear();}
if (leituralb == 0 && ledtime == 1 ){digitalWrite(lbb,1);}
if (leituralb == 0 && ledtime == 0){digitalWrite(lbb,0);}
if (leituralb == 1){digitalWrite(lbb,0);}
if (leituralb == 1 && trava3 == 0 ){ estadolbanheiro =" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Banheiro");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava3 = 1 ;}
if (leituralb == 0 && trava3 == 1){ estadolbanheiro =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Banheiro");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(200);
lcd.clear();
trava3 = 0; }
if ( leiturabb == 1) { pulsobotao3 = 0;}
if (leiturabb == 0 && pulsobotao3 == 0 && escq5 == 0 && leituralb == 0) {
digitalWrite(lb,1);
escq5 = 0 ;
pulsobotao3 = 1; // trava o set do botão para ficar apagada
}
if (leiturabb == 0 && pulsobotao3 == 0 && escq5 == 0 && leituralb == 1) {
// pisca botão
digitalWrite(lb,0);
pulsobotao3 = 1;
// trava o set do botão para ficar acesa
// contagem em automatica
}
}
void cozinha()
{
int leiturabme = digitalRead(bme);
int leiturabc = digitalRead(blc); // leitura do botão
int leituralc = digitalRead(lc); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 5 && travame == 0 && leiturabme == 0 && leituralc == 0 ) { digitalWrite(lc,1); travame = 1 ; lcd.clear(); }
if (menu == 5 && travame == 0 && leiturabme == 0 && leituralc == 1) { digitalWrite(lc,0); travame = 1 ; lcd.clear(); }
if (leituralc == 0 && ledtime == 1){digitalWrite(lbc,1);}
if (leituralc == 0 && ledtime == 0){digitalWrite(lbc,0);}
if (leituralc == 1){digitalWrite(lbc,0);}
if (leituralc == 1 && trava4 == 0 ){ estadolcozinha=" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Cozinha");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava4 = 1 ;}
if (leituralc == 0 && trava4 == 1){ estadolcozinha =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Cozinha");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(200);
lcd.clear();
trava4 = 0; }
if ( leiturabc == 1) { pulsobotao4 = 0;}
if (leiturabc == 0 && pulsobotao4 == 0 && escq5 == 0 && leituralc == 0) {
digitalWrite(lc,1);
escq5 = 0 ;
pulsobotao4 = 1; // trava o set do botão para ficar apagada
}
if (leiturabc == 0 && pulsobotao4 == 0 && escq6 == 0 && leituralc == 1) {
// pisca botão
digitalWrite(lc,0);
pulsobotao4 = 1;
// trava o set do botão para ficar acesa
// contagem em automatica
}
}
void area()
{
int leiturabme = digitalRead(bme);
int leituraba = digitalRead(bla); // leitura do botão
int leiturala = digitalRead(la); // leitura do rele da lampada
if (leiturabme ==1) {travame = 0; }
if (menu == 7 && travame == 0 && leiturabme == 0 && leiturala == 0 ) { digitalWrite(la,1); travame = 1 ; lcd.clear(); }
if (menu == 7 && travame == 0 && leiturabme == 0 && leiturala == 1 ) { digitalWrite(la,0); travame = 1 ; lcd.clear(); }
if (leiturala == 0 && ledtime == 1 ){digitalWrite(lba,1);}
if (leiturala == 0 && ledtime == 0){digitalWrite(lba,0);}
if (leiturala == 1 ){digitalWrite(lba,0);}
if (leiturala == 1 && trava5 == 0 ){ estadolarea =" Ligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Area Servico");
lcd.setCursor(3,2);
lcd.print("Lampada Ligada");
delay(200);
lcd.clear();
trava5 = 1 ;}
if (leiturala == 0 && trava5== 1){ estadolarea =" Desligada";
lcd.clear();
lcd.setCursor(3,1);
lcd.print("Area Servico");
lcd.setCursor(3,2);
lcd.print("Lampada Desligada");
delay(700);
lcd.clear();
trava5 = 0; }
if ( leituraba == 1) { pulsobotao5 = 0;}
if (leituraba == 0 && pulsobotao5 == 0 && escq7 == 0 && leiturala == 0) {
digitalWrite(la,1);
escq7 = 0 ;
pulsobotao5 = 1; // trava o set do botão para ficar apagada
}
if (leituraba == 0 && pulsobotao5 == 0 && escq7 == 0 && leiturala == 1) {
// pisca botão
digitalWrite(la,0);
pulsobotao5 = 1;
// trava o set do botão para ficar acesa
// contagem em automatica
}
}
void relogio()
{
}
void imprime_dia_da_semana(int dia)
{
lcd.setCursor(0,0);
switch (dia)
{
case 1:
lcd.print("Domingo");
break;
case 2:
lcd.print("Segunda");
break;
case 3:
lcd.print("Terca");
break;
case 4:
lcd.print("Quarta");
break;
case 5:
lcd.print("Quinta");
break;
case 6:
lcd.print("Sexta");
break;
case 7:
lcd.print("Sabado");
break;
}
}
void ajustehora()
{
int leiturabma = digitalRead(bma);
int leiturabmr = digitalRead(bmv);
int leiturabme = digitalRead(bme);
if (acertohoras == 1){
myRTC.setDS1302Time(xseg, xmin, xhor, xsemana, xdia, xmes, xano);
// myRTC.setDS1302Time( 0, 59, 23, 6, 10, 1, 2016);
lcd.clear();
menu40 = 0 ;
lcd.clear();
lcd.setCursor(0,2);
lcd.print("Relogio Ajustado!");
delay(1000);lcd.clear();
menu = 0;
acertohoras = 0;
}
if (leiturabma ==1) {travama = 0; }
if (leiturabmr ==1) {travamr = 0; }
if (leiturabme ==1) {travame = 0; }
if (menu == 8 && leiturabme == 0 && travame == 0){ menu = 40; menu40 = 1 ; travame = 1;delay(100);lcd.clear();}
if (menu == 40 && leiturabma == 0 && xsemana <=6 ){ xsemana ++; delay(100);}
if (menu == 40 && leiturabmr == 0 && xsemana >=2){ xsemana= xsemana -1;delay(100); }
if (menu == 40 && leiturabme == 0 && travame == 0){ menu =41; travame = 1;delay(100);}
if (menu == 41 && leiturabma == 0 && xhor <=24 ){ xhor ++;delay(100);}
if (menu == 41 && leiturabmr == 0 && xhor >=1){ xhor= xhor-1; delay(100);}
if (menu == 41 && leiturabme == 0 && travame == 0){ menu =42; travame = 1;delay(100);}
if (menu == 42 && leiturabma == 0 && xmin <=60 ){ xmin ++;delay(100); }
if (menu == 42 && leiturabmr == 0 && xmin >=1){ xmin= xmin-1; delay(100);}
if (menu == 42 && leiturabme == 0 && travame == 0){ menu=43; travame = 1;delay(100);}
if (menu == 43 && leiturabma == 0 && xdia <=31){ xdia ++;delay(100); }
if (menu == 43 && leiturabmr == 0 && xdia >=1){ xdia= xdia-1; delay(100);}
if (menu == 43 && leiturabme == 0 && travame == 0){ menu=44; travame = 1;delay(100);}
if (menu == 44 && leiturabma == 0 && xmes <=12 ){ xmes ++;delay(100);}
if (menu == 44 && leiturabmr == 0 && xmes >=1){ xmes= xmes-1;delay(100); }
if (menu == 44 && leiturabme == 0 && travame == 0){ menu=45;travame = 1;delay(100);}
if (menu == 45 && leiturabma == 0 && xano <=2080){ xano ++;delay(100); }
if (menu == 45 && leiturabmr == 0 && xano >=1){ xano= xano-1;delay(100); }
if (menu == 45 && leiturabme == 0 && travame == 0){ acertohoras = 1; travame = 1;}
}
void botaomenu()
{
int leiturabma = digitalRead(bma);
int leiturabmr = digitalRead(bmv);
int leiturabme = digitalRead(bme);
if (leiturabma ==1) {travama = 0; }
if (leiturabmr ==1) {travamr = 0; }
if (leiturabme ==1) {travame = 0; }
if (leiturabma ==0 && travama == 0 && menu40 == 0 && menu <=14 && menuenter == 0 ) { lcd.clear(); menu ++; travama = 1;}
if (leiturabmr ==0 && travamr == 0 &&menu40 == 0&& menu >=1 && menuenter == 0 ){ lcd.clear();menu = menu -1; travamr = 1;}
}
void atualisaestado()
{
int leituralq2 = digitalRead(lq2); // leitura do rele da lampada
if ( leituralq2 == 0 && menu == 2) { estadom = "Ligar" ;}
if ( leituralq2 == 1 && menu == 2) { estadom = "Desligar" ;}
int leituralq3 = digitalRead(lq3); // leitura do rele da lampada
if ( leituralq3 == 0 && menu == 3) { estadom = "Ligar" ;}
if ( leituralq3== 1 && menu == 3) { estadom = "Desligar" ;}
int leituralsl = digitalRead(lsl); // leitura do botão
if ( leituralsl == 0 && menu == 4) { estadom = "Ligar" ;}
if ( leituralsl== 1 && menu == 4) { estadom = "Desligar" ;}
int leituralc = digitalRead(lc); // leitura do botão
if ( leituralc == 0 && menu == 5) { estadom = "Ligar" ;}
if ( leituralc== 1 && menu == 5) { estadom = "Desligar" ;}
int leituralb = digitalRead(lb); // leitura do rele da lampada
if ( leituralb == 0 && menu == 6) { estadom = "Ligar" ;}
if ( leituralb== 1 && menu == 6) { estadom = "Desligar" ;}
int leiturala = digitalRead(la); // leitura do rele da lampada
if ( leiturala == 0 && menu == 7) { estadom = "Ligar" ;}
if ( leiturala== 1 && menu == 7) { estadom = "Desligar" ;}
}
void automatico ()
{
int leiturabma = digitalRead(bma);
int leiturabmr = digitalRead(bmv);
int leiturabme = digitalRead(bme);
if (leiturabma ==1) {travama = 0; }
if (leiturabmr ==1) {travamr = 0; }
if (leiturabme ==1) {travame = 0; }
// Quarto Casal
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu91 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 9 && menuenter == 1 && menu91 == 1) { hlqc ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 9 && menuenter == 1 && menu91 == 1) { hlqc= hlqc - 1;}
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 1 && menu91 == 1 ){ menu91 = 0; travame = 1; menu92 =1; }
if (leiturabma == 0 && travama == 0 & menu == 9 && menuenter == 1 && menu92 == 1) { mlqc ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 9 && menuenter == 1 && menu92 == 1) { mlqc= mlqc - 1;}
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 1 && menu92 == 1 ){ menu92 = 0; travame = 1; menu93 =1; }
if (leiturabma == 0 && travama == 0 & menu == 9 && menuenter == 1 && menu93 == 1) { hdqc ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 9 && menuenter == 1 && menu93 == 1) { hdqc= hdqc - 1;}
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 1 && menu93 == 1) { menu93 = 0; travame = 1; menu94 =1; }
if (leiturabma == 0 && travama == 0 & menu == 9 && menuenter == 1 && menu94 == 1) { mdqc ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 9 && menuenter == 1 && menu94 == 1) { mdqc= mdqc - 1;}
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 1 && menu94 == 1) { menu94 = 0; travame = 1; menu95 =1; }
if (leiturabma == 0 && travama == 0 & menu == 9 && menuenter == 1 && menu95 == 1) { onqc =1 ; onoffqc ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 9 && menuenter == 1 && menu95 == 1) { onqc = 0 ; onoffqc ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 9 && menuenter == 1 && menu95 == 1) { menu95 = 0; travame = 1; menu = 9; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hlqc == myRTC.hours && mlqc == myRTC.minutes && onqc == 1 ) {digitalWrite(lq2,1); digitalWrite(lb2,0);}
if (hdqc == myRTC.hours && mdqc == myRTC.minutes && onqc == 1 ) {digitalWrite(lq2,0); digitalWrite(lb2,1);}
// Quarto Solteiro
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu101 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 10 && menuenter == 1 && menu101 == 1) { hlqs ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 10 && menuenter == 1 && menu101 == 1) { hlqs= hlqs - 1;}
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 1 && menu101 == 1 ){ menu101 = 0; travame = 1; menu102 =1; }
if (leiturabma == 0 && travama == 0 & menu == 10 && menuenter == 1 && menu102 == 1) { mlqs ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 10 && menuenter == 1 && menu102 == 1) { mlqs= mlqs - 1;}
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 1 && menu102 == 1 ){ menu102 = 0; travame = 1; menu103 =1; }
if (leiturabma == 0 && travama == 0 & menu == 10 && menuenter == 1 && menu103 == 1) { hdqs ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 10 && menuenter == 1 && menu103 == 1) { hdqs= hdqs - 1;}
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 1 && menu103 == 1) { menu103 = 0; travame = 1; menu104 =1; }
if (leiturabma == 0 && travama == 0 & menu == 10 && menuenter == 1 && menu104 == 1) { mdqs ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 10 && menuenter == 1 && menu104 == 1) { mdqs= mdqs - 1;}
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 1 && menu104 == 1) { menu104 = 0; travame = 1; menu105 =1; }
if (leiturabma == 0 && travama == 0 & menu == 10 && menuenter == 1 && menu105 == 1) { onqs =1 ; onoffqs ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 10 && menuenter == 1 && menu105 == 1) { onqs = 0 ; onoffqs ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 10 && menuenter == 1 && menu105 == 1) { menu105 = 0; travame = 1; menu = 10; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hlqs == myRTC.hours && mlqs == myRTC.minutes && onqs == 1 ) {digitalWrite(lq3,1); digitalWrite(lb3,0);}
if (hdqs == myRTC.hours && mdqs == myRTC.minutes && onqs == 1 ) {digitalWrite(lq3,0); digitalWrite(lb3,1);}
// Banheiro
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu111 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 11 && menuenter == 1 && menu111 == 1) { hlb ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 11 && menuenter == 1 && menu111 == 1) { hlb= hlb - 1;}
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 1 && menu111 == 1 ){ menu111 = 0; travame = 1; menu112 =1; }
if (leiturabma == 0 && travama == 0 & menu == 11 && menuenter == 1 && menu112 == 1) { mlb ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 11 && menuenter == 1 && menu112 == 1) { mlb= mlb - 1;}
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 1 && menu112 == 1 ){ menu112 = 0; travame = 1; menu113 =1; }
if (leiturabma == 0 && travama == 0 & menu == 11 && menuenter == 1 && menu113 == 1) { hdb ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 11 && menuenter == 1 && menu113 == 1) { hdb= hdb - 1;}
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 1 && menu113 == 1) { menu113 = 0; travame = 1; menu114 =1; }
if (leiturabma == 0 && travama == 0 & menu == 11 && menuenter == 1 && menu114 == 1) { mdb ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 11 && menuenter == 1 && menu114 == 1) { mdb= mdb - 1;}
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 1 && menu114 == 1) { menu114 = 0; travame = 1; menu115 =1; }
if (leiturabma == 0 && travama == 0 & menu == 11 && menuenter == 1 && menu115 == 1) { onb =1 ; onoffb ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 11 && menuenter == 1 && menu115 == 1) { onb = 0 ; onoffb ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 11 && menuenter == 1 && menu115 == 1) { menu115 = 0; travame = 1; menu = 11; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hlb == myRTC.hours && mlb == myRTC.minutes && onb == 1 ) {digitalWrite(lb,1); digitalWrite(lbb,0);}
if (hdb == myRTC.hours && mdb == myRTC.minutes && onb == 1 ) {digitalWrite(lb,0); digitalWrite(lbb,1);}
// Sala de Estar
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu121 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 12 && menuenter == 1 && menu121 == 1) { hlsl ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 12 && menuenter == 1 && menu121 == 1) { hlsl= hlsl - 1;}
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 1 && menu121 == 1 ){ menu121 = 0; travame = 1; menu122 =1; }
if (leiturabma == 0 && travama == 0 & menu == 12 && menuenter == 1 && menu122 == 1) { mlsl ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 12 && menuenter == 1 && menu122 == 1) { mlsl= mlsl - 1;}
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 1 && menu122 == 1 ){ menu122 = 0; travame = 1; menu123 =1; }
if (leiturabma == 0 && travama == 0 & menu == 12 && menuenter == 1 && menu123 == 1) { hdsl ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 12 && menuenter == 1 && menu123 == 1) { hdsl= hdsl - 1;}
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 1 && menu123 == 1) { menu123 = 0; travame = 1; menu124 =1; }
if (leiturabma == 0 && travama == 0 & menu == 12 && menuenter == 1 && menu124 == 1) { mdsl ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 12 && menuenter == 1 && menu124 == 1) { mdsl= mdsl - 1;}
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 1 && menu124 == 1) { menu124 = 0; travame = 1; menu125 =1; }
if (leiturabma == 0 && travama == 0 & menu == 12 && menuenter == 1 && menu125 == 1) { onsl =1 ; onoffsl ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 12 && menuenter == 1 && menu125 == 1) { onsl = 0 ; onoffsl ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 12 && menuenter == 1 && menu125 == 1) { menu125 = 0; travame = 1; menu = 12; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hlsl == myRTC.hours && mlsl == myRTC.minutes && onsl == 1 ) { digitalWrite(lsl,1); digitalWrite(lbsl,0);}
if (hdsl == myRTC.hours && mdsl == myRTC.minutes && onsl == 1 ) { digitalWrite(lsl,0); digitalWrite(lbsl,1);}
// Cozinha
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu131 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 13 && menuenter == 1 && menu131 == 1 && hlcz <=24) { hlcz ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 13&& menuenter == 1 && menu131 == 1 && hlcz >=1) { hlcz= hlcz - 1;}
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 1 && menu131 == 1 ){ menu131 = 0; travame = 1; menu132 =1; }
if (leiturabma == 0 && travama == 0 & menu == 13 && menuenter == 1 && menu132 == 1 && mlcz <= 60) { mlcz ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 13 && menuenter == 1 && menu132 == 1 && mlcz >=1 ) { mlcz= mlcz - 1;}
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 1 && menu132 == 1 ){ menu132 = 0; travame = 1; menu133 =1; }
if (leiturabma == 0 && travama == 0 & menu == 13 && menuenter == 1 && menu133 == 1 && hdcz <= 24) { hdcz ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 13 && menuenter == 1 && menu133 == 1 && hdcz >= 0) { hdcz= hdcz - 1;}
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 1 && menu133 == 1) { menu133 = 0; travame = 1; menu134 =1; }
if (leiturabma == 0 && travama == 0 & menu == 13 && menuenter == 1 && menu134 == 1 && mdcz <= 60) { mdcz ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 13 && menuenter == 1 && menu134 == 1 && mlcz >= 0) { mdcz= mdsl - 1;}
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 1 && menu134 == 1) { menu134 = 0; travame = 1; menu135 =1; }
if (leiturabma == 0 && travama == 0 & menu == 13 && menuenter == 1 && menu135 == 1) { oncz =1 ; onoffcz ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 13 && menuenter == 1 && menu135 == 1) { oncz = 0 ; onoffcz ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 13 && menuenter == 1 && menu135 == 1) { menu135 = 0; travame = 1; menu = 13; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hlcz == myRTC.hours && mlcz == myRTC.minutes && oncz == 1 ) { digitalWrite(lc,1); digitalWrite(lbc,0);}
if (hdcz == myRTC.hours && mdcz == myRTC.minutes && oncz == 1 ) { digitalWrite(lc,0); digitalWrite(lbc,1);}
// Area
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 0) { Ajuste = "Avancar"; menuenter = 1; travame = 1; menu141 = 1;}
if (leiturabma == 0 && travama == 0 & menu == 14 && menuenter == 1 && menu141 == 1) { hla ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 14 && menuenter == 1 && menu141 == 1) { hla= hla - 1;}
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 1 && menu141 == 1 ){ menu141 = 0; travame = 1; menu142 =1; }
if (leiturabma == 0 && travama == 0 & menu == 14 && menuenter == 1 && menu142 == 1) { mla ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 14 && menuenter == 1 && menu142 == 1) { mla= mla - 1;}
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 1 && menu142 == 1 ){ menu142 = 0; travame = 1; menu143 =1; }
if (leiturabma == 0 && travama == 0 & menu == 14 && menuenter == 1 && menu143 == 1) { hda ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 14 && menuenter == 1 && menu143 == 1) { hda= hda - 1;}
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 1 && menu143 == 1) { menu143 = 0; travame = 1; menu144 =1; }
if (leiturabma == 0 && travama == 0 & menu == 14 && menuenter == 1 && menu144 == 1) { mda ++;}
if (leiturabmr == 0 && travamr == 0 & menu == 14 && menuenter == 1 && menu144 == 1) { mda= mda - 1;}
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 1 && menu144 == 1) { menu144 = 0; travame = 1; menu145 =1; }
if (leiturabma == 0 && travama == 0 & menu == 14 && menuenter == 1 && menu145 == 1) { ona =1 ; onoffa ="ON" ; }
if (leiturabmr == 0 && travamr == 0 & menu == 14 && menuenter == 1 && menu145 == 1) { ona = 0 ; onoffa ="OFF" ;}
if (leiturabme == 0 && travame == 0 & menu == 14 && menuenter == 1 && menu145 == 1) { menu145 = 0; travame = 1; menu = 13; menuenter = 0 ;Ajuste = "Ajustar"; }
if (hla == myRTC.hours && mla == myRTC.minutes && ona == 1 ) { digitalWrite(la,1); digitalWrite(lba,0);}
if (hda == myRTC.hours && mda == myRTC.minutes && ona == 1 ) { digitalWrite(la,0); digitalWrite(lba,1);}
}
void timeled()
{
// lógica de ligar e desligar os led's do interruptor.
if ( myRTC.hours >=hdld && myRTC.hours <=hlld) { ledtime = 0;}
if ( myRTC.hours <=hdld ) { ledtime = 1;}
if ( myRTC.hours >=hlld ) { ledtime = 1;}
}
void ajustartimeled()
{
int leiturabma = digitalRead(bma);
int leiturabmr = digitalRead(bmv);
int leiturabme = digitalRead(bme);
if (leiturabma ==1) {travama = 0; }
if (leiturabmr ==1) {travamr = 0; }
if (leiturabme ==1) {travame = 0; }
if (menu == 15 && leiturabme == 1 && ajustaled == 0) {ajustaled = 1; menuenter == 1 ;}
}
void liga_desliga_GSMShield()
{
Serial.print(F("Aguarde..."));
pinMode(6, OUTPUT);
digitalWrite(6, LOW);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
Serial.println(F("OK!"));
}
// EM BREVE BIBLIOTECAS E "C" ULTILIZADAS NO PROJETO SERÁ POSTADAS , LEBRANDO O PROJETO JAH ENCONTRA-SE EM TESTE E SENDO APERFEIÇOADO.
QUALQUER DÚVIDAS eslanruthelli1@yahoo.com.br