
Dieses Jahr war ein fantastisches Obst-Jahr. Da wir die Äpfel von unseren zwei Apfelbäumchen nicht alle aufessen oder sofort verarbeiten konnten, wurden sie zuerst im Freien in Körben unter einigen Lagen Vlies gelagert, später, als es kälter wurde, zogen die Körbe in die Garage um. Dann wurde es noch kälter, nachts haben wir draußen Temperaturen um den Nullpunkt gemessen, und wir machten uns Sorgen um die Äpfel in der Garage. Angaben zu Lagertemperaturen zwischen 3° C und 8° C findet man im Netz, aber das nutzt alles nichts, wenn man keinen blassen Schimmer hat, wie kalt es nachts in der Garage tatsächlich wird.
Für die Steuerung eines Lüfters habe ich vor einiger Zeit mal eine Minimallösung gebaut, basierend auf einem ESP-01, ausgestattet mit einem OLED-Display und einer FET-Schaltstufe für den Lüfter, aufgebaut auf einer dafür entworfenen Platine. Für den Betrieb an einem USB-Netzteil war noch ein StepDown Schaltregler vorgesehen, die Temperatur wird mit einem DS18B20 erfasst, die Parameter für die Kontrolle des Lüfters werden über eine WEB GUI eingestellt.
Dieses Konstrukt habe ich als Ausgangspunkt für das geplante Min-/Max-Thermometer hergenommen, die Parametereingaben für Schaltschwelle, Hysterese usw. auskommentiert, dafür die Fähigkeit zur Aktualisierung der Firmware per OTA (Over The Air, also drahtlos über WLAN) eingebaut.
Abweichend von der ursprünglichen Implementierung mit einem ESP-01 habe ich für das Min-/Max-Thermometer einen Wemos D1 R2 herangezogen, diesen auf ein kleines Steckbrett montiert und mit drei Jumper-Drähten die Verbindung zum Temperaturfühler hergestellt. Versorgt wird das Gerät über ein USB-Netzteil, einfach und übersichtlich.

Nicht vergessen darf man den PullUp für die Datenleitung des Sensors, ich habe einen bedrahteten 4,7 kΩ Widerstand benutzt.

Der Rest ist Software.
Aus meiner Zeit bei der Bundeswehr hat sich bis heute der Gedanke herübergerettet, dass sich die niedrigste Temperatur in der Nacht zwischen 4 und 5 Uhr einstellt.
Bei einem ESP8266 basierten Gerät drängt sich natürlich sofort der Gedanke auf, diese Aussage mittels Messung zu belegen. Nichts leichter als das... Neben der Funktionalität Temperaturen zu messen, bekommt das Gerät einen NTP-Zugang implementiert, kann so also zu den Temperaturen für Minimum und Maximum noch die zugehörige Uhrzeit aufnehmen.
Im Browser wird die aktuelle Temperatur sowie Minimum und Maximum mit der zugehörigen Uhrzeit angezeigt.

Damit gewinne ich bestimmt keinen Preis für ausgefuchstes Design, aber die Funktion ist einwandfrei erfüllt - mission accomplished :)
Für Interessierte hier die Firmware in einem ZIP.
Update
Ein weiterer Einsatzfall, der sich jetzt aufgetan hat, ist die Überwachung unserer Heizung
, genauer der beiden Temperaturen im Vorlauf und im Rücklauf des Heizkreises. Das, zusammen mit der Außentemperatur und der Temperatur in einem abgeschlossenen
Zimmer mit voll aufgedrehtem Heizkörper, soll nach Auskunft unseres Heizungsinstallateurs die Grundlage für die Abstimmung der Heizungskennlinie (ihr wisst
schon, Fußpunkt und Steigung :) ergeben. Abgeschlossen heißt hier nicht, Tür zu und Schlüssel drehen, sondern nur Tür zu, damit kein unerwünschter Luftaustausch stattfindet.
Die erste Maßnahme ist also, den Code auf zwei DS18B20 Messstellen zu erweitern, die natürlich auch in der WEB GUI angezeigt werden müssen. Dazu muss die WEB GUI aufgebohrt werden... Dieses Unterfangen ist etwas aufwändiger, denn der HTML Code wird im Programm zeilenweise zusammengestückelt und dann an den Browser geschickt.
Nimmt man jetzt noch unterschiedlich lange Thermometernamen dazu, schreit das geradezu nach einem responsiven Design, das sich automatisch an den anzuzeigenden Inhalt anpasst. Da ich in dieser Richtung bisher nur begrenztes Wissen angehäuft habe, habe ich mir von Gemini helfen lassen. Herausgekommen ist dieses Layout:

Deutlich aufgehübscht, meine ich :)
Da eh schon die Zeit bei den Minima und Maxima mitgeführt wird, zeige ich links unten auch noch die aktuelle Uhrzeit an.
Der einfache Zimmerthermometer bekommt natürlich ebenfalls das neuen Design verpasst.

Und weil ich gerade so schön am Entwickeln bin, bekommen die Anzeigen auch gleich noch ein passendes Favicon spendiert.
Im Zuge der Erweiterung auf zwei Messstellen habe ich Favicons sowohl für das Einzelthermometer als auch für das Doppelthermometer erstellt.
![]()
Den universellen Code für beide Thermometervarianten stelle ich zur Verfügung. In der verlinkten ZIP-Datei befinden sich zusätzlich die beiden Dateien für die Nutzung eines OLED-Display (ist im Code vorhanden aber auskommentiert) sowie die beiden Header -Dateien mit den oben angegebenen Favicons.
Welche Variante erstellt wird, wird per Defines im oberen Teil des Code festgelegt. Hier müssen auch die Credentials für den WLAN-Zugang eingetragen werden. Die Version ist ebenfalls ein Define, das Build-Datum wird automatisch erzeugt und in der Fußzeile eingetragen.