#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
RTC_DS1307 rtc;
void setup()
{
Serial.begin(115200);
if(!rtc.begin())
{
Serial.println("RTC Tidak ditemukan");
while(1);
}
if(!rtc.isrunning())
{
Serial.println("RTC Belum Jalan");
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0X3C))
{
Serial.println(F("SSD1306 FAILED"));
}
display.display();
delay(2000);
display.clearDisplay();
dht.begin();
}
void loop()
{
DateTime now = rtc.now();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println(F("Sensor DHT Failed"));
return;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(12,0);
display.print(now.day(),DEC);
display.print('-');
display.print(now.month(),DEC);
display.print('-');
display.print(now.year(),DEC);
display.print(' ');
display.print(now.hour(),DEC);
display.print(':');
display.print(now.minute(),DEC);
display.print(':');
display.print(now.second(),DEC);
display.setCursor(0,20);
display.print(F("Suhu : "));
display.print(t);
display.print(F(" C"));
display.setCursor(0,35);
display.print(F("Kelembaban : "));
display.print(h);
display.print(F(" %"));
display.setCursor(0,55);
display.print("AHMAD HARYADHI XIIB2");
display.startscrollleft(0x36, 0x37);
display.display();
delay(2000);
}