Raspberry Projekt: 1-Wire Sensor mit Datenbank
Mein erstes Projekt mit dem Raspberry und Python:
Die Temperaturen von mehreren Sensoren soll in eine Datenbank geschrieben werden.Da mein raspberry headless läuft (also ohne Bildschirm, Tastatur) sollen die Daten über einen WEB-Server präsentiert werden.
Die Anregung für dies Projekt habe ich hier gefunden:
http://www.forum-raspberrypi.de/Thread-keine-ausgabe-auf-webpage-mit-linux
Voraussetzung:
- Webserver
- PhP5
- MySQL Datenbank
- phpMyAdmin
- Für die Grafik: JPGRAPH
- Ich emppfehle MobaXterm für den Zugriff von Windows auf den raspberry
wesentlich komfortabler als Putty - 1-Wire Sensoren
Die Software wurde in Python geschrieben.
In dem Paket avrio sind folgende Dateien enthalten:
- avrio.py Das Hauptprogram
- avrio_database.py Ein Modul mit den Funktionen für die Datenbank
- avrio_html.py Ein modul, um eine HTML Datei zu erzeugen
- avr-graph.php Ein PHP-Script, welches, den Temperaturverlauf als Grafik zeigt
- avrio-wrtiedb.sh Des kleines shell script, welches von cron aufgerufen wird
Wenn avrio.py das erste mal gestartet wird, werden die Parameter abgefragt und eine Konfigurationsdatei erzeugt (avrio-config.txt).
Z.b. User/Pw für MySQL und die Datenbank-Parameter.
Anschließend erzeugt das Program die Datenbank und die Datenbank-Tabelle.
Die bei der Installation angeschlossenen 1-Wire Sensoren werden automatisch erkannt und in die Konfigurations-Datei geschrieben.
Mit einem Editor (z.B. nano) erfolgt in der Datei die Zuordnung zu den Datenbankfeldern.
Als nächstes wird das Hauptprogram gestartet, welches ohne die Angabe von Parametern die Sensoren ausliest und die Daten in die Datenbank schreibt:
> python avrio.py
Die Daten können auf mehrere Arten angezeigt werden:
Über die Kommandozeile die letzten 3 Einträge aufrufen
> python avrio.py -r 3
Über den Webserver kann man eine Seite aufrufen, die das Program erzeugt:
> python avrio.py -w
Dann im Browser: http://192.168.178.60/avrweb/avr-single.html
Über den Webserver kann man eine Seite aufrufen, die eine Grafik erzeugt:
http://192.168.178.60/avrweb/avr-graph.php
Danke Thomas !
I was looking for a way to add Data from OWFS one-wire to DB, via Python, and your code is really good , readable, easy, so I tweaked a little bit, and manually got my OWFS temp in the DB now 🙂
tx
cr
Hallo Thomas,
welche Version ist denn die letzte und aktuellste?
Die im Raspberry-Forum oder diese hier bei dir?
Viele
Grüße
Hallo Willi,
Die Version auf GitHub ist aktuell.
Den Link oben habe ich entsprechend korrigiert.
Danke für den Hinweis.
Viele Grüße,
Thomas
Ich finde das Projekt sehr interessant. Ist „JPGRAPH“ heute (Ende 2021) immer noch das Mittel der Wahl oder sollte man auf etwas anderes zur graf. Darstellung umsteigen?
Gruß
Hallo,
Mittlerweile habe ich alles umgestellt und verwende für Sensoren grundsätzlich ein ESP32 mit Tasmota. Die Kommunikation läuft über MQTT. Beides ist flexibel und sehr stabil.
OpenHAB besitzt Datenbanken und eine schöne Oberfläche. Dies ist aber wesentlich komplexer. Alternativ kann viele Sachen auch mit mit NodeRED erledigen.
Viele Grüße,
Thomas