因为项目需求,需要使用RS485接口的温湿度传感器,简单的记录一下。
我选用的传感器是冀欧速传感器,它的产品采用的是MODBUS协议。MODBUS是一个非常老的协议,1979年成为事实上的国际标准,目前有个国际组织进行维护:The Modbus Organization。
RS485接口产品中使用的是MODBUS over Serial Line协议,或者称为MODBUS RTU协议,其官方文档定义:Specification and Implementation Guide for MODBUS over serial line
它和RS485的关系可以用下面的图表示:
协议的基本格式非常简单,有地址域、功能码、数据和CRC校验组成。
冀欧速传感器的查询命令如下,这里功能码0x03就是用来查询数据的。
对数据简单解释一下:
- 湿度数据0x164,就是10进制的356,对应着35.6% RH
- 温度数据0xFFDD,就是-35的补码,对应-3.5℃。