Wall Calendar - Das IOT-Webprojekt ist erfolgreich im Einsatz

Stephans Profilbild

Stephan schrieb am 21.05.2024 über...


Von der Idee zum Projekt

Die Idee kam mit der Zeit, als ich jährlich einen grossen Wandkalender aus Papier kaufte. So könnte das man doch digitalisieren und noch ein paar zusätzliche Features wie die Messung des Raumklimas und die Anzeige von Wetterdaten einbauen. So kam es schliesslich auch. Ein erstes Mockup ist die Idee welche im Laufe des Projektes verfolgt und umgesetzt wurde.

Bild 1 Wall Calendar

Konzeption und Architektur

Zu beginn wurde eine API mit Hilfe des Python Django Frameworks realisiert, an welchem sich ein HTTP Frontend bedient. Die Services laufen auf einem Debian Linux Server. Später wurde die API als jeweils eine Schnittstelle im IOT-Netzwerk und ein 2. Backend im Netzwerk für die Benutzer aufgeteilt. Dies ermöglicht gleichzeitig eine unabhängig und spezialisierte Aufteilung der Aufgaben und den Mehrwert physikalisch getrennter Netzwerke zwischen IOT-Hardware und dem Hosting der Webseite für die Benutzer. In der API der Sensoren läuft zudem ein Celery Task Scheduler und Pool Worker in Verbindung mit einem RabbitMQ Broker. Aktuell bedienen 4 Temperatur- und Luftfeuchtesensoren die IOT Schnittstelle mit aktuellen Messdaten jeweils im 20 Sekunden Takt.

Bild 2 Wall Calendar

Die Sache mit der Hardware...

In den Anfängen wurden die Web Services experimentell sogar mit einem Experimenierboard wie eines von Raspberry Pi relativ stabil betrieben. Im Verlauf des Projekts wurden die Back- und Frontends jedoch auf einer Debian 12 Virtual Machine deployed, welche als Host dient. Als 1. Sensor diente zu Beginn ein Arduino Board aus meiner Experimentierkiste. Bis zuletzt wird jetzt allerdings das Wemos D1 Board mit ingegriertem Wifi Shield verwendet, welches sehr gute Stabilität und Performance zeigt. Die Einrichtung in Zusammenhang mit dem Arduino Studio ist etwas Tricky gewesen. Aber einmal eingerichtet, lassen sich die Boards problemlos mit der Programmierumgebung (IDE) verbinden und flashen. Zuerst wurden günstige DHT Temperatur- und Humidity Sensoren benutzt. Nachher wurde auf genauere und performantere Sensoren von Digilent gewechselt, welche mit sehr guter Erfahrung in Betrieb sind.

Bild 3 Wall Calendar
Bild 4 Wall Calendar
Bild 5 Wall Calendar

Das Endergebnis

Die APIs laufen stabil und die Sensoren liefern an den Server fortlaufend ihre Messwerte jeweils alle im Takt von 20 Sekunden. Daten älter von rund 30 Minuten werden auf der Datenbank, welche auf PostgreSQL betrieben wird, bereinigt.

Bild 6 Wall Calendar
Bild 7 Wall Calendar