#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
DHT dht(2, DHT22);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;
int temp;
int hum;
int y;
int m;
int d;
int h;
int mi;
int s;
int swmenu = 0;
const int buttonPin = 8;
const int ledPin = 4;
int ledState = HIGH;
int buttonState;
int lastButtonState = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
void setup() {
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.backlight();
rtc.begin();
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
} ///end setup
void loop() {
millisw();
/*
if(sw==0){
swmenu=!swmenu + 1;
lcd.clear();
}
if (swmenu == 0) {
time();
}
if (swmenu == 1) {
dhtsensor();
}
if (swmenu == 2) {
text();
}
if (swmenu >= 3) {
swmenu=0;
}
Serial.print("swmenu :");
Serial.println(swmenu);
Serial.print("sw :");
Serial.println(sw);*/
} //// end loop
void time() {
DateTime now = rtc.now();
y = now.year();
m = now.month();
d = now.day();
h = now.hour();
mi = now.minute();
s = now.second();
y = y + 543;
////////Serial.println(y);
lcd.setCursor(0, 0);
if (d < 10) {
lcd.print("0");
}
lcd.print("Date :");
lcd.print(d);
lcd.print("/");
if (m < 10) {
lcd.print("0");
}
lcd.print(m);
lcd.print("/");
lcd.print(y);
lcd.setCursor(0, 1);
lcd.print("Time :");
if (h < 10) {
lcd.print("0");
}
lcd.print(h);
lcd.print(":");
if (mi < 10) {
lcd.print("0");
}
lcd.print(mi);
lcd.print(":");
if (s < 10) {
lcd.print("0");
}
lcd.print(s);
lcd.print(" ");
}
void dhtsensor() {
int t = dht.readTemperature();
int h = dht.readHumidity();
lcd.setCursor(0, 0);
lcd.print("Temp :");
lcd.print(t);
lcd.setCursor(0, 1);
lcd.print("Hum :");
lcd.print(h);
}
void text(){
lcd.setCursor(0,0);
lcd.print("Hello World");
}
void millisw(){
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
// reset the debouncing timer
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {
ledState = !ledState;
}
}
}
// set the LED:
digitalWrite(ledPin, ledState);
lastButtonState = reading;
}