Datenbankstruktur

Jedes Projekt oder Kunde hat eigene Messgrössen und Sensoren und das habe ich versucht abzubilden. Ein Kunde oder Projekt hat mehrere Parameter (Sensoren). Jeder Parameter (Sensor) hat mehrere Messwerte.

Eine Besonderheit ist die Tabelle Messwerte. Da die Hardware draussen in der Natur kein Datum kennt wird das Messdatum des Messwertes von der Datenbank selbständig beim Empfang der Daten eingetragen. Es gäbe Möglichkeiten über das SIM7000 Modul vom LTE / GSM Provider das Datum und Uhrzeit zu ermitteln, welche ich aber nicht benutzt habe.

Ebenfalls speziell ist das Feld BOX_Commands in der Tabelle Kunde. Übermittelt die Box ein Messwert mit HTTP Post dann wird Serverseitig geschaut ob in diesem Feld BOX_Commands Befehle für die Box vorhanden sind. Diese Befehle werden der Antwort auf den HTTP Post zurückgegeben. Die Box draussen in der Natur führt dann die entsprechenden Aktionen aus. So kann zum Beispiel eine Wäge Kalibrierung gemacht werden nachdem man Arbeiten mit Gewichts Veränderungen am Bienenvolk gemacht hat. Dies kann man bequem von zuhause aus erledigen durch einen Eintrag in der Datenbank. Das Feld BOX_Commands wird gelöscht sobald die Commands der Box mitgeteilt wurden. Mehrere Box_Commands werden mit ; abgetrennt.

Da das SIM7000E Modul auch die GPS Koordinaten ermitteln kann wird dieser Messwert in die Tabelle Kunde ins Feld GPS_Standort geschrieben und kann dann im Web angezeigt werden.

Grafik der Messdaten

Die Darstellung der Daten aus der Datenbank mache ich mit phplot.

http://sourceforge.net/projects/phplot/