Temperaturwerte in MySQl-DB schreiben
Verfasst: Montag 8. April 2013, 16:19
Hallo,
Ich habe mir vor kurzen ein Raaspberry Pi zugelegt und an diesen ein Temperatursensor (DS1820) angeshlossen. Nun möchte ich die gemessenen Temperaturwerte in meine MySQL-Datenbank schreiben. Diese liegt auf meinem Server in meinem Netzwerk. Das auslesen der Messwerte klappt, auch das herstellen der Verbindung zur Datenbank und das anlegen der Datenbank. Aber ich bekomme die Werte nicht in die Datenbank. Das Script sieht momentan so aus:
Das Problem liegt meines Erachtens in der Zeile "cursor.execute("""INSERT INTO temperatur Values ('%s')"""),(temperatur_sensor1)"
Hier wird der Wert der Variable temperatur_sensor1 nicht übergeben bzw. nicht richtig übergeben. Ich such also die richtige Syntax um den Wert dieser Variable an die DB zu übergeben.
Im Endeffekt will ich mehrere Sensoren anschließen, das Script per crontab ausführen lassen, die Werte + Zeit/Datum an die DB übertragen und diese auf einer Website darstellen.
Gruß dho
Ich habe mir vor kurzen ein Raaspberry Pi zugelegt und an diesen ein Temperatursensor (DS1820) angeshlossen. Nun möchte ich die gemessenen Temperaturwerte in meine MySQL-Datenbank schreiben. Diese liegt auf meinem Server in meinem Netzwerk. Das auslesen der Messwerte klappt, auch das herstellen der Verbindung zur Datenbank und das anlegen der Datenbank. Aber ich bekomme die Werte nicht in die Datenbank. Das Script sieht momentan so aus:
Code: Alles auswählen
import sys
import os
import time
import calendar
import MySQLdb
import time
from time import *
lt = localtime()
file = open('/sys/devices/w1_bus_master1/w1_master_slaves')
w1_slave = file.readlines()
file.close()
for line in w1_slave:
w1_slave = line.split("\n")[0]
file = open('/sys/bus/w1/devices/' + str(w1_slave) + '/w1_slave')
filecontent = file.read()
file.close()
stringvalue = filecontent.split("\n")[1].split(" ")[9]
temperatur_sensor = float(stringvalue[2:]) / 1000
connection = MySQLdb.connect (host="server", user="user", passwd="psw", db="rasp_temp")
cursor = connection.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS temperatur (temperatur FLOAT(5))""")
cursor.execute("""'INSERT INTO temperatur VALUES ('%s')"""),(temperatur_sensor1)
connection.commit()
cursor.close();
sys.exit(0)
Hier wird der Wert der Variable temperatur_sensor1 nicht übergeben bzw. nicht richtig übergeben. Ich such also die richtige Syntax um den Wert dieser Variable an die DB zu übergeben.
Im Endeffekt will ich mehrere Sensoren anschließen, das Script per crontab ausführen lassen, die Werte + Zeit/Datum an die DB übertragen und diese auf einer Website darstellen.
Gruß dho