Sensordaten in mariaDB-Server einfügen
Verfasst: Dienstag 1. Mai 2018, 07:18
Moin Leute,
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:
Ich hoffe ich habe alles notwendige beschrieben und bedanke mich schon für jeden, der sich Zeit nimmt um mir zu helfen.
VG
tzabbi
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