开发者社区> 愚公搬代码> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

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

前言

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

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

一、物联网开发概述

1.物联网典型层级架构

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

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

image

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

2.1 CoAP协议和MQTT协议

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

image

2.2 ModBus协议

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

image

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。

image

3.3 蜂窝移动网络

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

image

3.4 LPWA通信技术

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

image

二、鸿蒙设备开发

1.环境搭建

1.1 环境配置

1、硬件准备

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

2、Windows开发工具要求

3、Liunx构建工具要求

1.2 源码获取准备

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

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

image

2)从HPM网站组件式获取

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

image

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

hpm init -t default
hpm install @bearpi/bearpi_hm_nano

4)从代码仓库获取

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

image

目录介绍如下:

image

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的亮度。

image

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

image

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客户端。

image

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

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

image

2.华为云IoT平台介绍

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

image

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

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

image

4.通信扩展板案例集

image

总结

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL 10.1 手册_部分 I. 教程_第 2 章 SQL语言_2.7. 聚集函数
2.7. 聚集函数 和大多数其它关系数据库产品一样,PostgreSQL支持聚集函数。 一个聚集函数从多个输入行中计算出一个结果。 比如,我们有在一个行集合上计算count(计数)、sum(和)、avg(均值)、max(最大值)和min(最小值)的函数。
968 0
《UNIX网络编程 卷1:套接字联网API(第3版)》——第8章 基本UDP套接字编程 8.1概述
在使用TCP编写的应用程序和使用UDP编写的应用程序之间存在一些本质差异,其原因在于这两个传输层之间的差别:UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流。然而相比TCP,有些场合确实更适合使用UDP,我们将在22.4节探讨这个设计选择。
1302 0
《第三方JavaScript编程》——第7章 安全性 7.1Cookie,会话和会话窃取
当服务器接收到包含该cookie的请求时,会在本地查找同传递的会话令牌相匹配的用户记录。如果查找到对应的用户,服务器便会将该用户作为请求方,并返回相应的内容,直至cookie过期或者被删除(用户自己删除或者通过服务端设置的Set-Cookie头删除)。
1152 0
《单页Web应用:JavaScript从前端到后端》——1.3 精心编写的单页应用的用户效益
所有这些好处意味着,你可能会想把下个应用做成单页应用。每次点击后都会重新渲染整张页面的笨拙网站,容易日益疏远富有经验的用户。精心编写的单页应用具有互动和快速响应的界面,还伴有访问网络的功能,这将帮助我们把客户留在属于他们的地方:使用我们的产品。
1066 0
BIP_BI Pubisher的SQL/XSL/FO扩展函数应用(概念)
2014-12-01 Created By BaoXinjian 一、摘要 XML Publisher扩展了一些SQL和XSL,XSL-FO函数,使它们可以在RTF模板中使用.语法如下: 扩展SQL语法: 扩展XSL语法: 扩展FO语法:   二、解析 1.
1047 0
+关注
愚公搬代码
该博客包括:.NET、前端、IOS、Android、Linux、物联网、网络安全、python、大数据等相关使用及进阶知识。查看博客过程中,如有任何问题,皆可随时沟通。
221
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载