感谢电子发烧友和北京合众恒跃科技有限公司提供的评测机会。
HZHY-AI300G工业级国产化智盒,采用RK3588工业级芯片组适应-40℃-85℃工业级宽温网关。
以前测试过其他厂家的RK3568产品,对瑞芯微的工具也比较了解。
此次评测的项目计划:
1)根据文档,学习RK3588的AI开发环境和相关的程序框架。
2)利用RKNN框架进行视频识别的模型构建工作。
3)利用该开发板的接口实现WiFi和RS485传感器的连接工作,构建工业互联网关。
4)将所接收到的数据上传至MQTT服务器平台。
周末就拿到了开发板,非常的小巧,和实验室使用的工业网关做个对比,简直是美女和野兽的区别。
产品配了两根天线,短的是WiFi的,长的是4G的。
作为一款在复杂工况中使用的产品,4G模块还是非常有用的。
在合众恒跃的网站上可以看到基本的资料:RK3588-文档教程README--ShowDoc (hzhytech.com) 。如果需要详细资料,包括工具链、BSP、出厂镜像等,可以向淘宝客服索要。
网盘的内容主要是原厂提供的资料。各级目录下包括的主要内容如下。
产品的接口非常丰富,包括两个网口、两个USB口、一个调试口、一个OTG口、TF卡和SIM卡的接口。
产品还提供了GPIO、2个RS485、1个RS232接口,采用的是插拔式的PCB接线座,非常方便使用。
合众恒跃在B站上提供了很多学习视频,这点还是值得称道的:合众恒跃的个人空间-合众恒跃个人主页-哔哩哔哩视频 (bilibili.com)
内容主要包括:
厂商还提供了Linux入门的教程, 这对新手非常友好。我以前接触过一些工程师,他们以前有MCU经验,但是初试学习Linux还是有些困难的。
做RK3588的产品的厂商目前很多,合众恒跃还是给人不错的第一印象。
HZHY-AI300G智能盒默认的系统是Ubuntu,这样非常方便使用,接上USB键盘和鼠标就像使用电脑一样。
厂商在百度盘中提供了测试例程,今天就来简单的测试一下。
厂商提供的例程是针对交叉编译环境的,要在本地编译,修改修改一下Makefile。
将原来的代码中的CC注释掉:
#CC=/home/hzhy/HZHY/RK3568/rk356x_linux_sdk/buildroot/output/rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-gcc
CC=/home/hzhy/HZHY/RK3568/3568_demo/HZ-EVM-RK3568-GCC/bin/aarch64-buildroot-linux-gnu-gcc
APP_SRC_DIR = ./src
APP_INC_DIR = ./inc
改为:
#CC=/home/hzhy/HZHY/RK3568/rk356x_linux_sdk/buildroot/output/rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-gcc
#CC=/home/hzhy/HZHY/RK3568/3568_demo/HZ-EVM-RK3568-GCC/bin/aarch64-buildroot-linux-gnu-gcc
APP_SRC_DIR = ./src
APP_INC_DIR = ./inc
然后Make就可以得到可执行文件了。
开发板的RTC设备为/dev/rtc或/dev/rtc0。默认的设备访问权限是只有root用户可以读写,所以使用sudo chmod 666 /dev/rtc
将设备修改为人人可以读写。然后运行./rtc_demo rtc -r
就可以读出RTC数据了。
我在后面会用到RS485,所以也简单的运行了一下UART的程序程序。
从程序的结果可以看出,系统中有4个USB串口,这是4G模块所使用的,可以通过串口给模块发指令,进行上网操作;另外三个串口,ttyS0应该是RS232,而ttyS7和ttyS8应该是RS485接口。
后面,我会专门测试串口的使用。
为了能够将RS485等接口设备转换为MQTT设备,我使用了Neuron工业协议网关软件。Neuron是EMQ(杭州映云科技有限公司)出品的,它在物联网和工业互联网领域算是个领先厂商。我以前上课用的MQTTX客户端就是该公司的产品。
Neuron早先是开源软件,核心部分和MODBUS、MQTT插件都免费。现在NeuronEx是最新版本,已经不开源了。
Neuron是可以直接用现成的deb软件包安装的。厂商提供的x86和ARM架构的不同软件包。
根据不同版本及架构下载安装包,例如:
wget https://www.emqx.com/zh/downloads/neuron/2.6.8/neuron-2.6.8-linux-amd64.deb
sudo apt install neuron-2.6.8-linux-amd64.deb
安装后的版本,Neuron 提供了 30 个点(30 个连接和 30 个数据标签)的免费额度。可在不安装 EMQ 许可证的情况下,运行这些商业模块。超出免费额度后,则必须安装有效的试用版或官方 EMQ 许可证。
在浏览器输入http://localhost:7000就可以看到Neuron的登录界面了。
在南向设备中选择新建设备,创建一个名为RS485的设备,设备类型选择Modbus-RTU。
在创建设备的页面,物理链路选择为Serial,串口设备设置为/dev/ttyS8。
完成南向插件的添加和配置后,要建立设备与 Neuron 之间的通信,首先应为南向驱动程序添加组和点位。点击RS485设备,添加一个名为 Data 的数据组 。
点位是分配给一条信息的非分层唯一关键字,其中定义了设备中的数据存储位置和数据操作属性,还包含有关数据的一些元数据信息,如比例因子、精确度和读/写属性等。我使用的温湿度传感器有两个点位:温度和湿度。点位将被分配到组中。同一个组的数据以相同的频率进行采集以及上报。创建好组和点位,即可从数据监控中获取点位的实时值。
我选用的传感器是冀欧速传感器,它的产品采用的是MODBUS协议。MODBUS是一个非常老的协议,1979年成为事实上的国际标准,目前有个国际组织进行维护:The Modbus Organization。
RS485接口产品中使用的是MODBUS over Serial Line协议,或者称为MODBUS RTU协议,其官方文档定义:Specification and Implementation Guide for MODBUS over serial line
协议的基本格式非常简单,有地址域、功能码、数据和CRC校验组成。
冀欧速传感器的查询命令如下,这里功能码0x03就是用来查询数据的。
对数据简单解释一下:
在组列表页,点击组名称进入点位列表页,添加需要采集的设备点位,包括点位地址,点位属性,数据类型等。我们添加两个点位:
其中,其中Read属性用于读取数据,1 代表 Modbus 模拟器中设置的点位站点号,40001 代表点位寄存器地址,400001是第一个保持寄存器,设备值 * 乘系数 = 显示值`。
在南向设备中,可以看到RS485设备的运行状态。
在数据监控页面就可以看到温湿度传感器传过来的信息。
至此,我们完成了南向设备的添加工作。
前面介绍了如何在HZHY-AI300G智能盒创建南向设备,有了南向设备就可以实现数据采集,但是还需要建立北向设备才能将数据发送到MQTT服务器上。在介绍北向设备之前,先介绍如何在华为IoTDA平台上建立设备。
华为云设备接入IoTDA指的是设备接入服务(IoT Device Access),是华为云的物联网平台提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。
首先进入华为云IoTDA网站:华为云物联网平台_华为云IoT平台_IoT_设备接入-华为云,点击控制台按钮进行登录。控制台界面如下图:
在控制台界面处点击左上角三条横线,会出现菜单;
注册成功后可以点击左栏中的“总览”,显示运行中说明服务器正常。
选择左栏中的“设备→所有设备” 注册新设备,为后面Neuron的数据上传做准备。
今天介绍一下如何建立北向应用将采集到的数据发送到华为云物联网服务器上。
Neuron 是运行在物联网边缘网关硬件上的工业协议网关软件,通过将来自繁杂多样工业设备的不同协议类型数据转换为统一标准的物联网 MQTT 消息,实现设备与工业物联网系统之间、设备彼此之间的互联互通,进行远程的直接控制和信息获取。Neuron 支持同时为多个不同通讯协议设备、数十种工业协议进行一站式接入及 MQTT协议转换。北向插件用于连接到IOT平台或边缘流处理引擎,北向插件和南向插件组合使用实现数据采集和数据传递。
在Neuron控制台创建北向 MQTT 节点,连接并将点位数值上传到 MQTT Broker,此处是华为IoTDA平台。
在配置 -> 北向应用,点击 添加应用 添加 MQTT 客户端节点:
点击创建后,将跳转至应用配置页面,我们将在这里配置 Neuron 与北向应用建立连接所需的参数。您也可点击设备卡片上的设备配置图标进入应用配置界面。
点击应用卡片上的 应用配置 按键进入应用配置界面设置 MQTT 连接。
上述参数可以在云平台的左栏中 “设备→所有设备“,然后选定要使用的设备,进入设备详情后,选择”MQTT连接参数:查看” 中找到。我选择非SSL模式,这里的端口信息一定要选择1883。如果要使用SSL,则端口为8883,则在服务器和Neuron中都需要配置CA证书。
在Neuron中点击提交,完成北向应用的配置,应用卡片自动进入 运行中 的工作状态。
如果连接状态显示为断开,请检查网络状态或者MQTT连接参数是否正确。
采集点位是以组为单位进行数据上传的,订阅选择要上传的点位组。
点击 MQTT 节点卡片,进入组列表页,点击 添加订阅 选择要订阅的点位组,订阅南向设备的点位组。
在设备卡片或设备列,可点击数据统计图表查看及应用运行情况、接收和发送的数据情况。
如果Neuron中设备状态显示为已连接,就意味数据被成功发送到华为云上了。
登录华为云的控制台,在左栏中点击“监控运维→在线调试/消息跟踪→选择设备” 选中目标设备后返回点击IoT平台即可查看到相关日志。
数据也可以导出为Excel文件供进一步分析。数据也可以转发给华为的数据库,然后利用数据大屏进行可视化分析。这些内容超出了本次测评的范围,就不详细介绍了。
更多回帖