Clock Without Using RTC With Temperature and Humidity Indicator
Clock Without Using RTC With Temperature and Humidity Indicator
SimpleDHT11 dht11;
void setup() {
lcd.setCursor(0, 0);
lcd.print("Ahmad Ordikhani");
lcd.setCursor(0, 1);
lcd.print("Clk without RTC");
delay(3000);
lcd.clear();
pinMode(b_h, INPUT_PULLUP);
pinMode(b_m, INPUT_PULLUP);
pinMode(b_startstop, INPUT_PULLUP);
void loop() {
//Setting the time will stop the clock to set the time
while (startstop == false)
{
lcd.setCursor(0, 1);
lcd.print("SET");
delay(100);
lcd.setCursor(0, 0);
lcd.print("Time: ");
if(hour<10)
{
lcd.print("0");
lcd.print(hour);
}
else
lcd.print(hour);
lcd.print(":");
if(minute<10)
{
lcd.print("0");
lcd.print(minute);
}
else
lcd.print(minute);
lcd.print(":");
if(sec<10)
{
lcd.print("0");
lcd.print(sec);
}
else
lcd.print(sec);
lcd.print(" ");
if (digitalRead(b_h) == LOW)
{
hour++;
if (hour > 23)
hour = 0;
}
if (digitalRead(b_m) == LOW)
{
minute++;
if (minute > 59)
minute = 0;
}
}
//Start the clock
while (startstop == true)
{
// noInterrupts();
// read with raw sample data.
byte temperature = 0;
byte humidity = 0;
byte data[40] = {0};
if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
lcd.setCursor(0, 1);
lcd.print("Read DHT11 failed");
return;
}
lcd.setCursor(0, 1);
lcd.print("Temp:");
lcd.print((int)temperature);
//lcd.print("*C");
lcd.print(" ");
lcd.print("Hum.:");
lcd.print((int)humidity);
lcd.print("%");
//Serial.print((int)temperature); Serial.print(" *C, ");
// Serial.print((int)humidity); Serial.println(" %");
lcd.setCursor(0, 0);
//sec=millis()/1000;
delay(1000);
lcd.print("Time: ");
if (hour < 10)
{
lcd.print("0");
lcd.print(hour);
}
else
{
lcd.print(hour);
}
lcd.print(":");
if (minute < 10)
{
lcd.print("0");
lcd.print(minute);
}
else
{
lcd.print(minute);
} lcd.print(":");
if (sec < 10)
{
lcd.print("0");
lcd.print(sec);
}
else
{
lcd.print(sec);
}
lcd.print(" ");
//lcd.print(startstop);
sec++;
if (sec > 59)
{
minute++;
sec = 0;
//lcd.clear();
}
}
}
}