#include <Keypad.h>
#include <Wire.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 1
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd(0x27,16,2);
DHT dht(DHTPIN,DHTTYPE);
int relay1 = 11;
//int Min,Max;
const byte ROWS = 4;
const byte COLS = 4;
char Keys[ROWS][COLS] ={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','c'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9,8,7,6};
byte colPins[COLS] = {5,4,3,2};
Keypad customKeypad = Keypad(makeKeymap(Keys),rowPins,colPins,ROWS,COLS);
char BufNum[0];
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(relay1, OUTPUT);
lcd.init();
dht.begin();
lcd.backlight();
digitalWrite(relay1, HIGH);
//lcd.begin();
//lcd.setCursor(0,0);lcd.print("T= C");
//lcd.setCursor(9,0);lcd.print("H= %");
//lcd.setCursor(0,1);lcd.print("S_t= %S_h= %");
//Min = EEPROM.read(0);
//Max = EEPROM.read(1);
//lcd.setCursor(4,1); lcd.print(Min);
//lcd.setCursor(11,1); lcd.print(Max);
}
void loop() {
// put your main code here, to run repeatedly:
float h,t;
//char customKey = customKeypad.getKey();
int Num;
Num = GetNum(2,5,1);
lcd.setCursor(12,1);
lcd.print(Num);
//h = dht.readHumidity();
//t = dht.readTemperature();
//lcd.setCursor(0,0);
//lcd.print("T= ");
//lcd.setCursor(4,0);
//lcd.print(t);
//lcd.print("C");
//lcd.setCursor(8,0);
//lcd.print("H= ");
//lcd.print(h);
//lcd.print("%");
//lcd.setCursor(0,1);
//lcd.print("T= ");
//lcd.setCursor(8,1);
//lcd.print("H= ");
/*while(customKey== NO_KEY){
h = dht.readHumidity();
t = dht.readTemperature();
lcd.setCursor(0,3);lcd.print(t);
lcd.setCursor(0,12);lcd.print(h);
//if(h > Min){digitalWrite(relay1,LOW);}
//if(h < Max){digitalWrite(relay1,HIGH);}
}*/
/*if (customKey == '*'){
lcd.setCursor(4,1);
lcd.blink();
Min = bufNum(2,5,1);
EEPROM.write(0,Min);
Max = bufNum(2,12,1);
EEPROM.write(1,Max);
lcd.noBlink();
}*/
/*if (customKey == '1'){
digitalWrite(relay1, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("P1");
lcd.setCursor(3,0);
lcd.print("ON");
}
if (customKey == '0'){
digitalWrite(relay1, HIGH);
lcd.clear();
/* lcd.setCursor(3,0);
// lcd.print("All Close");
}
//if (customKey){
// Serial.println(comtomKey);
}*/
}
void SlideNum(void){
BufNum(6) = BufNum(5);
BufNum(5) = BufNum(4);
BufNum(4) = BufNum(3);
BufNum(3) = BufNum(2);
BufNum(2) = BufNum(1);
BufNum(1) = BufNum(0);
}
unsigned long GetNum(int Count, int X,int Y);
{
char Key,i,N;
int Sum;
lcd.setCursor(X+(Count-1),Y);
N=0;
for(i=0;i<Count;i++)(BufNum[i] = ' ';)
while(Key != '#')
{Key = NO_KEY;
while(Key == NO_KEY){Key = keypad.getkey();}
if(Key == '*'){for(i=0;i<Count;i++;)}{BufNum[i] ='' ;}N=0;}
if{(N<4)&&(Key >='0')&&(Key<='9')}
{ SlideNum();
BufNum[0] = Key;
N++;}
lcd.setCursor(X,Y);
for(i=0;i<Count;i++;){lcd.print(BufNum[Count-(i+1)]);}
lcd.setCursor(X+(Count-1),Y);
}
Sum = 0;
for(i=0;i<Count;i++;)
{
if(BufNum[Count-(i+1)]==0x20){BufNum[Count-(i+1)]='0';}
Sum = (Sum*10)+(BufNum[Count-(i+1)]-'0');
}
lcd.noCursor();
return(Sum);
}