SQLite 3 Datenbank mit PHP auslesen
Um die über das Python Programm gespeicherten Messdaten der Temperatur in der mobilen Webanwendung auszulesen und anzuzeigen, verwende ich ein PHP Script, welches in den HTML-Code eingebunden ist. Eine Lösung mittels Python wäre natürlich auch möglich, allerdings finde ich für dieses Beispiel die PHP Lösung für unkompliziert und schnell.
Für die Beitragsreihe, deren Einleitung du im Beitrag “Mobile WebApp für die Temperaturmessung am Raspberry Pi” findest, habe ich folgendes Video mit ca. 57 Minuten erstellt. In diesem erkläre ich das Zusammenspiel und die Funktionen der beiden Programme.
Datenbank auslesen
Im Gegensatz zu Python müssen wir keine Bibliothek in den Code einbinden. Allerdings muss auf deinem Raspberry Pi das PHP Modul für die SQLite 3 Datenbank installiert sein. Die Befehle hierzu findest du in meinem Beitrag “Webserver, PHP, SQL Datenbank und FTP Zugang einrichten“.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $db = new SQLite3("aufzeichnungen.db"); $res = $db->query("select * from werte"); while ($dsatz = $res->fetchArray(SQLITE3_ASSOC)) { echo $dsatz["datum"]; echo " "; echo $dsatz["uhrzeit"]; echo " "; echo $dsatz["temperatur"]; echo "<br>"; } $db->close(); ?> |
Die Verbindung zur Datenbank wird mit $db = new SQLite3(“aufzeichnungen.db”); geöffnet. Der Befehl zum Auslesen der gespeicherten Daten ist in PHP wie auch unter Python wieder “select * from werte“. Die Befehle der SQLite 3 Datenbank ist unter PHP identisch mit denen von Python, da sie ja ein Teil der Datenbank sind. Eine Beschreibung der SQLite Datenbank Anbindung an PHP findest du auf der Seite php.net.
Solltest du die Datenbank nicht nur auslesen, sondern auch Werte mit zum Beispiel folgenden Befehl verändern wollen, beachte die Benutzerrechte der Datei.
1 2 |
$sql = "update werte set temperatur = '" . $neuetemperatur . "'"; $db-> exec($sql); |
Hallo Wolfgang
Die gesammelten Temperatur Daten des DS temperaturfühler im Python Script habe ich mir als txt Datei auf ein externen Windows Rechner gespeichert.
Ich möchte diese Temperatur Daten in einem excell Diagramm darstellen. Das Problem ist aber das die txt Datei immer 4 oder mehr spalten in der Breite hatt und dementsprechend viele zeigen nach unten. Dies im excell dazustellen zu importieren gibt immer bloß Daten Müll. Beim Importieren wähle ich den Zeichensatz Windows s Ansi Koma stellen oder Datum oder Semi Trennung der Sonderzeichen? Ich kriege die Daten nicht sauber in eine excell Spalte zB. A Temperatur B temperaturwert. Das gibt immer nur wireshark Zeug.
Wenn ich alle Daten in einer Spalte habe kann ich diese über Diagramm einfügen auswählen und mir eine Kurve dastellen lassen schön wäre auch wenn der Pi systemzeit anzeigen könnte derzeit mache ich pro Minute eine Messung. Datum im Script for den aktuellen rag und die Uhrzeit wäre noch das sahne Häubchen oben drauf. Gruß Michael
Hallo Michael,
am einfachsten speicherst du die Daten in dem Format, welches du zum Import in Excel benötigst. Wenn du eine reine ASCII Datei mit Trennzeichen speichern möchtest, musst du die erfassten Daten mit dem entsprechenden Trennzeichen erweitern und abspeichern. Den Zeitpunkt der Messung kannst du ja bei jeder Speicherung mit erfassen und in deine Datei abspeichern. Eine kleine Funktion hierzu könnte zum Beispiel wie die def aktuelleZeit(werta, wertb) aus dem Skript des Beitrages “OLED Display mit SSD1306 Controller am RaspberryPi und Python verwenden” aussehen.
Viele Grüße
Wolfgang
Kleiner Hinweis, alle Kommentare werden moderiert.
Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.