梅科尔工作室-#14天鸿蒙设备开发实战#开营直播笔记 原创
@toc
开营直播笔记
物联网开发概述
物联网典型层级架构
- 端,信息收集和信号处理
- 边,本地数据自治、低时延
- 管,接入和传输网络
- 云,多协议多网络设备连接数据分析和处理
- 行业应用,数据呈现及客户交互
物联网常见通信协议
-
CoAP是受限制的应用协议(Constrained Application Protocol)的代名词,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。
-
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)。它构建于TCP/IP协议上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型“轻量级”通讯协议,使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦。
- CoAP与MQTT对比
- CoAP与MQTT对比
-
ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。ModBus通信协议分为物理层、数据链路层、应用层。
-
OPC-UA(OPC Unified Architecture,OPC统一架构)协议由于其跨平台(不受限于架构平台)、面向服务的架构、信息通信安全等强大能力,被广泛应用于工业设备间的通信。
物联网设备接入方式
有限通信技术
通信方式 | 特点 | 适用场景 |
---|---|---|
ETH | 协议全面、通用、成本低 | 智能终端、视频监控 |
RS-232 | 一对一通信、成本低、传输距离较近 | 少量仪表,工业控制等 |
RS-485 | 总线方式、成本低、抗干扰性强 | 工业仪表、抄表等 |
USB | 一对一通信、通用、传输速度快 | 智能家居、办公、移动设备等 |
M-Bus | 针对抄表设计、使用普通双绞线、抗干扰性强 | 工业能源消耗数据采集 |
PLC | 针对电力载波、覆盖范围广、安装简便 | 电网传输、电表 |
短距无线通信技术
Bluetooth | Wi-Fi | ZigBee | Z-Wave | |
---|---|---|---|---|
频段 | 2.4GHz | 2.4GHz<br>5GHz | 868MHz/915MHz,2.4GHz | 868.42MHz(欧洲)<br>908.42MHz(USA) |
传输速率 | 1Mbps-3Mbps(24Mbps over 8o2.11 Link) | 11b:11Mbps<br>11g:54Mbps<br>11n:60OMbps<br>11ac:1Gbps<br>11ax:9.6Gbps | 868MHz:20kbps<br>915MHz:40kbps<br>2.4GHz:250kbps | 9.6kbps或40kbps |
典型距离 | 1-300m | 50-100m | 2.4GHz band:10-100m | 30m(室内)~ 100m(室外) |
典型应用 | 智能家居或鼠标、无线 耳机、手机、电脑等邻 近节点数据交换 | 无线局域网,家庭,室 内场所高速上网 | 家庭自动化、楼宇自动 化、远程控制 | 智能家居,监控和控制 |
蜂窝移动网络
2G | 3G | 4G | 5G | |
---|---|---|---|---|
频段 | 授权频段 (以900M为主) | 授权频段 (900、1800M为主) | 授权频段 (180OM-260OM) | 授权频段:C-band毫米波 |
传输速率 | GSM:9.6Kbps GPRS: 56-114Kbps | TD-SCDMA:2.8Mbps<br>CDMA2000:3.1Mbps<br>WCDMA:14.4Mbps | 下行<br>Cat.6、7:300Mbps<br> Cat.9、10:450Mbps | 10Gbps (巴龙50OO芯片支持下行速率-4.6Gbps;上行速率-2.5Gbps) |
典型应用 | POS、智能可穿戴设备 | 自动售货机、智能家居 | 移动终端、视频监控 | AR、VR、辅助驾驶、自动驾驶、远程医疗 |
LPWA通信技术低功耗广域网
SigFox | LoRa | NB-loT | eMTC | |
---|---|---|---|---|
频段 | SubG免授权频段 | SubG免授权频段 | 主要在SubG授权频段 | SubG授权频段 |
传输速率 | 100bps | 0.3-5kbps | <250kbps | <1Mbps |
典型距离 | 1-50km | 1-20km | 1-20km | 2km |
典型应用 | 智慧家庭、智能电表、移动医疗、远程监控、零售 | 智慧农业,智能建筑, 物流追踪 | 水表、停车、宠物跟踪、垃圾桶、烟雾报警,零售终端 | 共亨单车、宠物项圈、 POS、智能电梯 |
环境要求
工具
获取源码工程
- 从镜像站点下载压缩文件
- 从HPM网站组件式获取
- 用包管理器命令行获取
- 从代码仓库获取
内核开发
任务管理
- 从系统的角度看,任务是竞争系统资源的最小运行单元
- 抢占式调度机 + 时间片轮转调度方式,有32个优先级(0-31)
- 任务状态:就绪态、运行态、阻塞态、退出态,及状态迁移
- 任务管理:创建任务、删除某个任务、任务挂起、任务恢复
软件定时器
- 基于系统Tick时钟中断且由软件来模拟的定时器
- 定时精度与系统Tick时钟的周期有关
- 使用系统一个队列&任务资源,触发遵循队列规则,先进先出
- 软件定时器管理:创建/启动/停止/删除定时器
信号量
- 在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,可以通过信号量来实现
- 用作互斥时,信号量创建后记数是满的
- 用作同步时,信号量在创建后被置为空
- 信号量运作:初始化/创建/申请/释放/删除
事件管理
- 事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输
- 多任务环境下,任务之间往往需雯同步操作。事件可以提供一对多、多对多的同步操作
- 读事件/写事件/清除事件,写事件会触发任务调度
- 功能函数:创建事件标记对象、设置事件标记、等待事件标记触发、删除事件标记对象
互斥锁
- 互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理
- 任意时刻互斥锁的状态只有两种:开锁或闭锁
- 当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权
- 当该任务释放时,该互斥锁被开锁,任务失去该互斥锁的所有权
- 确保同一时刻只有一个任务正在访问非共享公共资源,保证了公共资源操作的完整性
- 功能函数:创建/获取/释放/删除互斥锁
消息队列
- 消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息。
- 用户在处理业务时,消息队列提供了异步处理机制,起到缓冲消息作用
- 先进先出,支持异步读写;读/写队列都支持超时机制
- 功能函数:创建消息队列、发送消息、获取消息、删除消息队列
驱动子系统开发
操作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和GPIO_1产生I2C信号去控制NFC芯片
UART
- UART1对应的GPIO引脚分别是GPIO5和GPIO6,将使用GPIO5和GPIO6进行UART数据的收发
无线联网
WIFI AP热点
-
注册WIFI事件的回调函数
-
设置指定的热点配置
-
启动WIFI热点模式
-
检查热点模式是否使能
-
等待STA连接
主要涉及到了源码工程中wifi_hotspot.h的头文件,其中封装了一些接口,部分接口及对应如下图所示
WIFI STA联网
- 注册WIFI事件的回调函数
- 使能WIFI
- 判断WIFI是否激活
- 分配空间保存WIFI信息
- 轮询查找WIFI列表
主要涉及到了源码工程中wifi_device.h的头文件,其中封装了一些接口,部分接口及对应如下图所示
网络通信
主要通过开发板进行不同客户端与服务端的通信
- UDP客户端
- 编码实现UDP客户端创建流程,使用Sockettool创建UDP服务端用于测试
- TCP服务端
- 编码实现TCP服务端,使用Sockettool创建TCP客户端用于测试
- TCP客户端
- 编码实现TCP客户端
- UDP服务端
- 编码实现UDP客户端
- MQTT客户端
- 基于Paho MQTT,编码实现MQTT客户端
感悟
本次的学习课程,其中设计到了太多的概念,听的过程中不是很理解,可能是因为不知道其中必要的基础知识,本人在物联网开发方面算是一个小白,因此还需要多看些相关书籍,师傅领进门,修行在个人,努力就完了。