基于鸿蒙系统和OTA技术的农业大棚测控系统

2024-01-09 03:14罗玉海王椿曦熊正烨
现代农业装备 2023年6期
关键词:固件服务端大棚

罗玉海,王椿曦,熊正烨

(广东海洋大学电子与信息工程学院,广东 湛江 524088)

0 引言

农作物生长需要适宜的环境,而且不同作物适宜的生长条件会有所不同[1],在农业温室中部署物联网设备对环境参数进行实时监控是解决问题的一个重要途径[2]。有学者从系统的实时性、灵活性、智能化、成本等方面对温室环境监测系统进行了研究[3-5],这些研究在一定程度上促进了智慧温室大棚技术的发展,但未涉及测控终端固件或软件的OTA 远程升级。农业物联网方案部署时,物联网设备需要运行自定义的系统软件,实现数据的收集或执行操作。然而,随着需求的变更,该系统软件可能还需要更新和改进,包括软件缺陷修复、新功能添加以及系统安全增强等[6-7]。OTA 固件更新功能可为物联网设备提供多种便捷,如可远程修补系统缺陷或安全漏洞,无需技术服务人员或用户亲临设备现场执行更新,从而降低设备维护成本等。

本研究基于鸿蒙系统,设计一种支持OTA固件升级的农业大棚测控系统,实现终端设备的远程监测和控制,提供支持OTA 固件升级的网络方法,使系统可通过网络远程更新终端系统固件。

1 系统总体结构设计

基于鸿蒙系统的农业大棚测控系统使用MQTT作为传输协议,系统逻辑分为3 层,自下而上分别为感知层、网络层和应用层。感知层负责采集大棚环境参数,如测量空气温湿度、光照强度、二氧化碳浓度等环境信息数据,然后通过网络层WiFi 无线网络传输到应用层MQTT 服务器,再由MQTT 服务器转发信息给Web 设备管理系统。Web 设备管理系统提供Web 服务,用户可以通过浏览器与农业大棚内的终端设备进行交互。系统层次结构如图1 所示。

图1 系统层次结构

2 系统硬件设计

2.1 硬件结构

系统以Hi3861 作为主控制器,连接相关外围功能模块。主要模块包括空气温湿度测量模块、光强度测量模块、二氧化碳测量模块、OLED 显示模块、LED 灯和直流电机等。系统硬件结构如图2所示。

图2 系统硬件结构

由于用户无需与采集终端设备的程序界面直接进行交互,终端设备的程序界面仅用于显示采集的数据信息,因此,可采用OLED 显示器作为系统的显示单元。在本设计中,通过远程控制设备的通用输入输出端口(General-purpose input/output,简称GPIO)输出高低电平对LED 灯进行亮/灭控制,远程控制设备脉宽调制输出来控制风扇电机转动。在实际应用中,可将设备与继电器连接,通过远程控制设备的输出控制继电器,进而控制农业大棚的灯光设施、通风设施等。

2.2 主控板

本设计采用的主控板为基于海思Hi3861 芯片的WLAN 模组的核心板,Hi3861 芯片内置SPI、UART、I2C、GPIO、PWM 和ADC 等多种外设接口[8],同时内置SRAM 和Flash,可独立运行,并支持在Flash 上运行程序。由于Hi3861 芯片同时支持WiFi 功能和常用的外设接口,使用该芯片可低成本,简单、快速地实现网络连接和设备控制功能,因此特别适用于智慧农业等物联网智能终端领域。Hi3861 主控板如图3 所示。

图3 Hi3861 主控板

2.3 采集单元

感知能力是测控系统最为基本的能力。通过部署各类传感器作为系统的采集单元,感知大棚环境的各种参数,实现对大棚环境的监测。本设计采用如下传感器模块:

1)DHT20 温湿度传感器模块,其工作电压为2.2~5.5 V,温度测量范围为-40~80 ℃,湿度测量范围为0~100 %RH,该模块具有低功耗、稳定性高、响应迅速、抗干扰能力强等特点,通过IIC 与主控制器连接,实现空气温湿度的采集。

2)BH1750FVI 光强度传感器模块,其工作电压为3~5 V,光强度测量范围为1~65 535 lx,该模块可测量较大范围的光强度变化,非常适合应用于农业大棚每日光照变化幅度较大的场景;支持IIC 接口,能直接输出相对应的光照强度的数值,可满足农业大棚测控系统的开发需求。

3)SGP30 气体传感器模块,该模块支持IIC 接口,主要用于对空气质量进行检测,可测量甲醛和二氧化碳浓度。

3 软件系统设计

3.1 设备端程序设计

该研究采用Hi3861 硬件搭载基于OpenHarmony 3.0 源码的鸿蒙系统[9],在该系统中植入设备开发者自定义的程序。设备上电后,先进行鸿蒙系统的初始化,然后进入自定义的程序,包括主程序和传感器采集子程序。主程序用于建立网络连接,上报传感器测量数据和处理远程控制命令;传感器采集子程序用于读取和更新传感器数据。主程序流程如图4所示。

图4 主程序流程

初始化WiFi 并建立网络连接后初始化MQTT 客户端,设置消息回调函数地址,根据MQTT 服务器的IP 地址及端口号与之建立连接,订阅指定主题的MQTT 消息;之后定期更新传感器数据并判断是否需要上传,若需要上传则以JSON(JavaScript Object Notation,JavaScript 对象表示法)格式封装传感器数据并通过MQTT 上报信息;若接收到来自MQTT 服务器的消息,系统会执行消息回调函数。在处理MQTT消息时,先解析消息的内容得到远程指令类型,然后根据指令类型执行相关的操作。若指令类型为设备控制指令,则进一步解析设备控制的指令参数,根据参数控制LED 或电机的状态。若指令类型为OTA升级指令,则进一步解析指令参数得到OTA 服务端的IP 地址和端口号,然后根据IP 地址和端口号连接OTA 服务端,请求并下载升级文件并对其进行签名验证,验证通过后调用Hi3861 系统的升级接口进行升级。

传感器采集子程序流程如图5 所示。首先对各传感器模块及OLED 显示模块进行初始化,然后定期读取各传感器数据并更新OLED 的显示内容。

图5 传感器采集子程序流程

3.2 OTA文件签名及验签方案设计

为确保OTA 文件的合法性,本设计自定义一种基于RSA 算法[10-11]的文件签名及验签方法,对OTA文件进行签名及验证,以保证OTA 文件数据的完整性和安全性。该文件签名及验签方法具有普适性,可用于其它文件的签名。

自定义的文件签名格式为:

1)签名文件=原始文件+签名信息;

2)签名信息=签名头信息(44 字节)+签名数据(256 字节);

3)签名头信息=魔术字(4 字节)+密钥指纹(16 字节)+签名时间(7 字节)+预留(17 字节)。

其中,魔术字定义为0x3C4D5E6F 作为签名标志,可用于快速判断文件是否含有签名;密钥指纹为基于公钥数据的MD5[12]值;签名时间为该文件的签名时间;预留字段为以后扩展备用。

文件的签名原理:对原始文件进行SHA-256 运算得到哈希值;使用PKCS#1(v1.5)标准[13]将哈希值填充为256 字节的数据块;使用RSA 私钥对填充后的数据块进行RSA 加密运算,得到256 字节的签名数据;按自定义的签名格式生成签名信息,并将签名信息追加到原始文件的尾部,得到最后的签名文件。OTA 文件的签名流程如图6 所示。

图6 OTA 文件的签名流程

文件的验签原理:从文件尾部读取签名信息,判断是否有签名标志,若无签名标志则验签失败,若有签名标志则继续验签流程;取出256 字节的密文签名数据,并使用RSA 公钥进行RSA 解密运算,若解密失败则验签失败,若解密成功则继续验签流程;从解密后的明文数据中取出32 字节的哈希值HASH1;使用与签名流程相同的方法对除去签名信息的文件内容进行SHA-256 运算得到哈希值HASH2;对比HASH1 与HASH2,若不同则验签失败,若相同则验签成功。OTA 文件的验签流程如图7 所示。

图7 OTA 文件的验签流程

3.3 OTA固件升级功能的实现方法

该研究设计的OTA 固件升级功能由设备端与OTA 服务端协同完成,其中OTA 服务端程序内嵌于基于Django[14]开发的Web 设备管理系统,用户可通过浏览器登录该系统,查看大棚气象环境数据,可对大棚设施进行相应的控制,也可对终端设备进行OTA 固件升级。采用客户端/服务器(C/S)架构,设备端作为客户端,OTA 服务端作为服务器端,通过socket 实现2 个进程间的通信,从而实现信息传递与数据交互。OTA 固件升级流程如图8 所示。用户通过Web 浏览器进入Web 设备管理系统的OTA升级页面,输入OTA 服务器端的IP 地址和端口号,然后选择要升级的OTA 文件版本,再通过HTTP 发起升级请求。Web 设备管理系统解析HTTP 请求的参数,然后以JSON 数据格式封装升级参数,再通过MQTT 向设备发送OTA 升级请求。设备端接收到升级请求后解析消息得到OTA 服务端的IP 地址和端口号,并与OTA 服务端建立socket 连接,然后向OTA 服务端请求下载升级文件。OTA 服务端接收到socket 请求后,根据请求参数选择相应版本的OTA文件,然后读取OTA 文件数据并发送给设备端。设备端下载升级文件完成后对文件进行签名验证,验证通过后调用系统的升级接口进行升级,最后重启设备完成升级。

图8 OTA 固件升级流程

4 系统测试

4.1 数据监测测试

基于MQTT 协议的开源消息代理Mosquitto[15]搭建MQTT 服务器对系统进行测试。通过浏览器登录Web 设备管理系统,进入系统首页,首页的内容主要分为2 部分,一部分为用图表显示湿度和温度的实时数据(横轴为时间,纵轴为温湿度),另一部分为用文本显示设备固件版本号和环境数据(包括温度、湿度、光照强度、二氧化碳浓度)。为验证数据监测的有效性,对设备进行了对比试验。将设备置于光线偏暗的环境下,在设备传感器附近放置蜡烛,如图9 所示。对比点燃蜡烛前后的Web 页面数据,从图10 和图11 可看出,当点燃蜡烛时,环境数据出现明显的变化,具体表现为温度升高,湿度降低,光照变强,二氧化碳浓度变高。这些环境数据的变化符合预期,说明数据的监测实时有效。

图9 系统实物测试环境

图10 点燃蜡烛前的Web 页面数据

图11 点燃蜡烛后的Web 页面数据

4.2 设备控制

Web 设备管理系统的设备管理页面分为“设备控制”和“OTA 升级”2 部分,如图12 所示。通过“设备控制”一栏中的“LED 开关”和“风扇开关”可远程控制终端设备的LED 和电机。通过“OTA 升级”一栏,可对终端设置进行OTA 固件升级。在界面中分别输入OTA 服务器端的IP 地址和端口号,然后选择要升级的OTA文件版本,最后点击“升级”按钮下发升级指令。升级完成后,返回系统首页可以查看到设备升级后的固件版本号和预期一致,OTA固件升级功能正常。

图12 设备管理页面

5 结语

基于鸿蒙系统和OTA 技术研究的农业大棚测控系统可以实现对农业大棚的远程监测和调控,并能够对农业大棚的终端设备进行OTA 固件升级,在一定程度上提升了系统维护的灵活性、降低了物联网设备的维护成本,提高了农业大棚的智能化程度。经过测试验证,该系统能够有效地完成对农业大棚空气温度、空气湿度、光照强度、二氧化碳浓度等大棚环境数据的实时监测,用户可以通过Web 设备管理系统观察大棚环境数据并对大棚设施进行相应的控制。该研究选用的是国产自主研发的鸿蒙操作系统,在当今我国面临很多技术被“卡脖子”的情况下,对基于国产操作系统的应用研究及推广有一定的意义。

猜你喜欢
固件服务端大棚
大棚妹子
大棚换茬季 肥料怎么选
谨防大棚房死灰复燃
原地翻建大棚 注意啥
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
基于固件的远程身份认证
提取ROM固件中的APP
一种通过USB接口的可靠固件升级技术