Sziasztok!
Ti hogyan raknátok be egy adatrögzítő eredményeit egy SQL DB-be Python programmal?
Van esetleg valakinek erre bevált profi megoldása?
Az adatok kb. így jönnek soros porton keresztül:
[]
['DHTxx', 'test!']
[]
[]
['Humidity:', '44.80%', 'Temperature:', '24.70°C', '76.46°F', 'Heat', 'index:', '24.40°C', '75.91°F']
[]
['Humidity:', '44.80%', 'Temperature:', '24.70°C', '76.46°F', 'Heat', 'index:', '24.40°C', '75.91°F']
[]
['Humidity:', '44.80%', 'Temperature:', '24.70°C', '76.46°F', 'Heat', 'index:', '24.40°C', '75.91°F']
[]
['Humidity:', '44.80%', 'Temperature:', '24.70°C', '76.46°F', 'Heat', 'index:', '24.40°C', '75.91°F']
Sajnos persze lehet adatvesztés, korrupt betűk stb..
Jelenleg ez a kis script-et tákoltam össze. Kiírja az adatokat, de nem tudom hogy lehet ezt szépen átrakni egy DB-be, hogy
- megmaradjon a két tizedes + a mértékegységek is
- Hiba esetén csak dobja el a sort, ne rögzítsen semmit.
- User/Pass login a DB-be.
#!/usr/bin/env python3
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
ser.flushInput()
humidity = 0
temperature = 0
heatIndex = 0
while True:
ser_bytes = ser.readline()
#decoded_bytes = float(ser_bytes[0:len(ser_bytes)-2].decode("utf-8"))
decoded_bytes = ser_bytes[0:len(ser_bytes)-2].decode("utf-8")
#print(decoded_bytes)
list = decoded_bytes.split()
print(list)
time.sleep(5)
#humidity = list[0:2]
#temperature = list[3]
#heatIndex = list[6]
#print('Páratartalom:' + humidity)
#print('Hőmérséklet:' + temperature)
#print('HeatIndex:' + heatIndex)
Később majd a DB-ből szeretnénk web-es chartot rajzolni az adatokból.