RK3576单板机Modbus实战:工业温湿度采集+CSV存储一站式开发

    科创经济 朗峰江湖 2026-05-17 3270 次浏览

    前 言

    本文是创龙科技针对 RK3576 单板机编写的 Modbus 应用开发手册,聚焦工业场景下的 Modbus RTU 协议实战开发。文档以温湿度数据采集与 CSV 存储为典型案例,完整讲解串口配置、协议通信、数据解析与文件记录流程。

    开发环境

    Windows开发环境:Windows7 64bit、Windows10 64bit、

    Linux开发环境:VMware16.2.5、Ubuntu22.04.564bit

    sysroot:rk3576-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz

    系统版本:Tronlong-Desktop22.04(类Ubuntu)、Linux-6.1.115、U-Boot-2017.09

    术语表

    为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

    wKgZO2oD4TKAFt3hAABBRQEPv_s486.png

    1modbus_humiture_capture_save案例

    1.1案例说明

    本案例演示基于Modbus RTU协议的温湿度数据采集,并在串口终端打印温湿度数据,同时支持将数据保存至CSV文件。程序的运行流程如下:

    案例相关资料位于产品资料“4-软件资料Demoplatform-demosmodbus_humiture_capture_save”目录下。案例bin目录存放可执行文件,src目录存放源码。

    1.2案例测试

    本次操作基于SBC-TL3576-BU、温湿度变送器(厂家:中盛科技,型号:ZS-SHT30-1T-1H-5-36V-RS485)进行演示。

    请使用杜邦线将温湿度变送器RS-485接口的A、B端子分别连接至单板机的RS-485串口的A1、B1端子,硬件连接如下图所示。

    备注:如需使用其他RS-485接口进行测试,硬件连接方法类似。

    wKgZO2oD4UGAS0yuAA_KsAPbbKE424.png

    请将本案例bin目录下的可执行程序modbus_humiture_capture_save拷贝至单板机系统,并在可执行程序所在目录下,执行如下命令运行程序,查看程序参数说明。

    Target# ./modbus_humiture_capture_save -h

    参数解析:

    :表示RS485对应的串口。

    -b:设置波特率(默认为9600)

    -s:设置从站ID(默认为1)。

    -h:查看帮助信息。

    执行如下命令,采集温湿度变送器的数据。

    备注:本次操作单板机RS-485串口的设备节点为"/dev/ttyS1"。若使用其他RS-485串口,请参考《SBC-TL3576工业单板机使用说明书》修改为对应的设备节点。

    Target# ./modbus_humiture_capture_save /dev/ttyS1-b 9600 -s 1

    wKgZPGoD4U6ABEBTAAAWEaStQCI448.png

    由以上打印信息可知,当前环境温度为23.6°C,湿度为48.4%。同时,可观察到该温湿度信息每秒刷新一次。

    按下"Ctrl + C"即可停止程序运行,并且生成.csv文件。

    wKgZO2oD4VaAKxdGAAAfPA1Q3D0768.png

    执行如下命令,查看.csv文件,可以看到程序每秒获取到的温湿度数据。

    Target# catdata.csv

    wKgZO2oD4V2AQQReAAAaZTMlc-0726.pngwKgZPGoD4V6AVmTlAAAQWF3T2xc130.png

    将.csv文件拷贝至PC机,可通过Excel表格查看获取温湿度数据。

    wKgZPGoD4W-AYLnfAAAuurkBTxU043.png

    1.3案例编译

    请将产品资料“4-软件资料Demoplatform-demosmodbus_humiture_capture_save”案例源码拷贝至Ubuntu工作目录。进入案例源码目录,执行如下命令,修改Makefile文件,确保"SDK_ROOT_PATH"为sysroot解压路径,用户请根据实际情况修改。如下图所示。

    Host# vim Makefile

    wKgZPGoD4XeARplVAAA4GeK9lVE896.pngwKgZO2oD4XeACy2TAACuG4Xh3PM976.png

    执行如下命令,配置交叉编译工具链,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。

    Host# source /home/tronlong/RK3576/environment

    Host# make

    wKgZO2oD4X2AW9NpAADjg7NheGg614.png

    1.4关键代码

    (1)初始化CSV文件。

    wKgZO2oD4YOASFB0AABQxwSIMZQ739.png

    (2)初始化Modbus,创建Modbus RTU通信对象,保存串口和通信参数。

    wKgZPGoD4YeAdJ6yAABLAKHmLkk696.png

    (3)读取存放在温湿度变送器的寄存器的温湿度数据信息。

    wKgZO2oD4Y2AM5JjAAA8zK5D3XA687.png

    (4)解析温湿度信息。

    wKgZPGoD4ZKAK_xHAAA78FMF6jE472.png