IoT #4: Serveranbindung

Ich habe heute die MySQL-Datenbank entworfen und ein paar PHP-Dateien programmiert. Die Datenbank läuft auf einem Webserver und die PHP-Dateien ebenfalls. Der Webserver läuft nicht nur lokal im Heimnetz, sondern auf einem Server in einem Rechenzentrum.

Parallel dazu habe ich den Mikrocontroller in C programmiert mithilfe einiger Beispiele aus dem Internet, die ich umgeschrieben und erweitert habe. Die bestehenden Beispiele waren mir nicht dynamisch genug und z. B. nur für 3 Sensoren ausgelegt. Für jeden weiteren Sensor hätte die Software angepasst werden müssen.
Die Datenbankstruktur, das Mikrocontroller-Programm und die Server-Skripte sind daher nun sehr flexibel programmiert. Die Sensordaten mit Gerätekennung, Server-Authentifizierung etc. sendet der Mikrocontroller per JSON an den Server.
Der Server selbst interpretiert die Daten und trägt diese in eine Datenbank ein.

Mit dem JSON-Format ist eine hohe Flexibilität gewährleistet, sodass keine Einschränkungen bei zukünftigen Anpassungen entstehen. XML eignet sich prinzipiell auch sehr gut, doch JSON lässt sich automatisch in Strukturen wandeln, die eine Programmiersprache versteht. Daher habe ich mich für dieses Format entschieden.
Ein typisches „IoT-Protokoll“ ist übrigens MQTT. Da ich jedoch keinen MQTT-Server habe, nutze ich dieses Protokoll hier nicht.

Der erste Test war erfolgreich! Die Daten eines Temperatursensors werden nun tatsächlich an den Server gesendet und in einer Datenbank gespeichert! Morgen werde ich das mit allen 5 Sensoren testen. Dann zeigt sich, ob sich meine Arbeit gelohnt hat, um das Ganze dynamisch erweitern zu können.

Nun kann man hier langsam wirklich die Begrifflichkeit „IoT“ verwenden.

Ein erster Blick ins Datenbank-Management-System für die, die hier etwas tiefer in der Materie stecken und damit etwas anfangen können. Die rechte Spalte „value“ zeigt die Temperaturwerte.

Auszug aus der MySQL-Datenbank

Ich lasse das heute über Nacht laufen und werden die Datenbank morgen prüfen. Die Erfassung und Übertragung erfolgt mit einem Temperaturwert pro Minute. Ein Ringspeicher ist noch nicht vorhanden, sodass keine alten Werte gelöscht werden.

Schreibe einen Kommentar