From 4132e34153f3b580aa15b3d492e289f1cb184ba5 Mon Sep 17 00:00:00 2001 From: sieja Date: Mon, 10 Feb 2025 21:37:48 +0100 Subject: [PATCH] =?UTF-8?q?Temperature=20logger=20-=20wy=C5=9Bwietlacz=20-?= =?UTF-8?q?=20odczyt=20temepratury=20-=20RTC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TempHumLoggerHomeKit.ino | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino diff --git a/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino b/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino new file mode 100644 index 0000000..595f5aa --- /dev/null +++ b/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino @@ -0,0 +1,159 @@ +#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(); + + +}