LV03-04-天猫蓝牙Mesh开发-04-开发板对接天猫精灵
本文主要是天猫蓝牙Mesh开发——开发板对接天猫精灵的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
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设备开发指南 | 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容 |
一、工程代码
1. 工程创建
我们需要使用SDK的app/example/bluetooth/light_ctl这个demo,我们复制一份,先体验一下开发板接入天猫精灵是怎样的。
一定要注意重命名这两个文件,否则可能会编译不通过。
2. 定义三元组信息
我们先不做功能上的开发,我们先把创建的云端设备信息写入到开发板中,我们找到这个文件genie_app/base/tri_tuple_default.h:
可以看到这里就是我们填写设备的三元组信息的地方,我们打开
我们修改上面的三个宏如下:
1 |
3. 编译工程
我们可以到demo目录下,执行以下命令:
1 | aos make bluetooth.light_ctl_demo@tc825x |
或者修改task.json,修改后通过vscode的命令框来选择对应的标签进行编译:
1 | { |
编译成功如下所示:
然后会在蓝牙协议栈顶层源码目录的out/bluetooth.light_ctl_demo@tc825x/binary目录下生成对应的可执行文件:
4. 烧录程序
5. 重启测试
我们重启一下开发板,会有以下打印信息:
发现报了一些错之类的,但是似乎并不影响。
二、开发板联网
1. 软硬件准备
1.1 天猫精灵智能音箱
用的这款方糖3 智能音箱:
1.2 天猫精灵app
我们直接去应用商店搜索天猫精灵即可:
1.3 泰凌微TLSR8258
2. 天猫精灵语音配网
我们首先使用天猫精灵语音控制来配网。
2.1 进入配网模式
我们前面知道,烧写完程序后,启动开发板,会有如下打印信息:
要是之前没有配过网,这里是自动在配网模式的,不需要做别的操作。
2.2 语音唤醒天猫精灵开始配网
- (1)语音:天猫精灵,找朋友
先说天猫精灵,等待回应后,说出找朋友三个字,然后天猫精灵就会提示正在扫描智能设备,然后开始扫描周围处于配网模式的设备。
- (2)语音:连接
当天猫精灵扫描到我们的泰凌微TLSR8258开发板的时候,会提示我们发现了我们的智能设备(这里是智能灯),会询问我们是否连接,然后会有“叮咚”一声的提醒,提醒后,我们说出连接,我们的泰凌微TLSR8258就会开始蓝牙Mesh配网。时候就会提示连接中,请稍后,并且,开发板的串口会有以下打印信息:
还有很多的打印信息,当连接成功后,天猫精灵会提示连接成功,然后我们会看到一系列这样的打印:
2.3 设备上线
这个时候我们进入网页端的项目中:产品管理 - 生活物联网平台 (aliyun.com)——设备调试,会发现我们的设备已在线:
3. 注意
这里好像有个很坑的事,就是每次烧写完代码都需要重新使用天猫精灵配对。
三、Genie_app
Genie_app目录为天猫精灵的核心处理代码,之所以填充三元组就可以进行广播被发现全是它带来的功劳,这里面包含了事件处理,命令,flash操作,三元组,以及模型等等内容,后面将要实现的智能灯就是通过Genie_app的事件处理完成的,在这里面需要重点了解几个函数。
1. genie_event.c
1 | //genie事件处理,此处会被传入关于,设备reset、prov、appkey、sub、sequpdate以及vendor等消 |
2. tri_tuple_default.c
1 | //三元组信息,申请到的三元组信息添加即可 |
3. genie_app.c
1 | //如下函数可以得值,genie_init执行了一次flash_init,随后执行了genie_mesh_init |