#include #include #include #include #include "DHT.h" #include "RTClib.h" #define Version "rtc: 0.7" #define WIRE Wire #define DHTTYPE DHT22 #define DHTPIN 4 Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &WIRE); DHT dht(DHTPIN, DHTTYPE); RTC_DS3231 rtc; // Obiekt dla DS3231 float hum; float temp; float heat_idx; int mins; int secs; int hourss; int dayss; int months; int years; char dateString[21]; void setup() { Serial.begin(115200); Wire.begin(21, 22); if (!rtc.begin()) { Serial.println("Nie znaleziono DS3231 RTC!"); while (1); // Zatrzymaj program, jeśli RTC nie jest dostępny } //Ustawianie daty i godziny: // rtc.adjust(DateTime(2025, 2, 10, 20, 35, 30)); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32 display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.clearDisplay(); display.println("Version:"); display.setCursor(0, 8); display.println(Version); display.setCursor(0, 16); display.println("DHT22"); display.setCursor(0, 24); display.println("RTC: DS3231"); display.display(); delay(1000); dht.begin(); } void loop() { delay(1000); hum = dht.readHumidity(); temp = dht.readTemperature(); // Compute heat index in Celsius (isFahreheit = false) heat_idx = dht.computeHeatIndex(temp, hum, false); //HUM&TEMP //######################################### display.clearDisplay(); display.setCursor(0,0); display.println("Hum:"); display.setCursor(60,0); display.println(hum); display.setCursor(95,0); display.println("%"); display.setCursor(0,8); display.println("Temp:"); display.setCursor(60,8); display.println(temp); display.setCursor(95,8); display.println("C"); display.setCursor(0,16); display.println("Temp idx:"); display.setCursor(60,16); display.println(heat_idx); display.setCursor(95,16); display.println("C"); //dla indexu: Caution: > 27*C // Extreme Caution: > 32 *C // Danger: > 40 *C // Extreme Danger: > 52 *C //######################################### DateTime now = rtc.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); years = now.year(); months = now.month(); dayss = now.day(); hourss = now.hour(); mins = now.minute(); secs = now.second(); // display.setCursor(0,24); // display.println(dayss); // display.setCursor(13,24); // display.println("-"); //display.setCursor(20,24); //display.println(months); //display.setCursor(31,24); //display.println("-"); //display.setCursor(38,24); //display.println(years); // // // display.setCursor(75,24); // display.println(hourss); // display.setCursor(86,24); // display.println(":"); // display.setCursor(92,24); // display.println(mins); // display.setCursor(104,24); // display.println(":"); // display.setCursor(109,24); // display.println(secs); sprintf(dateString, "%02d/%02d/%4d %02d:%02d:%02d", now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second()); display.setCursor(0,24); display.println(dateString); display.display(); yield(); }