Professional Documents
Culture Documents
h>
#include "gsmfile.h"
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#include<Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
#include <Keypad.h>
const byte ROWS=4; const byte COLS=3;
char hexaKeys[ROWS][COLS] =
{ {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'N','0','F'}};
byte rowPins[ROWS] = {A3, A2, A1, A0}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 10, 11 }; //connect to the column pinouts of the keypad
Keypad keypads = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );
char keygets;
char keyget;
int onhours; int onminutes;
int offhours; int offminutes;
int c,d,a,b;
int hours;
int minutes; int seconds;
int load1nh; int load1nm;
int load2nh; int load2nm;
int load1fh;int load1fm;
int load2fh;int load2fm;
int x,y;
void getoffhours(int j)
{
do{
keygets=keypads.getKey();
if(offhours==23)
{
offhours=0;
}
else
{
offhours=offhours+1;
}
}
if(keygets=='8')
{
if(offhours==0)
{
offhours=23;
}
else
{
offhours=offhours-1;
}
}
if(j==1)
{ if(offhours<10){lcd.setCursor(10,1);lcd.print("0"); lcd.setCursor(11,1);lcd.print(offhours);}
else {lcd.setCursor(10,1);lcd.print(offhours);}
load1fh=offhours;
if(j==2)
{
if(offhours<10){lcd.setCursor(10,1);lcd.print("0"); lcd.setCursor(11,1);lcd.print(offhours);}
else {lcd.setCursor(10,1);lcd.print(offhours);}
load2fh=offhours;
}
}
if(e==1)
{ if(offminutes<10){lcd.setCursor(13,1);lcd.print("0"); lcd.setCursor(14,1);lcd.print(offminutes);}
else {lcd.setCursor(13,1);lcd.print(offminutes);}
load1fm=offminutes;
if(e==2)
{
if(offminutes<10){lcd.setCursor(13,1);lcd.print("0"); lcd.setCursor(14,1);lcd.print(offminutes);}
else {lcd.setCursor(13,1);lcd.print(offminutes);}
load2fm=offminutes;
}while(keygets!='F');
if(s==1)
{ if(onhours<10){lcd.setCursor(10,0);lcd.print("0"); lcd.setCursor(11,0);lcd.print(onhours);}
else {lcd.setCursor(10,0);lcd.print(onhours);}
load1nh=onhours;
}
if(s==2)
{
if(onhours<10){lcd.setCursor(10,0);lcd.print("0"); lcd.setCursor(11,0);lcd.print(onhours);}
else {lcd.setCursor(10,0);lcd.print(onhours);}
load2nh=onhours;
}
}while(keygets!='F');
if(l==1)
{ if(onminutes<10){lcd.setCursor(13,0);lcd.print("0"); lcd.setCursor(14,0);lcd.print(onminutes);}
else {lcd.setCursor(13,0);lcd.print(onminutes);}
load1nm=onminutes;
}
if(l==2)
{ if(onminutes<10){lcd.setCursor(13,0);lcd.print("0"); lcd.setCursor(14,0);lcd.print(onminutes);}
else {lcd.setCursor(13,0);lcd.print(onminutes);}
load2nm=onminutes;
}
}while(keygets!='F');
void loadrelay()
{
lcd.clear();
lcd.setCursor(0,0);lcd.print("LOAD STATUS...");
if((load1nh==hours) && (load1nm==minutes)){digitalWrite(12,HIGH);x=1; }
if((load1fh==hours) && (load1fm==minutes)){digitalWrite(12,LOW);x=0; }
if(x==1)
{lcd.setCursor(0,1);lcd.print("L1:ON ");
if(a<3){SMSto("8072814357","LOAD 1 ON");delay(1000);}
a=a+1;b=0;
}
if(x==0)
{lcd.setCursor(0,1);lcd.print("L1:OFF ");
if(b<3){SMSto("8072814357","LOAD 1 OFF");delay(1000);}//8072814357
b=b+1; a=0;
}
void displayclock()
{
lcd.clear();
lcd.setCursor(0,0); lcd.print("CLOCK:");
if(hours<10){lcd.setCursor(6,0); lcd.print("0");lcd.setCursor(7,0); lcd.print(hours);}
else {lcd.setCursor(6,0); lcd.print(hours);}
lcd.setCursor(8,0); lcd.print(":");
void clockdisplayrelay()
{
lcd.clear();
delay(500);
}
void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
pinMode(12,OUTPUT); pinMode(13,OUTPUT);
digitalWrite(12,LOW); digitalWrite(13,LOW);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("GRID BASED LOAD ");
lcd.setCursor(0,1);
lcd.print("AUTOMATIC SHEDDIN");
delay(2000);
lcd.setCursor(0,0);
lcd.print("GSM SETTING FILE..");
lcd.setCursor(0,1);
lcd.print("Loading ......... ");
delay(500);
gsmsetting();
SMSto("8072814357","GRID BASED AUTOMATIC LOAD SHEDDING USING MICRO
CONTROLLER");/*8072814357*/
delay(4000);
lcd.clear();
void loop()
{
DateTime now = RTC.now();
keyget = keypads.getKey();
if(keyget=='N')
{
do
{
keyget = keypads.getKey();
lcd.clear();
lcd.setCursor(0,0); lcd.print("LOAD 1 : PRESS 1 ");
lcd.setCursor(0,1); lcd.print("LOAD 2 : PRESS 2 ");
if(keyget=='1')
{
lcd.clear();
lcd.setCursor(0,0); lcd.print("LOAD1 ON :");lcd.setCursor(10,0); lcd.print("00:00");
lcd.setCursor(0,1); lcd.print("LOAD1 OFF:");lcd.setCursor(10,1); lcd.print("00:00");
getonhours(1);onhours=0;
getonminutes(1);onminutes=0;
getoffhours(1);offhours=0;
getoffminutes(1);offminutes=0;
}
if(keyget=='2')
{
lcd.clear();
lcd.setCursor(0,0); lcd.print("LOAD2 ON :");lcd.setCursor(10,0); lcd.print("00:00");
lcd.setCursor(0,1); lcd.print("LOAD2 OFF:");lcd.setCursor(10,1); lcd.print("00:00");
getonhours(2);onhours=0;
getonminutes(2);onminutes=0;
getoffhours(2);offhours=0;
getoffminutes(2);offminutes=0;
}
}while(keyget!='F');
}
hours=now.hour();
minutes=now.minute();
seconds=now.second();
loadrelay();
clockdisplayrelay();delay(500);
displayclock();
delay(1000);
}