Форум сайта python.su
Есть железка на ком порту. Задача прочитать с нее данные, и распихать по БД. данные такого вида
18,10,0.00,0.01,500,26.18,32.20,586.39
#!/usr/bin/python import os import time import serial import MySQLdb #подключаем к БД db = MySQLdb.connect(host="127.0.0.1", port=3306, user="user", passwd="password", db="air") cur = db.cursor() ser = serial.Serial( '/dev/ttyUSB0', 9600, timeout=10 ) a = 1 #начинаем читать while a == 1: s = ser.readline() sa = s.split(',') if len(sa) == 8: pm25 = float(sa[0]) pm10 = float(sa[1]) hcho = float(sa[2]) voc = float(sa[3]) co2 = float(sa[4]) temp = float(sa[5]) humidity = float(sa[6]) summ = float(sa[7]) unixtime = long(time.time()) #первые несколько значений вылетают с нулями по пыли, так что их отбрасываем и ждем нормальных данных с ненулевой пылью if pm25 != 0 and pm10 != 0: a = 10 cur.execute( 'INSERT INTO data ' '(unixtime, pm25, pm10, hcho, voc, co2, temp, humidity)' 'VALUES' '(%s, %s, %s, %s, %s, %s, %s, %s)', (unixtime, pm25, pm10, hcho, voc, co2, temp, humidity)) db.commit() db.close() print('end')
Отредактировано pterodaktil (Май 11, 2016 16:22:38)
Офлайн