【云驻共创】手把手教你系列之鸿蒙设备开发之从0到1联网上云实操

本文主要是介绍【云驻共创】手把手教你系列之鸿蒙设备开发之从0到1联网上云实操,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、物联网开发概述
    • 1.物联网典型层级架构
    • 2.物联网常见的通信协议
      • 2.1 CoAP协议和MQTT协议
      • 2.2 ModBus协议
      • 2.3 OPC-UA协议
    • 3.物联网设备接入方式
      • 3.1 有线通信技术
      • 3.2 短距无线通信技术
      • 3.3 蜂窝移动网络
      • 3.4 LPWA通信技术
  • 二、鸿蒙设备开发
    • 1.环境搭建
      • 1.1 环境配置
      • 1.2 源码获取准备
    • 2.内核开发
      • 2.1 内核管理
      • 2.2 软件定时器
      • 2.3 信号量
      • 2.4 事件管理
      • 2.5 互斥锁
      • 2.6 消息队列
    • 3.驱动子系统
    • 4.无线联网
    • 5.网络通信
  • 三、鸿蒙设备如何联网上云
    • 1.华为云IoT,构建开放的物联网平台,加速企业数字化转型
    • 2.华为云IoT平台介绍
    • 3.鸿蒙开发板连接华为云IoT平台
    • 4.通信扩展板案例集
  • 四、由浅入深,“理论+实操+考试”一站式学习
  • 总结


前言

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

  • 物联网开发概述
  • 鸿蒙设备开发
  • 鸿蒙设备如何联网上云
  • 由浅入深,“理论+实操+考试”一站式学习

一、物联网开发概述

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 有线通信技术

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

通信方式特点适用场景
ETH协议全面、通用、成本低智能终端、视频监控
RS-232一对一通信、成本低、传输距离较近少量仪表,工业控制等
RS-485总线方式、成本低、抗干扰性强工业仪表、抄表等
USB一对一通信、通用、传输速度快智能家居、办公、移动设备等
M-Bus针对抄表设计、使用普通双绞线、抗干扰性强工业能源消耗数据采集
PLC针对电力载波、覆盖范围广、安装简便电网传输、电表

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开发工具要求

开发工具用途
Visual Studio Code代码编辑工具
Hiburn代码烧录工具
MobaXterm或其他超级终端远程连接Linux编译服务器
CH341SER.EXEUSB转串口驱动

3、Liunx构建工具要求

开发工具用途
Python3.7+编译构建工具
SCons3.0.4+编译构建工具
bash命令处理器
gn产生ninja编译脚本
ninja执行ninja编译脚本
交叉编译器 gcc riscv32交叉编译工具

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,所以需要编写软件使用GPIO
      0和GPIO1产生I2C信号去控制NFC芯片。
  • UART
    • UART1对应的GPIO引脚是分别是GPIO5和GPIO6,将使用GPIO5和GPIO6进行UART数据的收发。

在这里插入图片描述

4.无线联网

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

wifi_hotspot.h接口简介:

接口名功能描述
EnablelHotspot启用AP热点模式
DisableHotspot禁用AP热点模式
SetHotspotConfig设置指定的热点配置
GetHotspotConfig获取指定的热点配置
IsHotspotActive检查AP热点模式是否启用
GetStationList获取连接到该热点的一系列STA
GetSignallevel获取接收信号强度和频率
  • WIFI STA联网
    注册WIFI事件的回调函数
    使能WIFI
    判断WIFI是否激活
    分配空间保存WIFl信息
    轮询查找WIFl列表

wifi_device.h接口简介:

接口名功能描述
EnableWifi启用Wifi STA模式
DisableWifi禁用Wifi STA模式
IsWifiActive检查Wifi STA模式是否启用
Scan扫描热点信息
GetScanInfoList获取所有扫描到的热点列表
AddDeviceConfig配置连接到热点信息
GetDeviceConfigs获取配置连接到热点信息
RemoveDevice删除指定的热点配置信息
ConnectTo接到指定的热点
Disconnect断开Wif连接
GetLinkedInfo获取热点连接信息
GetDeviceMacAddress获取设备的MAC地址

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.通信扩展板案例集

在这里插入图片描述

四、由浅入深,“理论+实操+考试”一站式学习

华为云开展《14天鸿蒙设备开发实战营》,本次实战营课程通过理论讲解、动手实操使初学者具备鸿蒙设备开发基础技能,课程内容涵盖编译环境搭建、内核开发、驱动子系统开发、网络应用开发、设备联网上云等知识点。
在这里插入图片描述
在这里插入图片描述
相关活动网址:https://developer.huaweicloud.com/activity/device-develop_IoT.html
在这里插入图片描述

总结

本文主要讲解以下四个部分:物联网开发概述、鸿蒙设备开发、鸿蒙设备如何联网上云、由浅入深,“理论+实操+考试”一站式学习。

通过本课程学习相信大家对物联网相关概念和协议都有所了解,知道鸿蒙设备开发的一些知识和如何进行鸿蒙设备数据上云,本内容为14天课程的第一课,具体实操可以根据上面链接继续学习,也可以继续关注我,后续实时更新。


本文整理自华为云社区【内容共创】活动第18期。

查看活动详情:https://bbs.huaweicloud.com/blogs/364560

相关任务详情:任务26.鸿蒙设备如何从0到1联网上云

这篇关于【云驻共创】手把手教你系列之鸿蒙设备开发之从0到1联网上云实操的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/aa2528877987/article/details/125867625
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/701453

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I