python读取RS485接口的TH10S-B温度传感器数据
时间:2022-08-05 00:00:00
准备TH10S-B温度sensor一个
准备RS485 USB转换器一个
连接,插入电脑USB设置端口:
传感器是否正常试传感器是否正常:
进入主题,分析RS485数据首先安装serial包,使用serials.Serial()我遇到了一个错误
报错module 'serial' has no attribute 'Serial'
解决方案,卸载serial,重新安装pyserial
pip uninstall serial pip install pyserial
正式代码如下:
import serial import time temp_send = '01 03 00 00 00 02 C4 0B' ser = serial.Serial("COM3", 9600) # 将发送的数据转换为2进制b'\x01\x03\x00\x00\x00\x02\xc4\x0b' temp_send = bytes.fromhex(temp_send) print(temp_send) while True: if ser.is_open: print('port open ok') ser.write(temp_send) time.sleep(0.1) # 获得返回缓冲data,获取的是buffer_data的长度 9 buffer_data = ser.in_waiting # print(buffer_data, 'buffer_data') if buffer_data: # 返回数据为2进制:b'\x01\x03\x04\x01\x08\x022\xfa\xb8' return_data = ser.read(buffer_data) # print(返回数据2进制: return_data) # 二进制转化为16进制,01030401080230b79 return_data_hex = str(return_data.hex()) print返回的数据转换为16进制: return_data_hex) # 分析返回数据,获取温度和湿度数据 print("当前温度为:", int(return_data_hex[6:10], 16)/10) print("当前湿度为:", int(return_data_hex[10:14], 16)/10) time.sleep(1)
安装运行结果:
TH10S-B回收据分析说明如下:
其实我看不懂这本手册。
询问商家,温湿度对应的位置,完成。
最后说明,我使用的是win11系统,所以RS485 USB转接头是免驱动的,如果是win7的可能要安装驱动才能用,买的时候商家会给驱动。
此外,后期计划用树莓派读取温湿度等数据,可应用于设备行业。