这里会显示出您选择的修订版和当前版本之间的差别。
note:spoony:树莓派从pm25传感器读取数据 [2016/12/31 14:59] |
note:spoony:树莓派从pm25传感器读取数据 [2016/12/31 14:59] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 树莓派从pm25传感器读取数据 ====== | ||
+ | GP2Y105AU0F 粉尘传感器 | ||
+ | |||
+ | <code> | ||
+ | def pm25(): | ||
+ | ser = serial.Serial('/dev/ttyAMA0', 2400, timeout=0.5) | ||
+ | arr =[] | ||
+ | for num in range(0,30): | ||
+ | |||
+ | getchr = ser.read(10) | ||
+ | hexstr = "%s" % getchr.encode('hex') | ||
+ | #print(hexstr) | ||
+ | a = hexstr.find('aa') | ||
+ | a1= hexstr[a+2:a+4] | ||
+ | a2= hexstr[a+4:a+6] | ||
+ | #print (a1,a2) | ||
+ | a1 = int(a1, 16) | ||
+ | a2 = int(a2, 16) | ||
+ | pm25 = (float(a1) * 256 + float(a2))/1024*5*900 | ||
+ | pm25 = round(pm25,2) | ||
+ | arr+=[pm25] | ||
+ | print(num,pm25) | ||
+ | endTime = time.time() | ||
+ | time.sleep(1) | ||
+ | ser.close() | ||
+ | return round(sum(arr)/len(arr),2) | ||
+ | </code> |