18,10,0.00,0.01,500,26.18,32.20,586.39
Написал скрипт
Поскольку данные надо писать раз в 5 минут, вызывать я скрипт планирую по крону.
Но у него есть фатальный недостаток - а именно железка судя по всему делает reset при установлении соединения.
Внешне это проявляется в перезагрузке экрана и он секунд 30 отдает переменные pm25 и pm10 нулями.
Помогите побороть проблему.
#!/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')