Mir ist der Titel etwas schwer gefallen, deshalb hier eine genauere Beschreibung des Problems:
Ich habe einen Mikrocontroller, der mit einem Temperatur-/Luftfeuchtigkeitssensor verbunden ist. Diese Daten würde ich gerne in regelmäßigen Abständen mithilfe von Python in meine MySQL-Datenbank schreiben. Grundgerüst des Codes steht bereits, allerdings werden die Daten dabei nur einmal ausgelesen/übertragen.
Wenn mein Programm fertig ist, muss ich jedes Mal die Verbindung des Mikrocontrollers trennen, dann den Code neu hochladen und den Python-Algorithmus starten (ansonsten bekomme ich von Python "Zugriff verweigert/Port busy"). Alles etwas mühselig. Eine Verbindung über Ethernet/W-Lan ist leider nicht möglich, da das im Netzwerk geblockt ist und ich dafür auch keine Freigabe erhalte.
Meine eigenen Versuche führen nur zu Fehlermeldungen (meistens IndexError) und ich bin mittlerweile etwas ratlos, da ich mich auch erst seit dieser Woche an Python versuche. Ich habe auch schon nach Echtzeit Streaming Libraries geschaut, aber davon verstehe ich noch weniger :'D
Code: Alles auswählen
import serial
import mysql.connector as mc
connection = mc.connect (host = "localhost",
user = "root",
passwd = "4526",
db = "wetterstation")
cursor = connection.cursor()
arduino = serial.Serial('COM3', 9600)
data = arduino.readline().decode('ascii')
test = data.split()
data1 = test[0]
data2 = test[1]
print(data1) // Das hier steht nur zur Überprüfung während den Tests drin
print(data2)
sql_data = "INSERT INTO wettera (luftfeuchtigkeit , temperatur) VALUES ('%s' , '%s')" %(data1 , data2)
cursor.execute(sql_data)
connection.commit()
cursor.close()
connection.close()