Klimakontrollsystem – Modul eins – liest Temperaturen, Luftdruck, Luftfeuchtigkeit und zeigt sie auf einem TFT-Display oder HDMI-Bildschirm an.

Zusammenbau der Hardware, Sensoren und Anzeigen zur Präsentation. In meinem Projekt habe ich verschiedene Modelle von Raspberry Pi, unterschiedliche Bildschirme und verschiedene Sensoren verwendet. Hier stelle ich Ihnen den Code und Installationsanweisungen für verschiedene Setups

Zusammenbau der Hardware, Sensoren und Anzeigen zur Präsentation.

In meinem Projekt habe ich verschiedene Modelle von Raspberry Pi, unterschiedliche Bildschirme und verschiedene Sensoren verwendet. Hier stelle ich Ihnen den Code und Installationsanweisungen für verschiedene Setups zur Verfügung, damit Sie die Freiheit haben, verschiedene Hardware zu wählen, bevor Sie sie kaufen, oder Setups basierend auf der Hardware auszuwählen, die Sie bereits haben.

Mein Code ist für verschiedene Räume auf verschiedenen Raspberry Pi-Geräten ausgelegt. Darüber hinaus habe ich verschiedene Sensoren und entweder TFT- oder HDMI-Bildschirme verwendet und verschiedene Methoden angewendet, um die Informationen auf dem Raspberry Pi anzuzeigen (wie Framebuffer-Bildschirme, TFT-Treiber in Python oder eine einfache HDMI-Ausgabeanwendung für Temperaturwerte). Für Bequemlichkeit und Design (meine Frau, die aus Skandinavien stammt, würde suboptimales Design in der Wohnung nicht tolerieren!), generiert der Code visuell ansprechende Grafiken aus den gesammelten Werten und präsentiert sie auf verschiedenen Bildschirmen im Diashow-Format. Dies ist nicht nur ansprechender als die reguläre Konsolentextausgabe, sondern ich habe auch einen Bildordner erstellt, der zusätzliche Bilder zwischen den Diashows anzeigen kann.

Darüber hinaus habe ich einen Apache-Webserver für eine Wetterseite eingerichtet, die die aktuellen Sensorwerte in Text- und Diagrammform zeigt, örtliches Wetter in München von openweathermap.org, Langzeitdiagramme für Tages-/Wochen-/Monatsvergleiche und die Wettervorhersage für München in den kommenden Tagen. Die Wettervorhersage für die nächsten 3 Stunden wird auch auf den kleinen Bildschirmen angezeigt, die mit meinen Raspberry Pis verbunden sind. Die meisten Grafiken verwenden kleine Symbole für bessere Sichtbarkeit und Designästhetik. Sie können auch Ihre eigenen Grafiken verwenden; ich werde meine einfach als Beispiele bereitstellen.

Darüber hinaus kann das Projekt je nach Ihren spezifischen Anforderungen in kleinere Module unterteilt werden. Dies erleichtert auch die Integration von Teilen dieses Projekts in Ihre eigenen Projekte. In meinem Fall arbeite ich noch an den nächsten Teilen, wie Luftreinigung mit einem Filter und automatischer Lüftung, aber ich hatte bisher keine Zeit, diese Komponenten einzubeziehen.

Als jemand, der im Bereich IT arbeitet, jedoch seit einiger Zeit nicht mehr programmiert hat, verfüge ich über ein Verständnis für Systemarchitektur, Netzwerke, Systeminteroperabilität, Datenbanken, Grafiken, Video und Skalierbarkeit. Allerdings bin ich beim Programmieren langsam, und mein Code neigt dazu, Fehler zu produzieren. Da ich auch eine ungeduldige Person bin, aber dennoch gute Ergebnisse in kurzer Zeit sehen möchte, habe ich mich entschieden, den Code mit erheblicher Unterstützung von KI zu schreiben, insbesondere mit ChatGPT von OpenAI, Bing und meiner selbstgehosteten Coding Llama-Setup auf meinem Heimserver. Diese Herangehensweise hat recht gut funktioniert, mit gelegentlichen Rückschlägen, Neuplanungen und Überarbeitungen. Beachten Sie bitte, dass der Code Fehler und Sicherheitslücken enthalten kann (wie jeder andere Code im Internet auch). Fühlen Sie sich frei und ermutigt, eine verbesserte Version mit mehr Funktionen zu schreiben. Ich würde mich freuen, wenn Sie mir neuen oder verbesserten Code teilen 🙂

Ich habe auch einige Teile des Projekts von GitHub verwendet und werde den Git und den Autor in meinem Projekt anerkennen. An dieser Stelle: Vielen Dank an die Autoren, die mein Leben hier erleichtert haben!

Modul Eins – Auslesen und Speichern von Temperatur- und Luftsensorwerten:

Im ersten Modul konzentriere ich mich auf die Hardware zum Lesen verschiedener Temperaturen im Innen- und Außenbereich, Luftdruck, Luftfeuchtigkeit und Luftqualitätswerte. Diese Werte werden in einer MySQL-Datenbank gespeichert, um sie zu vergleichen, zu präsentieren und für Heizungssteuerungszwecke zu nutzen. Dieser Prozess findet alle 5 Minuten statt, ähnlich wie bei den meisten anderen Skripten. Sie können die Ausleseintervalle für alle Skripte leicht entsprechend Ihren Vorlieben anpassen.

Lasst uns nun in die Hardware eintauchen.

Meine Temperatursensoren umfassen den Bosch BME680, Bosch BME688, DS18B20 und TO92-Temperatursensoren für Messungen im Innen- und Außenbereich. Natürlich können Sie andere Sensoren haben, und Sie können den Code jederzeit an Ihre Anforderungen anpassen. Aufgrund gelegentlicher Sensorausfälle (der DS18B20 fällt manchmal über Nacht aus) habe ich einige einfache “Watchdog”-Skripte implementiert, die versuchen, den w1-Bus neu zu initialisieren, um sicherzustellen, dass das Auslese-Skript fortlaufend Daten für die MySQL-Datenbank produzieren kann. Andernfalls werden Graphen, Anzeigen und Daten gestoppt, bis Sie das Gerät neu starten.

Für die Auslese-Terminals verwende ich zwei Raspberry Pi Zero 2 Ws, die jeweils an einer Wand neben einem Fenster montiert sind. Diese Anordnung ermöglicht es den DS18B20-Sensor-Kabeln, gerade nach draußen zu verlängern. Der integrierte BME68x-Sensor ist direkt am Raspberry Pi selbst angebracht, den ich vorübergehend in einer hölzernen Box untergebracht habe. Mir persönlich gefiel das Aussehen eines 3D-gedruckten Gehäuses nicht, aber Ihre Einrichtung kann unterschiedlich sein. Dieser Aspekt ist noch in Arbeit, und die Gehäuse sind noch nicht endgültig, aber Sie werden eine gute Vorstellung davon bekommen.

Als eine Art “zentrale Schnittstelle” verwende ich einen Raspberry Pi 4 mit 4 GB RAM, der nur die Innentemperatur misst, die MySQL-Datenbank ausführt und den Apache-Webserver hostet. Dieser Raspberry Pi ist auch mit einem größeren HDMI-Display am Eingang der Wohnung verbunden, um die aktuellen Wetterbedingungen zu präsentieren.

Dieser Apache-Webserver enthält auch drei Heizungssteuerpläne, die derzeit die Temperaturen in meinem Schlafzimmer, Esszimmer und Flur gemäß einem Zeitplan regulieren, den ich ganz einfach auf einer Website einstellen kann. Ich bevorzugte diese Methode gegenüber dem Umgang mit drei Tasten an einem Bluetooth-Heizungsthermostat.

Einer der Raspberry Pi Zeros steuert ein 2-Zoll-ST7789V-Display über ISP mit seinem Python-Treibercode an, nicht als Framebuffer-Gerät. Die Darstellung erfolgt mit einem Python-Bildbetrachter. Der andere Raspberry Pi Zero betreibt ein 2,8-Zoll-TFT-Panel über ISP als Framebuffer-Gerät (im Wesentlichen ein System-Standardbildschirm über /boot/config.txt und ein benutzerdefiniertes ili9341-Overlay). Der größere Bildschirm fungiert als regulärer HDMI-Bildschirm am Raspberry Pi 4 mit einer grafischen Anmeldung. Der Bildanzeigecode wurde in Pygame geschrieben und führt eine Vollbildfensteranwendung von der Konsole aus. Alle drei Raspberry Pis verfügen über Sensoren und einen Bildschirm. Es ist jedoch nicht entscheidend, welcher Raspberry Pi welchen Sensor oder Bildschirm steuert, da das gesamte System modular ist und eine zentrale Datenbank auf dem größeren Raspberry Pi verwendet. Alle Codes speichern Daten in dieser Datenbank und lesen Werte für Präsentationszwecke. Daher können Sie Ihre Einrichtung nach Ihren Bedürfnissen anpassen und mit verschiedenen Sensoren, Displays und Bildschirmen experimentieren, wie es Ihnen passt.

Alle Bildschirme verfügen über einen Dimmplan mit mehreren Stufen, um sicherzustellen, dass der Bildschirm nachts in Ihrem Schlafzimmer nicht zu hell leuchtet. Alle Werte und Variablen können nach Ihren Vorlieben angepasst werden. Grundsätzlich wurde dieses gesamte System mit Stabilität, Benutzerfreundlichkeit und Langlebigkeit im Sinn entworfen. Es war nicht nur ein einfaches “Männerprojekt”. Für instabile Sensoren und Dienste, Speicherlecks, hohen Swap-Speicherbedarf oder andere Fehler habe ich mich stark auf die Optimierung der Sensorauslesung und -präsentation konzentriert. Es ist auch möglich, eines der Komponenten während der Laufzeit zu entfernen, Wartungsarbeiten durchzuführen und es wieder in die Kette zu integrieren, ohne das gesamte System zum Stillstand zu bringen oder sich unberechenbar zu verhalten. Das gleiche Prinzip gilt später für die Heizungssteuerung, die Notfall-Fallback-Einstellungen und periodische Überprüfungen einschließt.

Mein Projekt-Download, einschließlich des Codes für BME68x, DS18B20 und ein 2-Zoll-TFT-Panel mit ST7789V auf einem Raspberry Pi Zero 2 W:

Teil 2: Weiter zur Hardwareeinrichtung und Sensor-/Display-Verkabelung hier.

One thought on “Klimakontrollsystem – Modul eins – liest Temperaturen, Luftdruck, Luftfeuchtigkeit und zeigt sie auf einem TFT-Display oder HDMI-Bildschirm an.

Leave a Reply

Your email address will not be published. Required fields are marked *