ich habe ein kleines Problem wobei mir google noch nicht so richtig helfen konnte, da ich noch am Anfang meiner Programmierkarriere stehe.
Ich möchte über einen DHT22 Temperatur- und Luftfeuchtigkeitssensor, die Temperatur und Luftfeuchtigkeit in eine Datenbank schreiben.
Jedoch kommt immer wenn ich die Variable in meinen Insert befehl schreibe folgende Fehlermeldung:
Das dazugehörige pythonSkript:Traceback (most recent call last):
File "dht22.py", line 35, in <module>
cursor.execute(insert)
File "/usr/local/lib/python2.7/dist-packages/mysql/connector/cursor.py", line 392, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py", line 523, in cmd_query
statement))
File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py", line 445, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''INSERT INTO daten (s_id, t, f) VALUES (%s, %s, %s)', (1, '25.00', '33.30'))' at line 1
Code: Alles auswählen
import Adafruit_DHT
import time
import mysql.connector as mc
from datetime import datetime
sensor = Adafruit_DHT.DHT22
# 1-Wire-Pin. BCM-Bezeichnung nutzen!
pin = 4
while True:
humidity, temperature = Adafruit_DHT.read(sensor, pin)
if humidity is not None and temperature is not None:
#Sensordaten abfragen
f = open('log.txt', 'a')
f.write('Temp={0:0.1f}*C'.format(temperature))
f.write(' ')
f.write('Humidity={0:0.1f}%'.format(humidity))
f.write(' ')
f.write(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
f.write('\n')
f.close()
#Verbindung zum mySQL-Server und Datensatz eintragen
connection = mc.connect(host = "IP-Adresse",
user = "user",
passwd = "password",
db = "database")
cursor = connection.cursor()
temperature = '%.2f' % temperature
humidity = '%.2f' % humidity
print temperature
print humidity
insert = ("""INSERT INTO daten (sender_id, temperatur, luftfeuchtigkeit) VALUES (%s, %s, %s)"""
,(1, temperature, humidity))
cursor.execute(insert)
connection.commit()
cursor.close()
connection.close()
time.sleep(60)
else:
print "Lesefehler. Erneut versuchen!"
time.sleep(2)
VG
tzabbi