#include <Wire.h>
#include <RTClib.h>
#include <DHT.h>
//#include <Adafruit_GFX.h>
//#include <Adafruit_SSD1306.h>
RTC_DS3231 rtc;
DHT dht(2, DHT22);
/*#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);*/
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Tidak dapat menemukan RTC DS3231");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC kehilangan daya");
}
/*if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Tidak dapat menemunakn SSD1306"));
for(;;);
}*/
dht.begin();
}
String Hari(uint8_t Day){
String HariStr;
if (Day==1) HariStr="Senin";
if (Day==2) HariStr="Selasa";
if (Day==3) HariStr="Rabu";
if (Day==4) HariStr="Kamis";
if (Day==5) HariStr="Jumat";
if (Day==6) HariStr="Sabtu";
if (Day==7) HariStr="Minggu";
return HariStr;
}
String TglBulanTahun(uint8_t Day, uint8_t Month, uint16_t Year){
String TglBulanTahun;
TglBulanTahun=Day;
if (Month==1) TglBulanTahun=TglBulanTahun+" JAN ";
if (Month==2) TglBulanTahun=TglBulanTahun+" FEB ";
if (Month==3) TglBulanTahun=TglBulanTahun+" MAR ";
if (Month==4) TglBulanTahun=TglBulanTahun+" APR ";
if (Month==5) TglBulanTahun=TglBulanTahun+" MAY ";
if (Month==6) TglBulanTahun=TglBulanTahun+" JUN ";
if (Month==7) TglBulanTahun=TglBulanTahun+" JUL ";
if (Month==8) TglBulanTahun=TglBulanTahun+" AGU ";
if (Month==9) TglBulanTahun=TglBulanTahun+" SEP ";
if (Month==10) TglBulanTahun=TglBulanTahun+" OKT ";
if (Month==11) TglBulanTahun=TglBulanTahun+" NOV ";
if (Month==12) TglBulanTahun=TglBulanTahun+" DES ";
TglBulanTahun=TglBulanTahun+Year;
return TglBulanTahun;
}
String Detik(uint8_t x){
String DetikStr;
if(x<10) DetikStr="0";
else DetikStr="";
DetikStr=DetikStr+x;
return DetikStr;
}
String JamMenit(uint8_t h, uint8_t i ){
String JamMenit="";
JamMenit=JamMenit + Detik(h) +":"+Detik(i);
return JamMenit;
}
void loop() {
DateTime now = rtc.now();
float suhu = dht.readTemperature();
float kelembaban = dht.readHumidity();
Serial.print("Hari: ");
Serial.println(Hari(now.dayOfTheWeek()));
Serial.print("Tanggal: ");
Serial.println(TglBulanTahun(now.day(), now.month(), now.year()));
Serial.print("Jam: ");
Serial.println(JamMenit(now.hour(), now.minute()));
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" °C");
Serial.print("Kelembaban: ");
Serial.print(kelembaban);
Serial.println(" %");
delay(1000);
}