基于OpenHarmony的环境参数监测系统设计

2022-07-04 03:20马建为李江荣
关键词:环境参数开发板应用层

马建为,李江荣,田 原

(延安大学数学与计算机科学学院,陕西延安 716000)

生产生活中,环境参数是较为敏感的数据,对工业生产工艺、工业设备的工作状态[1]、人的生命财产安全[2]、农作物的生长成熟[3]都有重要影响。开发部署环境参数监测系统,加强对环境参数指标的监测,可以为处理生产生活中的环境问题提供重要依据。

传统的环境参数监测系统设计多采用上下位机结构,检测终端作为下位机负责环境参数检测,服务器作为上位机负责数据处理、命令下达、人机交互等[4]。但这种传统的上下位机结构往往采用有线通信,其成本高昂且部署复杂,难以满足实际应用中的数据联网上报、可视化等复杂需求。随着物联网技术及云计算技术的发展,环境参数监测系统更多采用物联网的三层模型结构[5],即感知层、网络层和应用层。其中,感知层取代了下位机的概念,应用层取代了上位机的概念,信息传输的方式、方法则被单独抽象为网络层。物联网技术融合有线和无线通信等信息传输方式,其抽象的逻辑层次较上下位机结构能更清晰地划分环境监测系统功能结构,为数据联网上报、可视化乃至更复杂的应用层需求提供了设计依据和技术方案。

在工程实践方面,阿里云、华为云、腾讯云、亚马逊云、中国移动、中国联通、谷歌等服务商都提出了自己的物联网云平台方案[6-8],可用于环境参数监测系统设计开发。但是目前,多数的物联网云平台方案没有统一的操作系统支持,各抽象层的实现方法相对独立,系统集成过程相对复杂,系统开发部署的效率相对较低。与其他物联网云平台方案相比,华为以鸿蒙操作系统为核心,提供了一个接入无关、安全可靠、开放和弹性伸缩的物联网平台,是物联网端到端的整体解决方案,用户因此可实现对应用的快速集成。特别是华为开发的开源、开放的鸿蒙操作系统是面向多智能终端、全场景的分布式操作系统,定位于围绕应用场景,将人和设备有机联系在一起,构建由虚拟终端支持起来的物联网世界[9-10]。该操作系统强调在多种智能终端上实现极速发现、极速连接、硬件互助、资源共享[11]。应用鸿蒙操作系统设计开发环境参数监测系统,并利用华为物联网云平台整合系统,可提高系统开发和部署效率。

本文基于OpenHarmony 的环境参数监测系统设计,以华为海思处理器开发板为核心板,结合物联网终端技术,围绕环境参数监测系统需求,应用华为鸿蒙操作系统中的开源部分,即OpenHarmony,开发终端设备底层业务代码及应用程序,并应用华为物联网云平台整合系统。该系统主要实现的功能包括:环境参数采集、数据联网上报、指令下发、异常告警等。该设计方案适用于智慧农业、智慧城市、智能家居等需要环境参数监测的应用场景,从而达到高效开发和快速部署应用系统的目的。

1 系统设计

环境监测系统设计如图1 所示,采用四层物联网模型结构,即感知层、网络层、平台层和应用层[12]。

其中,系统的环境参数检测功能被划分到感知层,负责完成温湿度、光照强度等环境信息采集任务;网络层包括网络接入功能以及信息传输功能。这里面,信息传输功能主要是将感知层获取的数据上传到云服务系统,同时将云服务器的信息或指令下发给感知层设备。网络层可使用Wi-Fi、NB-IoT、蓝牙等通信方式接入网络,采用MQTT 协议等推送数据信息到平台层和应用层。云服务主要支持平台层功能,负责设备管理、命令下发、信息存储等管理功能。应用层则利用云服务器提供的服务或手机等用户终端来实现数据的可视化及客户交互。

图1 四层物联网模型及功能划分

基于OpenHarmony 的环境参数监测系统的功能逻辑如图2所示。设计方案以小熊派鸿蒙开发板为核心实现网络层和感知层的主要功能。该开发板使用海思微处理器,运行OpenHarmony 操作系统,实现包括系统外设初始化、网络接入、系统管理、数据采集、数据联网上报等功能。平台层和应用层功能则由云服务器和小熊派鸿蒙开发板协同实现,其中云服务采用华为云平台。

图2 系统功能逻辑

在系统开发和工程实践中,各功能模块可依据实际需求重新调整和划分,并作为系统更新的依据。

1.1 系统结构

基于OpenHarmony 的环境参数监测系统的系统结构如图3所示。系统以小熊派鸿蒙开发板为核心。开发板连接E53 扩展板,通过I2C 总线控制E53扩展板上搭载的温湿度传感器SHT30、光照强度传感器BH1750、LED 灯、电机等外设。开发板搭载有一枚海思Hi3861RNIV100 处理器芯片,其上运行OpenHarmony操作系统以管理软硬件资源。开发板通过海思处理器上集成的Wi-Fi SoC芯片接入网络,利用MQTT协议与平台层、应用层进行通信,以实现感知层数据的联网推送上报和应用层指令下发。客户可利用手机端或华为云提供的Web端获取环境参数数据,并实现对LED灯、电机等设备的控制。

图3 系统结构

1.1.1 核心开发板

设计方案选取了型号为BearPi-HM Nano 的小熊派鸿蒙开发板作为核心开发板。如图4所示,该开发板外形大小尺寸为73.2 mm × 62.7 mm ×11.1 mm,采用三段式设计,功能区域清晰明了。开发板采用USB Type-C 5V 电压供电,预留E53 扩展板接口,系统功耗低且易于扩展。该开发板带有NFC 标签,支持实现华为鸿蒙系统的“一碰即传”功能。

图4 Bear Pi-HM Nano开发板外形

BearPi-HM Nano 开发板搭载的海思Hi3861 RNIV100 微处理器如图5 所示。该处理器是一款32位微处理器,高度集成制式为IEEE802.11b/g/n的SoC Wi-Fi 芯片,支持正交频分复用(OFDM)技术,向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术。

图5 海思Hi3861RNIV100微处理器外形

1.1.2 小熊派E53扩展板

如图6所示,E53扩展板是尺寸为5 cm×3 cm大小的扩展板,接口为20 引脚。设计方案选取的E53_IA1扩展板上的温湿度传感器SHT30支持2.4~5.5 V电压供电,测量范围为温度–40 ℃~125 ℃、相对湿度0%~100%。光照强度传感器BH1750,支持2.4~3.6 V电压供电,运行温度-40 ℃~85 ℃,测量范围1~655 35 Lx。

1.2 软件开发

软件的开发可在OpenHarmony 内核抽象层(kernel abstract layer,KAL)之上进行。内核抽象层为用户提供进程管理、内存管理、文件系统、网络管理和外设管理等操作系统功能。鸿蒙的内核抽象层同时支持CMSIS(Common Microcontroller Software Interface Standard)和 POSIX(Portable Operating System Interface)[13]2 种应用程序接口标准。本次开发采用轻量级系统中常用的CMSIS标准。

图6 E53_IA1型扩展板外形

1.2.1 环境参数检测

环境参数检测通过对E53扩展板上的传感器操作实现。获取到的温湿度及光照强度等环境信息通过串口通信打印到终端,当光照强度过低或者当温度、湿度超标时,则触发警报,开启LED 灯标识、电机振动标志。流程如图7所示。

图7 环境参数检测流程

1.2.2 Wi-Fi通信

核心开发板通过扩展板采集各项环境监测数据后,需要通过Wi-Fi 联网将数据上报华为云端。海思Hi3861RNIV100 微处理器SoC Wi-Fi 芯片连接Wi-Fi流程如图8所示。

1.2.3 MQTT协议

消息队列遥测传输协议(message queuing telemetry transport,MQTT),是一种基于TCP/IP 协议的即时通讯协议,采用发布/订阅(publish/subscribe)模式为处于网络层上的传感器与平台层、应用层提供实时消息服务。MQTT 协议开销低、带宽占用小,易于实现,在物联网工程中应用广泛。如图9所示,作为MQTT 协议的客户端,开发板上需要布置相关业务代码,主要包括网络连接信息结构体定义、MQTT 客户端信息结构体、MQTT 客户端初始化、MQTT 客户端连接代理服务器、订阅MQTT 消息、发布MQTT 消息等。这些业务代码,本文的设计采用鸿蒙系统项目下的第三方代码进行布置。

图8 Wi-Fi连接流程

图9 MQTT即时通讯协议

1.3 系统集成

1.3.1 开发工具链

本文的系统开发环境布置在Windows 及Linux操作系统上,如图10 所示。系统编译环境在Linux系统下建立,使用集成开发环境DevEco Device Tool,该开发环境以插件的形式部署在Visual Studio Code 上。应用程序使用C 语言编写,通过GN(Generate Ninja)、Ninja 和SCons 实现项目的工程管理,其安装配置需要Python 及gcc 编译器的支持。开发环境还需要安装npm 和hpm 等鸿蒙操作系统的组包和发行版管理工具。

图10 开发工具链

Windows 操作系统上需要布置烧写工具HiBurn,它是针对海思Hi3861 芯片的专用烧写工具,用来向开发板烧写编译好的系统镜像。为了与开发板进行通信,需要在Windows 系统上安装终端工具,如MobaXterm等工具。

为了提高工作效率,Windows与Linux操作系统可通过网络文件系统共享开发过程中所需要的文件,例如在Linux 操作系统上安装网络磁盘服务samba等。

1.3.2 系统整合

系统整合主要包括云平台配置和开发板底层业务代码修改两部分工作。

华为云平台的配置主要完成终端设备在云平台上的设备注册,这包括:创建产品,选择设备的通信协议类型以及数据格式等设备信息,云平台为产品分配ID 号;添加服务,定义服务类型,在服务属性中设置数据类型、访问权限以及相关的命令操作。

底层业务代码修改在获取设备ID 后进行。设备的云平台注册数据信息需要写入核心板底层相关业务代码中,这些代码主要实现终端设备与云平台的连接、数据推送和命令接收等功能。

用户与设备终端之间使用MQTT协议实现信息传递,这需要通过MQTT 代理服务完成。用户可以独立架设MQTT 代理服务器,例如在开发工具链中Windows 系统上使用开源MQTT 组件Mosquitto 实现MQTT 代理服务,用户也可以通过云服务运营商获取MQTT代理服务。本文的系统整合采用华为云的MQTT代理服务器。

2 系统测试

系统测试阶段首先测试核心板功能,然后进行系统整合。

为了测试核心板的功能,关闭了华为云与设备的连接。系统工作时,通过串口与PC 机进行通信,并在串口终端捕获如下信息。如图11可见,系统能够正常获取光照强度、温湿度等环境参数信息,其中,当光照强度低于10 Lx 时,系统执行补光操作并发出警告。

系统整合阶段,如图12、图13 所示。首先在华为云端创建了“环境参数监测”的产品,并指定通信协议类型为MQTT 协议,添加了温度、湿度、光照强度、LED 灯状态、电机状态等服务属性以及对LED灯、电机等外设进行开关控制的命令。注册设备并获得该设备ID、配置设备密钥。将上述信息添加到系统底层业务代码中,并在底层代码中配置Wi-Fi,使设备可连接至外部网络。

图11 串口终端打印环境参数数据

图12 华为云端注册产品

图13 华为云端服务属性及命令配置

系统工作时,将环境参数取整并联网上报华为云端,华为云端获得联网数据如图14所示。对LED灯、电机状态的控制指令,均可从华为云端向设备下发。

如图15 所示,PC 机串口终端与云端数据信息一致,核心板执行了从云端下发的控制指令,LED灯与电机依照控制指令改变工作状态。

对比上述数据可知,终端系统数据采集工作正常,终端上报数据与华为云端数据一致,云端下发指令在终端系统上正确执行。测试结果说明,该系统具备了环境参数采集、数据联网上报、指令下发、异常告警等功能,设计功能均获实现。由于利用OpenHarmony 操作系统进行系统开发,采用华为物联网云平台进行系统整合,因此在系统设计和实现过程中,系统底层业务代码编写劳动强度大大降低,系统调试快捷高效。采用OpenHarmony 进行系统设计开发,可使设计开发工作更集中于应用层中的业务逻辑设计,这大大提高了系统开发效率,加快了系统部署速度。

图14 华为云端环境参数数据

图15 串口终端打印环境参数数据

3 结论

本文研究的环境参数监测系统设计,采用华为物联网解决方案,硬件选用带有海思Hi3681处理器的轻量级终端,软件选择在OpenHarmony 操作系统上进行开发,网络通信业务代码选择OpenHarmony下的第三方代码,并应用华为云服务平台整合系统。系统测试结果表明,该系统最终实现了环境参数数据采集、数据联网上报和指令下发等功能,验证了设计方案的正确性。该设计方案功能逻辑清晰,硬件灵巧轻便,开发工具链易于搭建、使用,软件开发劳动强度降低。与其他物联网解决方案相比,采用华为物联网解决方案,应用OpenHarmony设计开发环境参数监测系统,提高了系统开发效率,系统部署迅速,该设计方案适合在需要环境参数监测的相关应用场景中使用。后续将加强应用层上的数据可视化及环境参数控制等相关业务逻辑设计方面的工作。

猜你喜欢
环境参数开发板应用层
基于Verilog语言的4位二进制可逆计数器的设计
开发板在单片机原理及接口技术课程教学中的应用
传输层和应用层的隧道技术
基于ZigBee的多环境参数监测系统设计
基于分级保护的OA系统应用层访问控制研究
农业大棚环境远程监控系统的研究与设计
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
物联网技术在信息机房制冷系统中的应用
组合式羊舍冬季环境参数测定及育肥鲁西黑头肉羊效果分析
一种基于三模冗余的智能复合传感器设计