Projekt: Temperatur-Messsystem - Überblick über das System


Aktuelle Module
Veraltete Module
Menübild

Messsystem-Bild Dieses Messsystem dient zur Erfassung von Sensordaten sowie deren Verarbeitung und Anzeige. Dafür stehen mehrere Module zur Verfügung, die unterschiedliche Aufgaben haben. Eine ältere Modul-Generation arbeitet noch mit einer drahtgebundenen RS-232-Schnittstelle und kann nur eine begrenzte Anzahl an Sensoren verwalten. Neuere Module setzen auf eine IP-Kommunikation und verwenden WLAN und MQTT zur Übertragung der Informationen. Während die älteren Module mit AVR-Mikrocontrollern aufgebaut sind, verwenden die neuen Module einen Raspberry Pi oder Mikrocontroller mit WLAN-Funktion.

Letzte Bearbeitung: 07.01.2024

Symbol Überblick über das System

Dieses Messsystem bestand ursprünglich aus relativ einfachen Modulen, die nur 8 Temperatursensoren verwalten konnten und eine zweidrähtige Leitung für die Übertragung der Daten mittels RS-232 benötigten. Später wurden die Module komplexer und ermöglichten den Betrieb von bis zu 24 Temperatursensoren, 3 Luftfeuchtigkeitssensoren und einem Luftdrucksensor. Trotzdem blieb die drahtgebundene Kommunikation lange Zeit die einzige Verbindungsmöglichkeit zwischen den Modulen. Mit der Entwicklung des Web-Moduls auf der Basis eines Raspberry Pi entstand eine Brücke in die IP-Welt und ermöglichte die Übermittlung der Daten über das vorhandene Heimnetz. Inzwischen gibt es viele Module der neuen Generation, so dass weder für die Ermittlung der Sensordaten noch für die Anzeige und Verarbeitung eine Leitung für die Übertragung benötigt wird. Hier wird die gesamte Kommunikation über WLAN und MQTT abgewickelt.

Grundsätzlich bleiben alle bisher entwickelten Module auch weiterhin auf dieser Seite verfügbar und können auch zukünftig verwendet werden. Es gibt allerdings Einschränkungen: Sensordaten von den neueren Modulen können nicht auf den älteren angezeigt werden.

Sensormodul 1 Sensormodul 2/3 Anzeigemodul 1 Anzeigemodul 2 Anzeigemodul 2a Anzeigemodul 3 Anzeigemodul 4 Web-Modul WLAN-Modul WLAN-Modul Kommunikation AnzKom TAnz Matrixuhr Matrixuhr-ESP32 Übersicht Das nebenstehende Bild zeigt den prinzipiellen Aufbau des Messsystems. Da die komplette Beschreibung dieses Projektes sehr umfangreich ist, habe ich sie in mehrere Kapitel aufgeteilt. Durch einen Klick auf eines der Elemente gelangt man zur entsprechenden Kurzbeschreibung der Komponente und dort wiederum kann durch Klick auf das Bild oder die Überschrift zum gewünschten Kapitel gesprungen werden. Auf jeder Kapitel-Seite befindet sich zusätzlich noch ein Menü für eine schnelle Navigation durch die einzelnen Modulbeschreibungen.

SymbolSensormodul 1

Sensormodul 1 Dieses Modul besteht im Kern aus einem ATmega8, welcher insgesamt 8 1-Wire-Busse zur Verfügung stellt, die mit maximal 16 Temperatursensoren beschaltet werden können. Die ermittelten Messdaten werden auf eine Auflösung von 0,1°C gebracht, ins ASCII-Format gewandelt und mithilfe eines MAX232 per RS-232 zu Anzeigemodulen oder PCs gesendet. Außerdem stehen noch 4 Alarmeingänge zur Verfügung, die z.B. mit Tür-Kontakten beschaltet werden können. Der Alarmzustand der 4 Eingänge wird ebenfalls per RS-232 ausgegeben und kann von den Anzeigemodulen oder vom PC ausgewertet werden. Dieses Sensormodul kann optional mit einem kleinen I²C Spezial-LCD ausgestattet werden, so dass man die Aktivitäten des Moduls beobachten kann. Es ist aber auch ein Betrieb ohne LCD möglich.

Hinweis: Dieses Modul wird nicht weiterentwickelt. Ich empfehle den Aufbau des Sensormoduls 3 bzw. den Umbau zum Sensormodul 3.

SymbolSensormodul 2, Sensormodul 3

Sensormodul 2/3 Das Sensormodul 2 stellt eine verbesserte Version des Sensormoduls 1 dar. Es ist sowohl mit seinen Anschlüssen als auch mit den Sendedaten vollständig kompatibel zum Sensormodul 1. Auch dieses Modul arbeitet mit 8 1-Wire-Bussen und stellt 4 Alarmeingänge zur Verfügung. Das Sensormodul 2 bietet aber mehr Möglichkeiten: Hier können mit der aktuellen Software insgesamt 24 Temperatursensoren und 3 Luftfeuchtigkeitssensoren angeschlossen werden. Weiterhin bietet ein Standard-LCD mit 4x20 Zeichen einen guten Überblick über die ermittelten Sensordaten und Alarme. Mit einem Taster können verschiedene Anzeigen ausgewählt werden und es lassen sich einige Einstellungen vornehmen.

Das Sensormodul 3 erlaubt durch eine kleine Hardware-Modifikation gegenüber dem Sensormodul 2 den zusätzlichen Anschluss eines Luftdrucksensors direkt auf dem Modul. Alle weiteren Funktionen sind hier identisch zum Sensormodul 2.

SymbolAnzeigemodul 1

Anzeigemodul 1 Dieses kleine Anzeigemodul ermöglicht die ständige Anzeige von bis zu 8 Sensorwerten auf einem Standard-LCD mit 4x20 Zeichen. Die gesamte Steuerung übernimmt hier ein ATtiny4313. Es können alle vom Sensormodul 2 oder 3 gesendeten Sensorwerte angezeigt werden, bei der Konfiguration kann man die gewünschten Sensoren festlegen. Neben der Anzeige von 8 Sensoren mit kurzen Namen (4 Zeichen) besteht auch die Möglichkeit, 4 Sensoren mit einem langen Namen (14 Zeichen) darzustellen. Bei Temperatursensoren kann zusätzlich ein oberer und ein unterer Grenzwert festgelegt werden. Bei dessen Über- oder Unterschreitung ertönt ein kurzes Tonsignal und ein Symbol hinter dem betroffenen Temperaturwert beginnt zu blinken. Wird ein Alarm an den 4 Eingängen des Sensormoduls erkannt, dann erfolgt die Signalisierung über eine rote LED und einen Signalton. Zusätzlich werden die aktiven Alarme im Wechsel mit den Sensorwerten auf der untersten Zeile im Klartext angezeigt. Mit einem Taster kann die Alarmanzeige vorübergehend abgeschaltet werden. Falls die Datenverbindung zwischen Sensor- und Anzeigemodul ausfällt, dann wird dies entsprechend signalisiert. Auch der Ausfall eines einzelnen Sensors wird angezeigt.

Hinweis: Dieses Modul wird nicht weiterentwickelt. Als Alternative wird das WLAN-Modul empfohlen.

Alle Eigenschaften in Stichpunkten:

SymbolAnzeigemodul 2

Anzeigemodul 2 Dieses Modul stellt den großen Bruder des oben beschriebenen Anzeigemoduls 1 dar. Es arbeitet mit einem ATmega128 und kann 16 Temperaturen und 4 Alarme gleichzeitig auf einem grafischen Display mit 240x128 Pixeln anzeigen. Auch bei diesem Modul können Grenzwerte eingestellt werden, die bei Über- oder Unterschreitung zu einer Alarmmeldung führen. Zusätzlich werden die aufgetretenen Temperaturmeldungen durch Markierungen angezeigt und in einem Meldungs-Log mit Datum und Uhrzeit festgehalten. Gleiches gilt für die Meldungen der 4 Alarmeingänge des Sensormoduls. Über eine Menüsteuerung können Minimalwerte, Maximalwerte und alle aufgetretenen Meldungen angezeigt werden; weiterhin lassen sich alle gespeicherten Temperaturdaten über eine konfigurierbare Grafik-Anzeige darstellen. Die gesamte Konfiguration des Anzeigemoduls erfolgt über eine Menüführung direkt am Gerät.

Hinweis: Dieses Modul wird nicht weiterentwickelt. Ich empfehle einen Umbau zum Anzeigemodul 2a, was mit relativ wenig Aufwand möglich ist.

Alle Eigenschaften in Stichpunkten:

SymbolAnzeigemodul 2a

Anzeigemodul 2a Dieses Modul ist eine Weiterentwicklung des Anzeigemoduls 2. Die Schaltung ist grundsätzlich gleich geblieben, allerdings wurde der EEPROM-Speicher erweitert, um alle Sensordaten in einem angemessenen Zeitraum speichern zu können. Weiterhin wurden Schaltungsdetails ein wenig optimiert und ein anderes Bluetooth-Modul verwendet. Ein bereits vorhandenes Anzeigemodul 2 kann durch Aufrüstung des Speichers relativ einfach zum Anzeigemodul 2a umgebaut werden.

Das Anzeigemodul 2a arbeitet mit einem ATmega128 und kann alle Daten der Sensormodule (27 Temperaturen, 3 Luftfeuchtigkeitswerte, den Luftdruck sowie 4 Alarme) auf einem grafischen Display mit 240x128 Pixeln anzeigen. Die insgesamt 31 Sensorwerte und eine Minigrafik mit dem Luftdruckverlauf können beliebig auf 2 Display-Seiten angeordnet werden, wobei maximal 16 Sensorwerte auf einer Display-Seite darstellbar sind. Auch bei diesem Modul können Grenzwerte für Temperatursensoren eingestellt werden, die bei Über- oder Unterschreitung zu einer Alarmmeldung führen. Diese werden auf dem Display angezeigt und außerdem in einem Meldungs-Log mit Datum und Uhrzeit festgehalten. Auch Meldungen von den 4 Alarmeingängen des Sensormoduls und andere Störungen werden in diesem Log erfasst. Über eine Menüsteuerung können Minimalwerte, Maximalwerte und alle aufgetretenen Meldungen angezeigt werden. Weiterhin lassen sich alle gespeicherten Sensordaten über eine konfigurierbare Grafik-Anzeige in Diagrammform darstellen. Die gesamte Konfiguration des Anzeigemoduls erfolgt über eine Menüführung direkt am Gerät.

Alle Eigenschaften in Stichpunkten:

SymbolAnzeigemodul 3

Anzeigemodul 3 Dieses Anzeigemodul ist für eine ständige und gut sichtbare Anzeige von bis zu 4 Sensorwerten gedacht und technisch gesehen relativ einfach aufgebaut. Im Gegensatz zu den Anzeigemodulen 1, 2 oder 2a ist dieses mit einer LED-Anzeige ausgestattet. Zwei Schaltungsvarianten ermöglichen die Verwendung von praktisch allen LED-Typen und -Größen. Die beiden Anzeige-Zeilen können wahlweise einen einzelnen Sensorwert oder zwei Sensorwerte im Wechsel anzeigen, z.B. die Temperatur und die Luftfeuchtigkeit eines Raumes. Wahlweise lässt sich das Modul auf eine einzige Anzeige-Zeile vereinfachen. Weiterhin kann die Anzeige von Alarmen aktiviert werden und anstehende Alarme werden dann im Wechsel mit dem ersten Sensorwert angezeigt. Eine akustische Signalisierung ist jedoch nicht vorgesehen. Die Helligkeit der Anzeige wird mithilfe eines Lichtsensors an die Umgebung angepasst. Außer einem Taster zur Konfiguration sind keine weiteren Bedienelemente vorhanden.

Alle Eigenschaften in Stichpunkten:

SymbolAnzeigemodul 4

Anzeigemodul 4 Das Anzeigemodul 4 ermöglicht eine flexible Anzeige der Sensordaten und Alarme des Temperatur-Messsystems. Aber nicht nur das: Es können auch viele zusätzliche Informationen angezeigt werden, die aus anderen Quellen stammen können, z.B. Wetterdaten, Kraftstoffpreise oder Termine. Das Anzeigemodul 4 besteht im Kern aus einem Raspberry Pi, an dem ein Touchscreen-Display angeschlossen ist. Auf dem Raspberry Pi (Modell 3 oder 4) läuft das empfohlene Raspberry Pi OS mit Desktop. Die Verbindung zu anderen Komponenten des Temperatur-Messsystems erfolgt über WLAN und für die Datenkommunikation wird das MQTT-Protokoll verwendet. Eine Voraussetzung für den Betrieb des Anzeigemoduls 4 ist ein Web-Modul mit MQTT-Server. Allerdings ist es möglich, die Funktionalität des Web-Moduls in das Anzeigemodul 4 zu integrieren. Für die Anzeige der Informationen wird Node-RED verwendet, welches die über MQTT empfangenen Daten für die Anzeige aufbereitet und außerdem die über den Touchscreen ausgelösten Ereignisse über MQTT sendet. Zur Anzeige der Informationen wird der im System installierte Chromium-Browser verwendet, der in einem speziellen Kiosk-Modus betrieben wird. Dabei wird nur der Inhalt des Browser-Fensters angezeigt und man sieht praktisch nur noch das Node-RED-Dashboard auf dem Display.

Das Anzeigemodul 4 gibt es in 2 Varianten. Die große Variante verwendet ein 8-Zoll-Display (20,3cm), welches über HDMI an den Raspberry Pi angeschlossen wird. Diese Variante ist technisch etwas aufwändiger und enthält eine zusätzliche Mikrocontroller-Schaltung. Diese sorgt für eine automatische Abschaltung des Displays und des Touchscreen-Controllers bei Dunkelheit. Die kleine Variante verwendet ein 3,5-Zoll-Display (8,9cm), welches direkt auf die GPIO-Anschlüsse des Raspberry Pi aufgesteckt wird. Diese Variante ist sehr einfach aufgebaut und besitzt keine Möglichkeit zur Abschaltung von Display und Touchscreen.

SymbolWeb-Modul

Web-Modul Das Web-Modul ermöglicht die Anzeige der Sensordaten und Alarme des Temperatur-Messsystems über einen Web-Browser. Dafür stehen 2 verschiedene Anwendungen zur Verfügung. Es gibt eine klassische Ansicht, die von einem Web-Server bereitgestellt wird und eine etwas neuere Ansicht (nebenstehendes Bild), die im Jahr 2020 integriert wurde und von Node-RED erzeugt wird.

Bei der klassischen Ansicht werden aktuelle Sensorwerte nicht nur angezeigt, sondern auch bewertet. So kann für jeden Sensor ein unterer und ein oberer Grenzwert definiert werden und bei Unter- bzw. Überschreitung wird der Sensorwert rot angezeigt. Auch ein Sensorausfall wird registriert und entsprechend angezeigt. Weiterhin steht ein Speicher zur Verfügung, der alle Sensordaten 10 Jahre lang aufbewahren kann. Die grafische Anzeige greift auf diese Datenbank zurück und kann somit Diagramme über große Zeiträume darstellen. Die Anzeige der Alarme ist ebenfalls möglich und je nach Zustand erscheint der Alarmstatus farbig. Weiterhin kann ein Alarm-Log mit bis zu 100 Ereignissen angezeigt werden. Eine weitere Seite dient zur Konfiguration des Web-Moduls und auch die Auslastung des Web-Servers sowie des Linux-Systems lässt sich über jeweils eine Seite anzeigen.

Die neuere Ansicht über Node-RED ermöglicht die Anzeige von Sensorwerten als virtuelle Anzeigeinstrumente, wobei auch hier Grenzwerte definiert werden können. Grafische Kurvenverläufe können ebenfalls angezeigt werden, allerdings nur über einen begrenzten Zeitraum. Die Anzeige von Alarmen erfolgt in Textform, anstatt eines Alarm-Logs lässt sich hier eine grafische Historie einrichten. Eine Anzeige der Systemauslastung wurde ebenfalls realisiert. Grundsätzlich ermöglicht Node-RED nicht nur die sehr flexible Anzeige von Sensorwerten, Diagrammen und Alarmen, sondern kann auch durch Verknüpfung von Daten und Ereignissen Schaltvorgänge auslösen. Letzteres wird zwar zurzeit nicht genutzt, kann aber zukünftig zu einer Haussteuerung ausgebaut werden. Auch ist es möglich, Daten anzuzeigen, die nicht vom Temperatur-Messsystems stammen.

Alle im heimischen LAN oder WLAN angeschlossenen Geräte können auf beide Anzeigen des Web-Moduls zugreifen und bei entsprechender Konfiguration des Routers ist sogar ein weltweiter Zugriff möglich. Dieses Projekt unterscheidet sich von den meisten anderen Projekten dieser Seite dadurch, dass hier weitgehend fertige Hardware zum Einsatz kommt und zwar in Form eines Raspberry Pi. Dieser hat praktisch alle benötigten Hardware-Komponenten an Bord und benötigt nur einen einfachen Pegelwandler zum Einlesen der Sensor- und Alarm-Daten vom Sensormodul. Weiterhin besteht die Möglichkeit, über einen erweiterten Pegelwandler eine Matrixuhr mit Daten zu versorgen.

SymbolWLAN-Modul

WLAN-Modul Das WLAN-Modul kann als Sensormodul, als Anzeigemodul oder auch für beide Funktionen gleichzeitig verwendet werden. Das Modul lässt sich als eigenständiges Gerät betreiben, aber selbstverständlich auch mit dem Web-Modul des Temperatur-Messsystems verbinden. Dabei erfolgt die gesamte Datenkommunikation über WLAN unter Verwendung des MQTT-Protokolls. Zusätzlich läuft auch ein Web-Server auf dem Modul, mit dem die Sensorwerte angezeigt werden können und über den auch die gesamte Konfiguration erfolgt. Die Basis des WLAN-Moduls besteht aus einem WEMOS D1 mini Board, auf dem sich der Mikrocontroller ESP8266 mit WLAN-Antenne, 4MB Flash-Speicher und ein USB-Chip CH340 mit Micro-USB-Anschluss befindet. Über diesen USB-Anschluss kann die Software für den ESP8266 installiert werden und auch die Stromversorgung lässt sich hier anschließen.

Für das WLAN-Modul habe ich allerdings keine eigene Software entwickelt und das hat 2 Gründe: Zum einen ist Software für die Netzwerk-Kommunikation sehr komplex und zum anderen gibt es bereits fertige Software, die von einem größeren Team erstellt wird und sehr ausgereift ist. Ich habe mich hier für die Software ESP Easy entschieden, die von der Gruppe Let's Control It entwickelt und gepflegt wird. Die Software ist neben fertigen BIN-Dateien für verschiedene Mikrocontroller-Boards auch als Quelltext (open source) verfügbar. Damit besteht die Möglichkeit, die Software zu modifizieren und zusätzliche Funktionen einzubauen.

Die Schaltung des WLAN-Moduls ist im Vergleich zu den älteren Sensor- und Anzeigemodulen wesentlich einfacher, kompakter und trotzdem leistungsfähiger. Es können bessere Sensoren verwendet werden, insbesondere für die Messung von Luftfeuchtigkeit und Luftdruck. Und es ist möglich, genauere Werte zu ermitteln, wobei für jeden einzelnen Sensorwert die Anzahl der Stellen nach dem Komma auf 0, 1 oder 2 festgelegt werden kann. Weiterhin lässt sich für jeden Sensor ein Korrekturwert eingeben und bei Luftdrucksensoren wird durch Eingabe der Höhe ein auf Meereshöhe normierter Luftdruckwert gesendet. Dass die gesamte Konfiguration bequem über eine Web-Oberfläche erledigt werden kann, wurde bereits erwähnt. Weiterhin ist es möglich, neue Software über die Web-Oberfläche zu installieren (OTA-Update) und auch die Konfiguration kann hier gesichert und wiederhergestellt werden.

SymbolDatenkommunikation

Datenkommunikation In diesem Kapitel wird beschrieben, wie die Kommunikation zwischen den Komponenten des Systems erfolgt. Diese Informationen können beim Aufbau eines größeren Messsystems hilfreich sein und ermöglichen außerdem die Entwicklung eigener Komponenten. Alle Komponenten waren ursprünglich nur für eine kabelgebundene Kommunikation vorgesehen, aber es ist auch eine drahtlose Kommunikation möglich. Hier wird beschrieben, wie man die Komponenten des Messsystems mit XBee-Funkmodulen ausrüstet und richtig konfiguriert.

SymbolSoftware „TAnz“

Software TAnz Dieses Kapitel stellt die von Michael Bodag entwickelte Software „TAnz“ (Temperatur-Anzeige) vor, welche die übersichtliche Anzeige der eingehenden Temperatur- und Alarmmeldungen ermöglicht. Für diesen Zweck wird das Sensormodul mit einem PC verbunden - entweder direkt über RS-232 oder über USB mit einem entsprechenden Wandler, alternativ auch über eine Funkverbindung. Neben der aktuellen Anzeige der eingehenden Daten ist auch eine Aufzeichnung der Daten in Form von Log-Files möglich, wobei die Log-Intervalle frei gewählt werden können.

Hinweis: „TAnz“ kann nicht mit allen Daten des Sensormoduls 2 oder 3 umgehen, es ist nur die Anzeige und Aufzeichnung der 16 Temperatursensoren 1-8 und a-h möglich.

Alle Eigenschaften in Stichpunkten:

SymbolSoftware „AnzKom“

Software AnzKom In diesem Kapitel wird die Software „AnzKom“ (Anzeigemodul-Kommunikation) vorgestellt, welche zur komfortablen Daten-Kommunikation mit dem Anzeigemodul 2a bestimmt ist. Mithilfe von „AnzKom“ lassen sich die gesammelten Daten des Anzeigemoduls 2a auslesen und in einer Datenbasis speichern. Die Sensordaten können dann grafisch oder in Listenform dargestellt werden, wobei bis zu 4 Graphen oder 5 Listen gleichzeitig betrachtet werden können. Meldungsdaten werden in Listenform angezeigt und können gefiltert werden. Weiterhin ist es möglich, Bildschirmfotos vom Display des Anzeigemoduls 2a zu erstellen.

Alle Eigenschaften in Stichpunkten: