本文件讲述采用国产ARM网关+国产RISCV采集节点+OpenHarmany轻量化操作系统实现一套实时采集温湿度、光照度、气体各类环境数据的的全国产化软硬件物联网管理系统。
重点突出物联网项目中硬件的全国产化,操作系统的全国产化的实现。项目示例代码仅做为示例参考使用。
本实践项目可做为大学相关专业课程的实训与实践项目,也可做为相关嵌入式工程师熟悉国产化嵌入式平台的实践项目。
本项目通过下述系列文章进行讲述说明:
项目参考源码及可执行文件:https://gitee.com/www_91arm/phytiumpi_iot_ia1_sf1
一、项目总体概述
本项目系统设计按照物联网多层架构进行设计,因暂无使用云平台,无相关物关网平台层功能设计。
感知层:各类型传感器,光线传感设备、气体传感设备、灯光控制节点、蜂鸣器控制节点。
网络层:本项目中主要是国产硬件平台控制节点通过WIFI方式,连接到主控网关设备,网关设备对数据进行汇集与初步处理与展示。
应用层:应用层通过把节点设备到大数据平台与网关设备的数据进行整合,通过运行的WEB服务器对用户提供管理接口与展示。
下图是目前国化产物联网软硬件平台架构方案:

系统运行时通过节点设备实时采集温湿度、光照度、气体各类环境数据,通过网络方式传输到国产网关进行汇集,网关把汇集的数据通过WEB服务器进行展示与处理。用户通过WEB界面可实时管理与查看多区域环境数据,可手动/自动管理联动设备,系统可记录分析环境数据。
二、系统软硬件说明
1、国产化硬件
主控模块:国产ARM开发板(飞腾派-E2000)+国产Linux定制操作系统
飞腾派开发板采用国产天津飞腾自主研发的定制四核处理器,该处理器兼容 ARM V8 指令集,具有模块化、易上手、全开源、低成本的特点,大大降低了国产处理器的开发使用门槛,解决了国产处理器难以普及推广的问题。飞腾派支持支持 Ubuntu、Debian 等国外主流开源操作系统,也支持国内 OpenKylin、 OpenHarmony、SylixOS、RT-Thread 等国产操作系统。

采集模块:国产RISCV开发板(华为海思Hi3861)+OpenHarmany轻量化操作系统
BearPi-HM_Nano开发板是一块专门为HarmonyOS设计的HarmonyOS开发板,板载高度集成的2.4GHz WLAN SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。


2、国产化软件
网关操作系统:飞腾派OS
飞腾公司基于板卡定制的Linux操作系统飞腾派OS(Phytium Pi OS),它是运行在飞腾派开发板上的深度定制的Linux系统(基于Debian11)。它针对飞腾派开发板的硬件定制了内核配置,不同的软件包,可以更好的适应不同的场景。
节点操作系统:OpenHarmony(轻量系统)
OpenHarmony支持如下几种系统类型:
-
轻量系统(mini system)
面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB,可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。
-
小型系统(small system)
面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为1MiB,可以提供更高的安全能力、标准的图形框架、视频编解码的多媒体能力。可支撑的产品如智能家居领域的IP Camera、电子猫眼、路由器以及智慧出行领域的行车记录仪等。
-
标准系统(standard system)
面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB,可以提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。
因为节点终端采用的RISC-V 32位设备,项目中使用的是OpenHarmony的轻量系统。
三、项目架构设计
1、硬件总体设计框图

2、软件总体设计框图
网关上运行的软件功能主要分为2部分,一是Web服务器运行的html程序与CGI程序,二是通信协议处理程序。二者的数据通过共享内存进行共享访问。网关与节点间通过TCP通信程序进行数据交互。

3、web服务器上运行的网页程序架构图

四、项目工程开发说明
网关代码可在arm开发板上直接编译,无需交叉开发环境。
节点代码通过Linux主机(或虚拟机)进行交叉开发下载到节点开发板。
开发环境:
PC机(Linux系统或虚拟机)网关程序编辑,节点程序编辑/编译。
网关开发板(arm程序编译环境)。
1、项目源码结构
项目参考源码及可执行文件:https://gitee.com/www_91arm/phytiumpi_iot_ia1_sf1

phytiumPi-iot-src:飞腾派网关的项目源码,可在网关上独立编译。
bearPi-src:是bearPi节点的项目源码,需要配合Openharmony的liteOS系统工程源码进行编译。
www-bin:是网关的web服务器及网络通信服务可执行文件,直接部署到设备。
2、开发板本机编译环境

3、cgi程序的编译
gcc gas_alarm.c -o gas_alarm.cgi

4、网络通信服务程序编译
gcc node_ser.c -lpthread -o node_ser

五、系统部署说明
飞腾派开发板,连接网线、(HDIM显示器、键鼠),插上电源适配器通电开机。
通过开发板本机查看其IP地址信息,PC机通过SSH登录到开发板进行后续操作。
项目硬件连接方式如下:
飞腾派网关接通电源、网线。节点终端通过type-c线接电脑USB接口。

1、网关web程序部署
Web服务器部署参考:
物联网网关Web服务器--lighttpd服务器部署与应用测试
项目参考源码及可执行文件:https://gitee.com/www_91arm/phytiumpi_iot_ia1_sf1
网关上Web服务器设置完成后,编译项目源码或gitee上下载可执行代码放入web服务器的配置目录。

PC机浏览器中输入WEB服务器IP地址,会显示如下界面(节点未连接,无数据)。

2、节点程序下载部署
下载方式参考:
节点程序下载后,采集节点开发板通过type-c线连接电脑,电脑通过软件连接到其串口,开发板按reset键重启,可查看其调试输出信息中的IP地址。不同节点需要分别查看。

3、网关网络通信服务部署
SSH到E2000开发板终端,在开发目录下运行网关上的网络通信服务程序。
通过网络通信服务程序分别连接节点1、节点2。
$./node_ser 192.168.199.108 1 &
$./node_ser 192.168.199.109 2 &
节点网络连接成功后,可以在web管理界面实时显示节点采集的传感器数据。

在网关的设备控制界面可以对设备进行控制。
