购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.3 Modbus协议读取温湿度

1.温湿度传感器

我们依然选取图1.2.22所示的YF3610-TH21温湿度模块。按图所示把温湿度模块接入YF3300-Air724UG网关,并对温湿度模块进行供电(5~24V)。

2.读取温湿度

合宙官方提供的Modbus示例相对简略,所以需要在Modbus示例代码的基础上去实现读取YF3610-TH21模块温湿度的功能。

在前面章节我们提到过Modbus RTU协议是主从协议,先由主设备主动发一帧数据,然后等待从设备响应,如果在规定的超时时间内,设备没有响应,意味着设备损坏或者通信线路有问题。不过考虑到合宙官方已经有了modbus通信示例,并且示例功能也相对简单,所以代码结构上我们没有大改,在专门的串口接收函数里,增加了从设备协议帧的解码程序。首先判断从设备地址是否正确,然后判断CRC16校验是否正确,确认帧接收正确,才从协议帧中解析出具体的温度和湿度值。相关的代码如下:

代码编程完毕后,单击“debug”按钮,把程序下载到YF3300-Air724UG物联网智能网关。程序正常运行后,可以看到设备返回的数据及读到的温湿度值(如图1.3.12所示)。

● 图1.3.12 LuatIDE Modbus通信调试界面 BTERppOIGGVQ4bSNuLzdwzV5GJk+JST/djZ74zdGEjzrHjgpZanCHlC4uDNjFGnL

点击中间区域
呼出菜单
上一章
目录
下一章
×