Temperature logger

- wyświetlacz
- odczyt temepratury
- RTC
This commit is contained in:
sieja
2025-02-10 21:37:48 +01:00
parent c5a65790cb
commit 4132e34153

View File

@@ -0,0 +1,159 @@
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#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();
}