鸿蒙设备开发之从 0 到 1 联网上云 - 概述篇

简介: 本文主要讲解以下四个部分:物联网开发概述、鸿蒙设备开发、鸿蒙设备如何联网上云、由浅入深。通过本课程学习相信大家对物联网相关概念和协议都有所了解,知道鸿蒙设备开发的一些知识和如何进行鸿蒙设备数据上云。

前言

本文主要讲解以下四个部分:

  • 物联网开发概述
  • 鸿蒙设备开发
  • 鸿蒙设备如何联网上云

一、物联网开发概述

1.物联网典型层级架构

物联网层级架构主要分为以下五个部分:

  • 端:信息收集和信号处理
  • 边:本地数据自治、低时延
  • 管:接入和传输网络
  • 云:多协议多网络设备连接,数据分析和处理
  • 行业应用:数据呈现及客户交互

网络异常,图片无法展示
|

2.物联网常见的通信协议

2.1 CoAP协议和MQTT协议

  • CoAP是受限制的应用协议(Constrained Application Protocol)的代名词,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。
  • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)它构建于TCP/IP协议上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型“轻量级”通讯协议,使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦。

网络异常,图片无法展示
|

2.2 ModBus协议

  • ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。
  • ModBus通信协议分为物理层、数据链路层、应用层。

网络异常,图片无法展示
|

2.3 OPC-UA协议

  • OPC-UA (OPC Unified Architecture,OPC统一架构)协议
  • 由于其跨平台(不受限于架构平台)、面向服务的架构、信息通信安全等强大能力,被广泛应用于工业设备间的通信。
  • 连通机制:
  • 仅在PLC间通讯,协议无法跨网段。
  • 交互机制:
  • Client/Server和Publisher/Subscriber模式,前者应用之间必须建立单独点对点连接,后者可免去直接连接实现点对多点传输,读写PLC内地址快无需新增硬件,可实现不同厂商设备间数据调用,现阶段Client/Server模式更为通用。
  • 话务机制:
  • 可配置周期订阅与非周期直接读写,周期订阅中可配置发布周期,保活间隔,订阅监控数,采用速率,生命周期与读写超时配置

3.物联网设备接入方式

3.1 有线通信技术

有线通信是一种通信方式,狭义上现代的有线通信是指有线电信,即利用金属导线、光纤等有形媒质传送信息的方式。光或电信号可以代表声音,文字,图像等。

3.2 短距无线通信技术

短距无线通信技术主要分为:Bluetooth、Wi-Fi、ZigBee、Z-Wave。

网络异常,图片无法展示
|

3.3 蜂窝移动网络

蜂窝移动网络主要分为:2G、3G、4G、5G。

网络异常,图片无法展示
|

3.4 LPWA通信技术

LPWA通信技术主要分为:SigFox、LoRa、NB-IoT、eMTC。

网络异常,图片无法展示
|

二、鸿蒙设备开发

1.环境搭建

1.1 环境配置

1、硬件准备

  • Linux编译服务器:Ubuntu16.04及以上64位系统版本,Shell使用bash
  • Windows工作台:Windows XP/Windows7/Windows10
  • 开发板

2、Windows开发工具要求

3、Liunx构建工具要求

1.2 源码获取准备

1)从镜像站点下载压缩文件

https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz

网络异常,图片无法展示
|

2)从HPM网站组件式获取

HPM网站:https://hpm.harmonyos.com/#/cn/home软环境要求:Linux服务器安装12.13.0+的Nodejs

网络异常,图片无法展示
|

3)用包管理器命令行获取

hpm init -t default
hpm install @bearpi/bearpi_hm_nano

4)从代码仓库获取

需要先注册gitee账号,并配置邮箱源码链接:https://gitee.com/bearpi/bearpi-hm_nano

网络异常,图片无法展示
|

目录介绍如下:

网络异常,图片无法展示
|

2.内核开发

内核开发主要分为六部分:任务管理、软件定时器、信号量、事件管理、互斥锁、消息队列。

2.1 内核管理

  • 从系统的角度看,任务是竞争系统资源的最小运行单元。
  • 抢占式调度机制+时间片轮转调度方式,有32个优先级(0-31)。
  • 任务状态:就绪态、运行态、阻塞态、退出态,及状态迁移。
  • 任务管理:创建任务、删除某个任 务、任务挂起、任务恢复。

2.2 软件定时器

  • 基于系统Tick时钟中断且由软件来模拟的定时器。
  • 定时精度与系统Tick时钟的周期有关。
  • 使用系统一个队列&任务资源,触发遵循队列规则, 先进先出。
  • 软件定时器管理:创建/启动/停止/删除定时器。

2.3 信号量

  • 在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护可以通过信号量来实现。
  • 用作互斥时,信号量创建后记数是满的。
  • 用作同步时,信号量在创建后被置为空。
  • 信号量运作:初始化/创建/申请/释放/删除。

2.4 事件管理

  • 事件是一种实现任务间通信的机制可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输。
  • 多任务环境下,任务之间往往需要同步操作。事件可以提供一对多、多对多的同步操作。
  • 读事件/写事件/清除事件,写事件会触发任务调度。
  • 功能函数:创建事件标记对象、设置事件标记、等待事件标记触发、删除事件标记对象。

2.5 互斥锁

  • 互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。
  • 任意时刻互斥锁的状态只有两种开锁或闭锁。
  • 当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。
  • 当该任务释放时,该互斥锁被开锁任务失去该互斥锁的所有权。
  • 确保同一时刻只有一个任务正在访问非共享公共资源,保证了公共资源操作的完整性。
  • 功能函数:创建/获取/释放/删除互斥锁。

2.6 消息队列

  • 消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息。
  • 用户在处理业务时,消息队列提供了异步处理机制,起到缓冲消息作用。
  • 先进先出,支持异步读写;读/写队列都支持超时机制。
  • 功能函数:创建消息队列、发送消息、获取消息、删除消息队列。

3.驱动子系统

  • 操作GPIO
  • LED对应的GPIO引脚是GPIO2,通过控制GPIO2输出的的电平信号来实现LED灯的闪烁。高电平时点亮LED灯,低电平时熄灭LED灯。
  • GPIO中断
  • F1和F2按键对应的GPIO引脚是分别是GPIO11和GPIO12,通过检测GPIO的电平信号来判断按键的状态。实现按键控制LED灯亮灭。
  • PWM输出
  • 通过代码实现输出不同占空比的PWM来改变LED的亮度。

网络异常,图片无法展示
|

  • ADC采样
  • 根据输入参数从指定的ADC通道读取一段采样数据,编码实现读取ADC通道5的电压值。
  • 12C总线
  • NFC芯片的I2C对应的GPIO引脚是分别是GPIO0和GPIO1,所以需要编写软件使用GPIO0和GPIO1产生I2C信号去控制NFC芯片。
  • UART
  • UART1对应的GPIO引脚是分别是GPIO5和GPIO6,将使用GPIO5和GPIO6进行UART数据的收发。

网络异常,图片无法展示
|

4.无线联网

  • WIFI AP热点注册WIFI事件的回调函数设置指定的热点配置启动WIFI热点模式检查热点模式是否使能等待STA连接

wifi_hotspot.h接口简介:

  • WIFI STA联网注册WIFI事件的回调函数使能WIFI判断WIFI是否激活分配空间保存WIFl信息轮询查找WIFl列表

wifi_device.h接口简介:

5.网络通信

  • UDP客户端
  • 编码实现UDP客户端创建流程,使用Sockettool创建UDP服务端用于测试。
  • TCP服务端
  • 编码实现TCP服务端,使用Sockettool创建TCP客户端用于测试。
  • TCP客户端
  • 编码实现TCP客户端。
  • UDP服务端
  • 编码实现UDP服务端
  • MQTT客户端
  • 基于Paho MQTT,编码实现MQTT客户端。

网络异常,图片无法展示
|

三、鸿蒙设备如何联网上云

1.华为云IoT,构建开放的物联网平台,加速企业数字化转型

网络异常,图片无法展示
|

2.华为云IoT平台介绍

华为云物联网平台,即华为设备接入服务(loT Device Access) 提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。

网络异常,图片无法展示
|

3.鸿蒙开发板连接华为云IoT平台

案例演示如何在BearPi-HM Nano开发板上使用MQTT协议连接华为loT平台,需要将E53IA1智慧农业扩展板与BearPi-HM Nano开发板安装在一起。

网络异常,图片无法展示
|

4.通信扩展板案例集

网络异常,图片无法展示
|

总结

本文主要讲解以下四个部分:物联网开发概述、鸿蒙设备开发、鸿蒙设备如何联网上云、由浅入深。

通过本课程学习相信大家对物联网相关概念和协议都有所了解,知道鸿蒙设备开发的一些知识和如何进行鸿蒙设备数据上云。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
8月前
|
IDE JavaScript API
HarmonyOS开发第一步,熟知开发工具DevEco Studio
本文主要以常见的功能点作为概述希望可以帮助到学习HarmonyOS的开发者。
214 0
|
8月前
|
开发框架 API 开发者
HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 二)
在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。
|
2月前
|
存储 数据管理 调度
鸿蒙操作系统如何支持不同设备的适配和兼容性?
鸿蒙操作系统如何支持不同设备的适配和兼容性?
89 2
|
3月前
|
数据管理 API 调度
【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇
【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇
200 0
|
3月前
|
前端开发 JavaScript 开发者
鸿蒙2.0!用 JavaScript 开发鸿蒙应用
鸿蒙2.0!用 JavaScript 开发鸿蒙应用
|
3月前
|
开发者 索引 容器
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
107 0
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
|
3月前
|
人工智能 安全 开发者
中国移动APP启动鸿蒙原生应用开发,鸿蒙生态迎来通信领域民生应用
近日,在“鸿蒙生态全面合作签约暨开发启动仪式“上,中国移动通信有限公司在线营销服务中心宣布将与鸿蒙生态在技术互补、成果共享、商业共赢等方向进行合作,以共同推动鸿蒙智能化的移动开放生态业务发展,并正式启动中国移动APP鸿蒙原生应用及元服务开发。
|
8月前
|
人工智能 JSON API
HarmonyOS学习路之开发篇—AI功能开发(语音识别)
语音识别功能提供面向移动终端的语音识别能力。它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层API。该技术可以将语音文件、实时语音数据流转换为汉字序列,准确率达到90%以上(本地识别95%)。
|
8月前
|
Java 调度 数据安全/隐私保护
HarmonyOS学习路之开发篇—流转(多端协同 二)
完成 环境搭建,在DevEco Studio中,选择手机设备,Empty Feature Ability(Java)模板创建项目,在项目自动创建的MainAbility中实现IAbilityContinuation接口。
|
5月前
|
安全 前端开发 Android开发
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
鸿蒙开发学习是一项探索性的工作,旨在开发一个全场景分布式操作系统,覆盖所有设备,让消费者能够更方便、更直观地使用各种设备。
291 6
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)