SBC/EPC-TL3588 Modbus RTU 温湿度采集实操指南
前 言本文档主要介绍基于单板机/工控机的Modbus协议开发案例。备注本文适用于SBCTL3588单板机及EPCTL3588工控机系列由SBCTL3588单板机搭配扩展板与外壳组成文中所有演示均基于4GByte LPDDR4X 32GByte eMMC硬件配置的工控机开展。开发环境Windows开发环境Windows10 64bit、Windows7 64bitLinux开发环境VMware16.2.5、Ubuntu22.04.4 64bit系统版本Tronlong-Desktop 22.04类Ubuntu、Linux-6.1.141、U-Boot 2017.09sysrootrk3588-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz应用开发交叉编译工具链aarch64-linux-gnu-gcc版本为11.4.0通过网络下载术语表为便于阅读下表对文档出现的关键术语进行解释对于广泛认同释义的术语在此不做注释。注意事项1请先参考《应用开发手册》完成应用开发环境搭建。2无特殊说明默认从eMMC启动系统使用DEBUG接口作为调试串口通过路由器与PC机进行网络连接请确保PC机、Ubuntu系统可正常访问互联网。一、modbus_humiture_capture_save案例1.1案例说明本案例演示基于Modbus RTU协议的温湿度数据采集并在串口终端打印温湿度数据同时支持将数据保存至CSV文件。程序的运行流程如下图 1案例相关资料位于产品资料“4-软件资料\Demo\platform-demos\modbus_humiture_capture_save\”目录下。案例bin目录存放可执行文件src目录存放源码。1.2案例测试本次操作基于EPC-TL3588-BU工控机、温湿度变送器厂家中盛科技型号ZS-SHT30-1T-1H-5-36V-RS485进行演示。请使用杜邦线将温湿度变送器RS-485接口的A、B端子分别连接至RS-485串口的A1、B1端子硬件连接如下图所示。备注如需使用其他RS-485接口进行测试硬件连接方法类似。图 2请将本案例bin目录下的可执行程序modbus_humiture_capture_save拷贝至文件系统并在可执行程序所在目录下执行如下命令运行程序查看程序参数说明。Target#./modbus_humiture_capture_save -h图 3参数解析serial_port表示RS485对应的串口。-b设置波特率默认为9600。-s设置从站ID默认为1。-h查看帮助信息。执行如下命令采集温湿度变送器的数据。备注本次操作RS-485串口的设备节点为/dev/ttyS9。若使用其他RS-485串口请参考《EPC-TL3588工控机使用说明书》修改为对应的设备节点。Target#./modbus_humiture_capture_save /dev/ttyS9 -b 9600 -s 1图 4由以上打印信息可知当前环境温度为26.7°C湿度为68.9%。同时可观察到该温湿度信息每秒刷新一次。按下Ctrl C即可停止程序运行并且生成.csv文件。图 5执行如下命令查看.csv文件可以看到程序每秒获取到的温湿度数据。Target#cat data.csv图 6图 7将.csv文件拷贝至PC机可通过Excel表格查看获取温湿度数据。图 81.3案例编译请将产品资料“4-软件资料\Demo\platform-demos\modbus_humiture_capture_save\”案例源码拷贝至Ubuntu工作目录。进入案例源码目录执行如下命令修改Makefile文件确保SDK_ROOT_PATH为sysroot解压路径用户请根据实际情况修改。如下图所示。Host#vim Makefile图 9图 10执行如下命令配置交叉编译工具链并执行make命令进行案例编译。编译完成后将在当前目录下生成可执行文件。Host#source /home/tronlong/RK3588/environmentHost#make图 111.4关键代码1.初始化CSV文件。图 122.初始化Modbus创建Modbus RTU通信对象保存串口和通信参数。图 133.读取存放在温湿度变送器的寄存器的温湿度数据信息。图 144.解析温湿度信息。图 15