#include <Adafruit_GFX.h> // include Adafruit graphics library
#include <Adafruit_ILI9341.h> // include Adafruit ILI9341 TFT library
#define TFT_CS 10 // TFT CS pin is connected to arduino pin 8
#define TFT_RST 4 // TFT RST pin is connected to arduino pin 9
#define TFT_DC 2
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
#include <DHT.h>
#define DHTPIN 3
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include "RTClib.h"
RTC_DS1307 rtc;
char Temp[6]="12345";
char Hum[6]="12345";
char Date[11],Time[10];
uint16_t RecCount,OldRecCount;
float OldHum,OldTemp;
uint8_t PastDay;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dht.begin();
tft.begin();
unsigned long start;
int x, y, w = tft.width(), h = tft.height();//w=240, h=320
tft.fillScreen(ILI9341_DARKGREY);
tft.setRotation(1);
tft.drawLine(0, 120, h, 120, ILI9341_RED);
tft.fillRect(0, 120, h, 5, ILI9341_RED);
tft.drawRect(0, 0, h, 50, ILI9341_YELLOW);
tft.drawRect(4, 4, h-4, 44, ILI9341_YELLOW);
///tft.drawRect(2, 2, h-2, 48, ILI9341_YELLOW);
//tft.drawRect(3, 3, h-3, 40, ILI9341_YELLOW);
//tft.drawRect(4, 4, 310, 50-4, ILI9341_YELLOW);
tft.setCursor(30, 10);
tft.setTextColor(ILI9341_WHITE); tft.setTextSize(4);
tft.print("Data Logger");
tft.setCursor(0, 60);
tft.setTextColor(ILI9341_GREEN); tft.setTextSize(2);
tft.print(" Record No : ");
tft.setCursor(0, 80);
//tft.setTextColor(ILI9341_BLUE); tft.setTextSize(2);
tft.println(" Date: ");
tft.setCursor(0, 100);tft.print(" Time: ");
tft.setTextSize(3);
tft.setCursor(10, 140);tft.print("Temperture: ");
tft.setCursor(10,180);tft.print("Humidity: ");
//start = micros();
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
RecCount=0;
}
void loop() {
DateTime now = rtc.now();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
Serial.print(Hum);
Serial.print(" %\t");
Serial.print("Temperature: ");
//Serial.print(t);
Serial.print(Temp);
Serial.println(" *C");
}
Serial.print(PastDay);Serial.print(" : "),Serial.println(now.day());
//CurDay=now.day();
tft.setTextColor(ILI9341_DARKGREY); tft.setTextSize(2);
tft.setCursor(80, 100);
tft.print(Time);
sprintf(Date,"%02d/%02d/%4d",now.day(),now.month(),now.year());
sprintf(Time,"%02d:%02d:%02d",now.hour(),now.minute(),now.second());
tft.setTextColor(ILI9341_ORANGE); tft.setTextSize(2);
tft.setCursor(80, 100);
tft.print(Time);
if(PastDay!=now.day()){
tft.setTextColor(ILI9341_DARKGREY); tft.setTextSize(2);
tft.setCursor(80, 80);tft.setTextColor(ILI9341_NAVY);
tft.print(Date);
PastDay=now.day();
}
//Serial.println("Start.....");
// check if returns are valid, if they are NaN (not a number) then something went wrong!
tft.setCursor(150, 60);
tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2);
tft.println(RecCount);
if(OldTemp!=t){
tft.setCursor(210, 140);tft.setTextSize(3);
tft.setTextColor(ILI9341_DARKGREY); tft.println(Temp);
dtostrf(t,5,2,Temp);
tft.setCursor(210, 140);tft.setTextSize(3);
tft.setTextColor(ILI9341_CYAN); tft.println(Temp);
OldTemp=t;
}
if(OldHum!=h){
tft.setCursor(180, 180);tft.setTextSize(3);
tft.setTextColor(ILI9341_DARKGREY); tft.println(Hum);
dtostrf(h,5,2,Hum);
tft.setCursor(180, 180);tft.setTextSize(3);
tft.setTextColor(ILI9341_MAROON ); tft.println(Hum);
OldHum=h;
}
//sprintf(Temp,"%4f",t);
//Serial.print(Date);Serial.print(" ");Serial.println(Time);
delay(1000);
tft.setCursor(150, 60);
tft.setTextColor(ILI9341_DARKGREY); tft.setTextSize(2);
tft.println(RecCount);
RecCount++;
}