Datenbank für MQTT einrichten

  • Guten Tag liebe Raspberry Gemeinde,

    ich bin gerade dabei meine Bachelor Arbeit zu schreiben und entwickel dafür einen Wireless Sensor Node (WSN) der über das MQTT-Protokoll mit dem Raspberry kommunizieren soll.

    Zur Zeit benutze ich noch das NanoESP zur Kommunikation und einen Temperatur und Luftfeuchtigkeitssensor (DHT11) zum ermitteln von Messwerten. Die Kommunikation zwischen WSN und dem Mosquitto-Broker funktioniert einwandfrei. (Der Broker ist auf dem RPi installiert.) Sobald ich im LXTerminal den Befehl

    Quote

    "mosquitto_sub -d -v -t \#"

    (# = Wildcard)
    eingebe, werden alle Daten, die vom NanoESP gepublished werden, angezeigt. Es besteht auch die Möglichkeit anstatt der Wildcard (#) spezifische Topics wie "greenhouse1/sensor1/Temp"einzugeben, um beispielsweise nur die Temperatur auszulesen. Der erste Schritt der Entwicklung ist also schon einmal geschafft...

    Hier ist der Code für das NanoESP (Prototyp):


    Nun möchte ich die Daten allerdings nicht nur auslesen, sondern auch speichern und anschließend in verschiedenen Grafiken darstellen. Dazu möchte ich mein RPi3 auch als Client am Broker anmelden, um anschließend die Daten in einer DB (vorzugsweise SQlite) zu speichern. Ich kenne mich mit Datenbanken nur sehr wenig aus und weiß nicht genau wie ich die Datenbank an den Broker anbinden soll.

    Es wäre sehr nett wenn ihr Ideen und Anregungen postet.

    Grüße Twinzy

  • Ich würde ein kurzes Python Programm schreiben, das auf das entsprechende Topic lauscht und dann die Werte mit Timestamp etc in die Datenbank einträgt.

    MQTT mit Python Beispielcode: https://www.dinotools.de/2015/04/12/mqtt-mit-python-nutzen/
    Für SQlite gibt's ebenfalls einige Anleitungen, wobei ich mir überlegen würde, RRDtool zu nutzen, dieses ist dafür ausgelegt, dass nach einem gewissen Zeitraum z.B. einem Jahr nur noch die Tagesmittelwerte gespeichert werden sollen (statt stündlich z.B.)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!