鸿蒙设备开发之从 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
相关文章
|
7天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
7天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
13天前
|
监控 开发者
鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)
在HarmonyOS 5.0中,HiLog是系统提供的日志系统,支持DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。本文介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码。通过合理使用HiLog,开发者可以更好地调试和监控应用。
57 16
|
13天前
|
监控 UED 开发者
鸿蒙next版开发:订阅应用事件(ArkTS)
在HarmonyOS 5.0中,ArkTS引入了强大的应用事件订阅机制,允许开发者订阅和处理系统或应用级别的事件,这对于监控应用行为、优化用户体验和进行性能分析至关重要。本文详细介绍了如何在ArkTS中订阅应用事件,并提供了示例代码,包括导入模块、创建观察者、设置事件参数等步骤。通过这些方法,开发者可以更智能地管理和响应应用事件。
66 11
|
12天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
43 8
|
12天前
|
API 内存技术
鸿蒙next版开发:相机开发-拍照(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文详细介绍如何在ArkTS中实现拍照功能,包括导入接口、创建会话、配置会话、触发拍照及监听拍照输出流状态,并提供代码示例进行详细解读。通过本文,你将掌握如何在HarmonyOS 5.0中使用ArkTS实现高效的拍照功能。
33 7
|
12天前
|
监控 开发者
鸿蒙next版开发:使用HiDebug获取调试信息(ArkTS)
在HarmonyOS 5.0中,HiDebug是一个强大的应用调试工具,可帮助开发者获取系统的CPU使用率、内存信息等关键性能数据。本文详细介绍了如何在ArkTS中使用HiDebug,并提供了示例代码,帮助开发者进行性能分析和问题诊断。
34 7
|
13天前
|
开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(文本通用)
在HarmonyOS 5.0中,ArkTS提供了丰富的文本通用属性,如textAlign、maxLines、textOverflow、fontSize、fontColor、fontStyle、fontWeight、fontFamily、lineHeight、letterSpacing和decoration等,用于实现多样的文本显示和样式效果。本文详细解读了这些属性,并提供了示例代码,帮助开发者更好地利用这些工具,提升应用界面的美观和实用性。
47 8
|
12天前
|
前端开发 API
鸿蒙next版开发:相机开发-预览(ArkTS)
在HarmonyOS 5.0中,使用ArkTS进行相机预览是核心功能之一。本文详细介绍了如何使用ArkTS实现相机预览,包括导入相机接口、创建Surface、获取相机输出能力、创建会话并开始预览,以及监听预览输出状态等步骤,并提供了代码示例。通过本文,读者可以掌握在HarmonyOS 5.0中使用ArkTS进行相机预览的基本方法。
34 6
|
12天前
|
编解码 开发工具 计算机视觉
鸿蒙5.0版开发:命令行工具(mediatool工具)
在HarmonyOS 5.0的开发中,命令行工具mediatool基于FFmpeg库,提供了丰富的媒体处理功能,如视频和音频的转码、封装格式转换、提取媒体信息等。本文详细介绍mediatool的功能和使用方法,并提供代码示例。
34 6
下一篇
无影云桌面