嵌入式
返回首页

基于RK3562的Modbus协议温湿度采集实现

2026-04-09 来源:Tronlong创龙科技

前言

本文主要介绍基于SBC-TL3562单板机的Modbus协议开发案例,为相关开发提供实用参考。

开发环境

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

开发环境:VMware16.2.5、Ubuntu20.04.6 64bit

sysroot:rk3562-Tronlong-Desktop-20.04-sysroot-[版本号].tar.gz

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

备注:本文基于2GBy LP4X、16GByte eMMC配置单板机进行演示。

术语表

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

wKgZO2nKMCuAIalqAABBZFQqoKY248.png

注意事项

(1)无特殊说明情况下,本文默认从eMMC启动系统,使用DEBUG作为调试串口。

(2)请先参考《应用开发手册》“开发环境搭建说明”章节完成应用开发环境搭建。

1modbus_humiture_capture_save案例

1.1案例说明

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

wKgZPGnKMDKASIqvAADwDYqM7WA752.png图 1

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

1.2案例测试

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

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

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

wKgZPGnKMEKAIY9TAN2_osWPS4g178.png图 2

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

Target# ./modbus_humiture_capture_save -h

wKgZPGnKMFCAYJufAABAB-GswF8374.png图 3

参数解析:

:表示RS485对应的串口。

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

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

-h:查看帮助信息。

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

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

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

wKgZO2nKMImAJL3gAAAkUEGCOSo623.png图 4

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

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

wKgZO2nKMNKAGgpSAAAxY3o53HY608.png图 5

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

Target# catdata.csv

wKgZPGnKMN2AB3oGAAay3CUYYck370.png图 6

wKgZO2nKMN2AKp2FAAASkJ_vbe8065.png图 7

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

wKgZO2nKMOuAUrFKAAnVDZKuE5c073.png图 8

1.3案例编译

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

Host# vim Makefile

wKgZPGnKMPOALmgLAAA8VzRMEfU633.png图 9

wKgZO2nKMPOAZlSVAACoe1c5q1o571.png图 10

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

Host# source /home/tronlong/RK3562/environment

Host# make

wKgZPGnKMQGAOUWhAAEQ3UkRHsQ054.png图 11

1.4关键代码

(1)初始化CSV文件。

wKgZO2nKMd-AIgRlAABfeIALBQs820.png图 12

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

wKgZPGnKMeeAchRpAABWJH4tVNA963.png图 13

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

wKgZPGnKMe6AKeQbAABG_kMNIEk082.png图 14

(4)解析温湿度信息。

wKgZPGnKMfSAMXX9AABHO7Mh5cg371.png图 15


进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 24瓦甲类放大器

  • 100瓦高保真MOSFET放大器

  • 高保真前置放大器

  • 20MHz函数发生器

  • 50MHz频率计

  • 用于精确信号测量的示波器探头

    相关电子头条文章