#include <Arduino_GFX_Library.h>
//#include "Arduino.h"
#include <RTClib.h>
#include <dht.h>
#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
/* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
Arduino_DataBus *bus = create_default_Arduino_DataBus();
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */);
#endif /* !defined(DISPLAY_DEV_KIT) */
/*******************************************************************************
* End of Arduino_GFX setting
******************************************************************************/
RTC_DS1307 rtc;
dht DHT11;
#define BACKGROUND BLACK
#define DHT11PIN 5
int wdth, hght, txt=2;
int y, mo, d, h, m, s, off=0, ld;
int y1, mo1, d1, h1, m1, s1;
float temp, hum, temp1, hum1;
float posx=10, posy=200;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup()
{
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1);
}
rtc.adjust(DateTime(2022, 9, 10, 10, 17, 0));
gfx->begin();
gfx->fillScreen(BACKGROUND);
#ifdef GFX_BL
pinMode(GFX_BL, OUTPUT);
digitalWrite(GFX_BL, HIGH);
#endif
gfx-> setRotation(45);
wdth= gfx-> width();
hght= gfx-> height();
}
void loop()
{
int chk = DHT11.read11(DHT11PIN);
gfx-> flush();
DateTime now = rtc.now();
y= now.year();
mo= now.month();
d= now.day();
h= now.hour();
m= now.minute();
s= now.second();
hum = DHT11.humidity;
temp= DHT11.temperature;
time(h, m);
date(y, mo, d);
dht(temp, hum);
}
void time(int h, int m)
{
gfx-> setCursor(posx+35, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(":");
if(h1 != h)
{
gfx-> setCursor(posx, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(h1, DEC);
h1=h;
}
gfx-> setCursor(posx, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(h, DEC);
if(m1 != m)
{
gfx-> setCursor(posx+ 50, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(m1, DEC);
m1=m;
}
gfx-> setCursor(posx+ 50, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(m, DEC);
}
void date(int y, int mo, int d)
{
if(d1 != d)
{
gfx-> setCursor(posx+ 100, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(d1, DEC);
d1=d;
}
gfx-> setCursor(posx+ 100, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(d, DEC);
gfx-> setCursor(posx+ 135, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println("/");
if(mo1 != mo)
{
gfx-> setCursor(posx+ 185, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(mo1, DEC);
mo1=mo;
}
gfx-> setCursor(posx+ 185, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(mo, DEC);
gfx-> setCursor(posx+ 220, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println("/");
if(y1 != y)
{
gfx-> setCursor(posx+ 245, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(y1, DEC);
y1=y;
}
gfx-> setCursor(posx+ 245, posy);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(y, DEC);
}
void dht(float temp, float hum)
{
if(temp1 != temp)
{
gfx-> setCursor(posx, posy- 100);
gfx-> setTextSize(txt);
gfx-> setTextColor(BLACK);
gfx-> println(temp1);
temp1=temp;
}
gfx-> setCursor(posx, posy- 100);
gfx-> setTextSize(txt);
gfx-> setTextColor(WHITE);
gfx-> println(temp);
}