Hallo zusammen,
ich wollte die Messwerte meines DHT22 in eine kleine SQlite DB über Python einlesen. Da ich in Programmierung eher unbedarft bin, versuche ich mir das Programmieren selber beizubringen und habe mir dazu Python ausgesucht. Man möge mir also bitte verzeihen, wenn der Quellcode nicht dem Standard entspricht.
Der Teil bei dem die Werte ausgelesen werden, habe ich aus dem Tutorial von Adafruit genommen. Das klappt auch irgendwie, aber irgendwie werden die Daten aus den Variablen temp u. humidity nicht eingetragen.
Weiß jemand zufällig wo mein Fehler liegt, das keine Werte in die DB eingetragen werden?
Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess
import re
import sys
import time
import datetime
import sqlite3
# In Datenbank Verbindung erstellen
connection = sqlite3.connect(database = "/opt/databases/smarthome.db")
cursor = connection.cursor()
try:
sql = """CREATE TABLE IF NOT EXISTS Temperatur (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, zeit timestamp NOT NULL, Temperatur INTEGER NOT NULL, Feuchtigkeit INTEGER NOT NULL, Ort TEXT)"""
cursor.execute(sql)
connection.commit()
except:
print ("Die Tabelle existiert bereits!")
# Sensor wird ausgelesen!
def sensor():
while(True):
output = subprocess.check_output(["/opt/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/Adafruit_DHT", "22", "4"]);
print output
#Temperatur wird gesucht
matches = re.search("Temp =\s+([0-9.]+)", output)
if (not matches):
time.sleep(3)
continue
temp = float(matches.group(1))
#Feuchtigkeit wird gesucht
matches = re.search("Hum =\s+([0-9.]+)", output)
if (not matches):
time.sleep(3)
continue
humidity = float(matches.group(1))
print "Temperatur: %.1f C" % temp
print "Feuchtigkeit: %.1f %%" % humidity
# Sensordaten in die Datenbank schreiben
try:
for i in sensor:
temp = row[0]
humidity = row[1]
sql = ("INSERT INTO Temperatur (Temperatur, Feuchtigkeit) VALUES (temp, humidity)")
cursor.execute(sql, data)
connection.commit()
except:
print ("Einfügen von Daten nicht möglich!")
Alles anzeigen
Danke vorab für eine eventuelle Hilfe!