LV02-01-天猫精灵IOT-03-零配-01-零配的基本概念
本文主要是天猫精灵IOT零配——零配的基本概念的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows版本 | windows11 |
Ubuntu版本 | Ubuntu22.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | 阿里云 | 阿里云官网主页 |
阿里生活物联平台 | 生活物联网平台(飞燕平台)主页 | |
AliGenie | 天猫精灵开放平台AliGenie主页 | |
阿里物联网平台 | 阿里物联网平台主页 | |
Bluetooth 技术网站 | 蓝牙协议规范什么的可以来这里找 | |
Telink | Telink | Chips for a Smarter IoT (telink-semi.com) Telink中文官网 | |
开发手册 | AliOS Things开发指南 | AliOS Things开发指南,这里是最新版本,可以直接从官网找到 |
AliOS Things开发指南 | AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档 | |
AliOS Things开发指南(3.0) | AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档 | |
生活物联网平台开发文档 | 生活物联网平台(飞燕平台)开发文档 《设备端开发指南》 | |
Wi-Fi IoT品类定义与功能开发 | 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发 | |
硬件平台 | mk3080 WiFi开发板 | WiFi开发板使用指南-阿里云开发者社区 |
esp8266开发板 | 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com) | |
TLSR8258 Datasheet | Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258 | |
参考资料 | AliOS Things 3.0 应用开发指南 | 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考 |
IP知识百科 - 华为 (huawei.com) | IP的一些相关知识点 |
点击查看相关文件下载
分类 | 网址 | 说明 |
蓝牙规范相关文档 | Core Specification 5.2 | 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。 《Core_v5.2.pdf》 |
Mesh Model(v1.1) | 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。 本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。 《MshMDL_v1.1.pdf》 | |
Mesh Profile(v1.0.1) | 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。 《MshPRFv1.0.1.pdf》 | |
Mesh Device Properties | 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。 但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》 | |
GATT Specification Supplement | GATT Specification Supplement | Bluetooth® Technology Website。 好像可以在线看:《GATT Specification Supplement》 | |
Assigned Numbers | GATT的一些类型定义可以在这里找。 | |
AliOS Things | alios-things/AliOS-Things | Gitee上的AliOSThings SDK源码仓库 |
alibaba/AliOS-Things | GitHub上的AliOSThings SDK源码仓库 | |
天猫精灵蓝牙Mesh协议栈 | alibaba-archive/genie-bt-mesh-stack | GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。 之前是在alibaba/genie-bt-mesh-stack这个仓库。 写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a |
蓝牙Mesh设备开发指南 | 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容 |
一、IOT设备如何配网?
1. 平常有哪些方式?
目前的IOT设备大概有以下几种配网方式:
smarconfig:一键配网,让设备处于一个监听模式,手机通过APP下发路由器的SSID和密码,实现配网。
手机热点配网:手机充当热点,设备连接后,手机可以将SSID和密码发送给设备。
设备热点配网:设备作为热点,手机连接这个热点,打开对应的app,通过app对设备完成配网。
路由器热点配网
扫描二维码配网:手机扫描后进行配网。
但是这些配网方式在很多时候都是很不方便的,smarconfig看起来简单一些,但是它的配网是很慢的,有时候可能会需要好几分钟,另外的几种,都是需要手机的参与,可能需要我们断开当前的WiFi热点,再去连接设备的,或者说自己开启热点,就显得很繁琐。
2. 天猫精灵零配
天猫精灵为我们提供了一种被称为零配的配网方式,就是通过已经联网的设备,将WiFi的SSID和密码发送给待配网的设备。
![image-20231217090513754](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217090513754.png)
大概得过程如上图所示,但是其实,我们通过天猫精灵智能音箱(我用的是方糖3)的话,就不需要我们进行3 和 4两个步骤,我们直接通过语音控制天猫精灵对设备进行配网。
二、零配的过程
前提是天猫精灵连接了我们的路由器,可以正常与云端进行通信。
1. 发现设备
![image-20231217101130317](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217101130317.png)
设备处于配网模式的时候,是会一直发送Probe request帧的,当天猫精灵打开了sniffer模式,才能正常接收到这个WiFi管理帧。这个帧里面会包含设备的这些信息:
![image-20231217101642597](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217101642597.png)
然后,天猫精灵就会从数据包中解析出设备的这些信息。解析后还是无法直接配网,会先进行一系列的合法性检查。
2. 请求配网
当前面流程走完,就会进入下一阶段,天猫精灵开始向云端请求对设备进行配网:
![image-20231217102101286](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217102101286.png)
3. 开始配网
![image-20231217102215721](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217102215721.png)
二、零配的报文
1. Probe Respons
这里介绍的应该是这一个Probe Respons报文,这个报文会在设备中进行解析。
![image-20231217102553552](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217102553552.png)
这里的OUI字段中的OUI为 Organization Unique Identifier,也就是组织独特的识别号。它有两种类型,ENROLLEE(物联网设备)和REGISTRAR(天猫精灵),这部分有点没看懂,后面再补充吧。
2. 抓包分析
我们是可以通过OmniPeek在我们的物联网设备和路由器之间抓包,前面我们知道如何抓取路由器和我们电脑之间的包,这个OmniPeek是可以抓路由器上接的所有设备的包的,所以我们只需要知道设备的mac物理地址们就可以啦,设备的物理地址怎么找?其实设备连接的时候是有打印的:
![image-20231217103743977](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217103743977.png)
我们可以看一个:
![image-20231217103948553](https://fanhua-picture.oss-cn-hangzhou.aliyuncs.com/01%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/01HQ%E8%AF%BE%E7%A8%8B%E4%BD%93%E7%B3%BB/LV21-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT/LV02-01-%E5%A4%A9%E7%8C%AB%E7%B2%BE%E7%81%B5IOT-03-%E9%9B%B6%E9%85%8D-01-%E9%9B%B6%E9%85%8D%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/img/image-20231217103948553.png)
可以结合前面的格式进行一个分析。