RTC_DS1307 RTC; LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTTYPE DHT11
#define DHTPIN A0
DHT dht(DHTPIN, DHTTYPE);
byte thermometer[8] = //icon for thermometer { B00100, B01010, B01010, B01110, B01110, B11111, B11111, B01110 };
byte droplet[8] = //icon for water droplet { B00100, B00100, B01010, B01010, B10001, B10001, B10001, B01110, };
void setup() {
Serial.begin(57600);
Wire.begin();
RTC.begin();
lcd.begin(16, 2);
lcd.print("LCD Starting...");
lcd.noAutoscroll();
lcd.createChar(2,droplet); lcd.createChar(1,thermometer);
if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); RTC.adjust(DateTime(DATE, TIME)); }
delay(3000); }
void loop() {
int h = dht.readHumidity(); // Read temperature as Celsius int t = dht.readTemperature(); // Read temperature as Fahrenheit int f = dht.readTemperature(true);
DateTime now = RTC.now();
lcd.clear();
lcd.setCursor(0,1);
lcd.print(now.month(), DEC);
lcd.print("/");
lcd.print(now.day(), DEC);
lcd.print("/");
lcd.print(now.year(), DEC);
lcd.print(" ");
lcd.print(now.hour(), DEC);
lcd.print(":");
if (now.minute() < 10){
lcd.print("0");
}
lcd.print(now.minute(), DEC);
;
lcd.setCursor(0, 0); // prints the number of days since reset in milliseconds: lcd.print(millis()/86400000); // 86400000 milliseconds in a day lcd.print("d");
lcd.setCursor(5, 0);
int hi = dht.computeHeatIndex(f, h);
lcd.write(2);
lcd.print(h);
lcd.print("%");//percent sign
lcd.setCursor(10, 0);
lcd.write(1);
lcd.print(f);
lcd.print((char)223); //degree sign
lcd.print ("F");
delay(5000); }