#include <DHT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <RTClib.h>
#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1// Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Declaring the display name (display)
DHT dht(DHTPIN, DHTTYPE); //Declaring sensor name
RTC_DS1307 RTC; //Declaring real time clock name
void setup() {
Serial.begin(9600);
dht.begin();
Wire.begin();
RTC.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED display
delay(100);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.print("Dmytro Katrych");
display.setCursor(22,18);
display.setTextSize(2);
display.println("Desktop");
display.setCursor(38,40);
display.setTextSize(2);
display.println("Clock");
display.display();
display.display();
delay(1500);
display.clearDisplay();
}
void loop() {
DateTime now = RTC.now(); //Asign real time
display.clearDisplay();
float T = dht.readTemperature(); //Read temperature
float P = dht.readHumidity(); //Read humidity
//Display the clock
display.setTextSize(2);
display.setTextColor(WHITE,BLACK);
display.setCursor(20,25);
display.print(now.hour(), DEC);
display.print(":");
display.print(now.minute(), DEC);
display.print(":");
display.print(now.second(), DEC);
display.setTextSize(1);
display.setTextColor(WHITE,BLACK);
display.setCursor(35,50);
display.print(now.day(), DEC);
display.print('/');
display.print(now.month(), DEC);
display.print('/');
display.print(now.year(), DEC);
//Display weather properties
display.setCursor(0,0);
display.setTextColor(WHITE);
display.setTextSize(1);
display.print("Temp");
display.setCursor(0,10);
display.print(T,1);
display.setCursor(28,10);
display.setTextSize(1);
display.print("C");
display.setTextSize(1);
display.setCursor(65,0);
display.print("Humid");
display.setCursor(65,10);
display.print(P);
display.setCursor(100,10);
display.print("%");
display.display();
}