Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
Komponenten und Zubehör
| Arduino Due | × | 1 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Einführung
Hallo! Ich bin Nick von educ8s.tv. Heute bauen wir eine Echtzeituhr mit Temperaturüberwachung. Oben sehen wir Datum und Uhrzeit, aktuelle Temperatur, unten Min/Max-Temperatur. Einfache UI mit einfachen Formen. Alles funktioniert prima – ein einfaches, nützliches Projekt. Los geht’s!
Schritt 1: Teile besorgen
- Arduino Due
- 3,2″ Color TFT Display
- DS3231 RTC-Modul
- Pinheader (Male)
- Kabel
Kosten ca. 24 $: Due ~14 $, Display ~8 $, RTC ~2 $.
Schritt 2: DS3231 Echtzeituhr-Modul
Der DS3231 ist ein kostengünstiger, extrem präziser I²C-Echtzeitkalender mit temperaturkompensiertem Quarzoszillator (TCXO) und integriertem Quarz. Batteriepufferung hält die Zeit bei Stromausfall jahrelang (minimaler Verbrauch).
Funktionen: Sekunden, Minuten, Stunden, Tag, Datum, Monat, Jahr. Automatische Monatsendenkorrektur (auch Schaltjahre). 24h/12h-Format mit AM/PM. Zwei programmierbare Alarme, programmierbarer Rechteckausgang. I²C-Bidirektionalbus.
Modul kostet ~2 $ inkl. Batterie!
Wir nutzen es für Zeitmessung UND Temperaturmessung (interner Sensor).
Schritt 3: 3,2″ Color TFT Display (HX8357C oder HX8357B)
Ich wollte immer ein großes Display für Arduino-Projekte. Dieser 3,2″ TFT für Mega/Due war preislich unschlagbar (< 10 $). Auflösung 480×320 Pixel, SD-Kartenslot auf der Rückseite (bisher ungenutzt). 3,3 V-Regler onboard → funktioniert mit 5 V und 3,3 V Logik.
Zwei Varianten: HX8357C oder HX8357B Controller. Dieselbe Bibliothek für beide.
Display-Bibliothek: GitHub Bodmer/TFT_HX8357_Due
Nach Download: User_Setup.h öffnen, Zeile 13 auskommentieren, Zeile 14 einkommentieren (falls HX8357C, wie bei mir).
Schritt 4: Teile verbinden
Ich nutze Arduino Due (schneller, mehr RAM als Mega).
RTC-Modul: 4 Pinheader (2× Strom, 2× I²C). Gebogen: 3,3 V, GND, SDA, SCL an Due. Mit Female-Kabeln verbinden. Fertig.
Display aufstecken (2 Pins bleiben frei).
Strom an → läuft!
Schritt 5: Projektcode
Zwei Bibliotheken nötig:
- Display Library (s.o.)
- DS3231 Library: GitHub SodaqMoja/Sodaq_DS3231
Installieren → Projekt kompiliert.
Zuerst Uhrzeit im RTC setzen (falls nicht schon geschehen). In setRTCTime() aktuelles Datum/Zeit eintragen:
void setRTCTime() {
DateTime dt(2016, 4, 4, 13, 56, 30, 1); // Jahr, Monat, Tag, Std, Min, Sek, Wochentag
rtc.setDateTime(dt);
}
Aufruf in setup() einkommentieren, hochladen. Zeit gesetzt. Dann Aufruf wieder auskommentieren und erneut hochladen.
void setup() {
rtc.begin();
tft.init();
tft.setRotation(1);
tft.fillScreen(0xC618);
delay(100);
printUI();
// setRTCTime(); // AUSKOMMENTIERT nach erstem Setzen
}
Code ist simpel: UI zeichnen, dann Datum, Zeit, Temperatur anzeigen.
void loop() {
float temperature = rtc.getTemperature();
getAndPrintTime();
printTemperature(temperature);
if (temperature > maxTemperature) {
maxTemperature = temperature;
updateMaxTemperature();
}
if (temperature < minTemperature) {
minTemperature = temperature;
updateMinTemperature();
}
delay(1000);
}
Vollständiger Code: educ8s.tv Projektseite oder Download DueRTC.ino.
Schritt 6: Fazit & Ausblick
Mit wenig Code und niedrigem Budget ein nützliches Gerät. Ich werde es zur fortgeschrittenen Wetterstation ausbauen (mehr Sensoren, Graphen, WiFi). Arduino Due ist ideal: schnell, viel Speicher. Was denken Sie? Wie soll es weitergehen? Kommentare willkommen!
Code
Code-Schnipsel
void setup() {
rtc.begin();
tft.init();
tft.setRotation(1);
tft.fillScreen(0xC618);
delay(100);
printUI();
setRTCTime();
}
void setup() {
rtc.begin();
tft.init();
tft.setRotation(1);
tft.fillScreen(0xC618);
delay(100);
printUI();
// setRTCTime();
}
void loop() {
float temperature = rtc.getTemperature();
getAndPrintTime();
printTemperature(temperature);
if (temperature > maxTemperature) {
maxTemperature = temperature;
updateMaxTemperature();
}
if (temperature < minTemperature) {
minTemperature = temperature;
updateMinTemperature();
}
delay(1000);
}
GitHub Repositories
- Display Library: Bodmer/TFT_HX8357_Due
- DS3231 Library: SodaqMoja/Sodaq_DS3231
Herstellungsprozess
- Sensor-gesteuerte Audio-Effekte mit dem Satellite CCRMA Kit bauen
- Arduino Echtzeituhr für islamische Gebetszeiten bauen
- Präzisions-Wortuhr: Minuten-genaue Zeitanzeige in Worten
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- TM1637 Digitaluhr mit Zeiteinstellung & Alarm – Arduino Nano Prototyp
- DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
- BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen
- Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen