用python采集RS485温湿度传感器信息

用python采集RS485温湿度传感器信息

用python采集RS485温湿度传感器信息_第1张图片
对于这个485温湿度传感器的采集,我写了个python的小程序实现从树莓派上对信息的采集,希望对大家有所帮助,一起学习,一起进步,除了上面的温湿度传感器外,还需要一个TTL485模块,至于怎么连接,可以去百度一下。同时还加上了对数据的周期性采集。
#首先我们需要引入一些模块
import serial
import time
import string
import binascii
import threading
#定义一个函数:
def timerDelay():
s=serial.Serial(‘/dev/ttyUSB0’,4800) #我用的usb接口波特率为4800,你们的可以自行设置。
n=s.inWaiting() #采集缓冲数据
if n:
data= str(binascii.b2a_hex(s.read(n)))[2:-1]
l=int(data[6:10],16) #他返还了一堆十六进制数,其中第6到第9表示湿度信息,并将其转换成10进制。
l=l/1000 #根据关系计算出湿度信息
print(‘当前湿度为:{:.1%}RH’.format(l)) #输出
if data[10]==1: #温度信息 如果这一位为一,证明是负数,需要进行下列操作计算得出温度数值。
t=int(data[10:14],16)
t=t/10
a=bin(t)
a=~a
b=int(a,2)
b=-b
print(‘当前温度为:%.1f℃’%b)
else: #如果是正数,则根据如下计算。
t=int(data[10:14],16)
t=t/10
print(‘当前温度为:%.1f℃’%t)
d=bytes.fromhex(‘01 03 00 00 00 02 C4 0B’) #这是发送的命令,传感器接收到后会返还温湿度信息。
s.write(d)
s.close()
global q
q=threading.Timer(2,timerDelay) #进行周期性采集,那个2证明间隔两秒采集一次
q.start()
q= threading.Timer(10,timerDelay) #10表示传递一个数据的时间

q.start()

程序就是如上所示,作为初学者第一次写,如不完善请见谅。

你可能感兴趣的:(用python采集RS485温湿度传感器信息)