Im Folgenden ist ein Schema des aktuellen Systems dargestellt. Es handelt sich aktuell um eine reine Messdatenerfassung ohne Regelung o. ä.
Gesamtsystem: Schema
Die folgende Abbildung zeigt schematisch das Zusammenspiel der verschiedenen Teilsysteme.
Software des Mikrocontrollers
Die Software des Mikrocontrollers ist sehr flexibel programmiert. Der Mikrocontroller erkennt automatisch die Anzahl der angeschlossenen Sensoren und sendet diese Daten an den Web-Server. Der Web-Server sendet die Daten an einen Datenbank-Server, der die Daten in die Datenbank einträgt.
Wie bereits erwähnt ist die Schnittstelle zum Server sehr flexibel und passt sich automatisch an die Anzahl der Sensoren an.
Der Mikrocontroller ist zurzeit so programmiert, dass er alle 30 Sekunden die Sensorwerte einliest und überträgt. Während der Wartezeit geht er in einen sog. Sleep-Mode und hat dann eine Stromaufnahme von wenige Mikroampere!
Nach Ablauf dieser Zeit, bootet der Mikrocontroller neu. Es ist erstaunlich, wie schnell er wieder mit dem WLAN verbunden ist und die Daten übertragen hat.
Software des Servers
Die serverseitigen PHP-Skripte nehmen die Daten des Mikrocontrollers entgegen, tragen diese ggf. in die Datenbank ein und stellen die Daten zur Anzeige bereit.
Datenbank
Die MySQL-Datenbank besteht aktuell aus 13 Tabellen. Einige davon dienen der Konfiguration, andere enthalten die protokollierten Daten. Die Datenbank ist so strukturiert, dass sie Daten von beliebig vielen verschiedenen Systemen verwalten kann.
D. h. zukünftig kann ich das Gesamtsystem um weitere Einheiten (je eine Art Cyberphysisches System CPS) erweitern ohne die Datenbank umstrukturieren zu müssen. 🙂
Die Art der Datenerfassung wird über die Datenbank konfiguriert.
Einige der Konfigurationsmöglichkeiten:
- Definition der Mikrocontroller / Cyberphysischen Systeme:
z. B. die Ringspeichergröße in Zeiteinheiten (z. B. 24 Stunden), damit die Datenbank nicht zu viel Speicher belegt, … - Definition der Sensoren:
z. B. Physikalische Einheiten oder einen sog. Dezimierungsfaktor zur Optimierung von Chart-Anzeigen (z. B. im Diagramm nur alle 60 s einen Wert darstellen), Farben im Diagramm, … - Definition von Diagramm-Achsen
Sensorzuordnung zu Y-Achsen eines Diagramms, optional Minimum und Maximum der Achsskalierung, … - Definition von Benutzern
zur Authentifizierung beim Server
Die folgenden Möglichkeiten gibt es (noch) nicht:
- Einstellen der Abtastrate / Übertragungsrate
Hier ist die Kommunikation vom Server zum Mikrocontroller erforderlich. Das wird es in Zukunft vsl. geben. Nur mit dem energiesparenden Sleep-Mode wird das schwierig, da die Konfiguration auf dem Mikrocontroller gespeichert und beim Booten geladen werden muss.
Website / Dashboard
Die (weltweit abrufbare) Website, die zukünftig ein Dashboard darstellen soll, ist in der Entwicklung. Sie zeigt aktuell „nur“ den Verlauf der Temperaturen der letzten 6 Stunden an. Die aktuellen Istwerte sind noch nicht separat dargestellt.
Ein ansprechendes Dashboard zu entwickeln ist nun die nächste Aufgabe.