我有以下程序从空中读取pm计数
# -*- coding: utf-8 -*-
import serial
import time
def hexShow(argv):
result = ''
hLen = len(argv)
for i in range(hLen):
hvol = argv[i]
hhex = '%02x'%hvol
result += hhex+' '
print ('hexShow:',result)
t = serial.Serial('/dev/ttyAMA0',9600)
t.setTimeout(1.5)
while True:
t.flushInput()
time.sleep(0.5)
retstr = t.read(10)
hexShow(retstr)
if len(retstr)==10:
if(retstr[0]==0xaa and retstr[1]==0xc0):
checksum=0
for i in range(6):
checksum=checksum+int(retstr[2+i])
if checksum%256 == retstr[8]:
pm25=int(retstr[2])+int(retstr[3])*256
pm10=int(retstr[4])+int(retstr[5])*256
print ("pm2.5:%.1f pm10 %.1f"%(pm25/10.0,pm10/10.0))
我有Raspberry Pi 3和Nova PM传感器SDS011高精度激光PM2.5空气质量检测传感器 .
传感器通过USB连接到Raspberry Pi板 .
我有不同类型的场景发生 .
当我运行程序时,他们给出 t.setTimeout(1.5)
的错误,所以我发表评论然后程序运行正常,但在 t.read(10)
后没有执行任何行
我按照这个链接进行教程:http://www.instructables.com/id/Using-Pm25-Sensor-With-Raspberry-Pi/