LINUX.ORG.RU

История изменений

Исправление kombrig, (текущая версия) :

Продолжаю осваивать питон

Накропал скрипт для лога данных с сенсора в БД

#!/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()

a = 1
#начинаем читать
while a == 1:
	ser = serial.Serial( '/dev/ttyUSB0', 9600, timeout=10 )
	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')

Из неприятных минусов - железка перезагружается при конекте, в т.ч. гасит экран.

Помогите побороть эту бяку.

Исходная версия kombrig, :

Продолжаю осваивать питон

Накропал скрипт для лога данных с сенсора в БД

#!/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()

a = 1
#начинаем читать
while a == 1:
	ser = serial.Serial( '/dev/ttyUSB0', 9600, timeout=10 )
	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')

Из неприятных минусов - железка перезагружается при конекте, в т.ч. гасит экран.