LV04-天猫蓝牙Mesh项目-02-初级开发-02-端-硬件开发
本文主要是天猫蓝牙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设备开发指南 | 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容 |
这一LV的笔记起始跟前面有所重叠,互相补充吧算是。
一、泰凌微TLSR8258
1. 模块实物图
泰凌微8258芯片手册可以在线查阅:[DS_TLSR8258-E_Datasheet for Telink BLE+IEEE802.15.4 Multi-Standard Wireless SoC TLSR8258.pdf (telink-semi.cn)](https://wiki.telink-semi.cn/doc/ds/DS_TLSR8258-E_Datasheet for Telink BLE+IEEE802.15.4 Multi-Standard Wireless SoC TLSR8258.pdf),他就是下图中左侧扣开盖板后里面的这个芯片:
给这个开发板下载程序需要使用烧录器:
2. TLSR8258 SOC框图
具体的外设和介绍可以看芯片手册。
二、开发环境搭建
1. SDK下载
天猫精灵开发SDK网址:alibaba-archive/genie-bt-mesh-stack: genie-bt-mesh-stack (github.com)
当时下载的时候应该是这次提交:change for build tg7100b and ch6121evb · alibaba-archive/genie-bt-mesh-stack@faf5236 (github.com)
2. 开发环境
这里我们需要选择windows开发环境,这是因为天猫精灵开发SDK在编译的时候用到的一些工具在linux下是无法运行的,所以目前来讲使能使用windows。windows下开发环境选择:
- 编辑器:VS Code
- 编译工具:aos-cube(安装依赖python命令)
- SDK:天猫精灵提供
- 烧录工具:Telink BDT.exe
3. 环境搭建
3.1 python安装
3.1.1 python下载
python可以去官网下载安装程序:Python Releases for Windows | Python.org
3.1.2 安装步骤
- (1)双击对应的可执行文件打开
- (2)勾选添加环境变量
- (3)点击下一步
- (4)选择要安装的路径
- (5)等待安装完毕
- (6)安装成功提示
3.1.3 验证是否安装成功
Win+R打开运行框
然后输入python -V
命令,显示版本说明安装成功:
3.2 aos-cube安装
- (1)
python -m pip install --upgrade pip
- (2)
python -m pip install setuptools
- (3)
python -m pip install wheel
- (4)
python -m pip install aos-cube
- (5)aos-cube 验证安装是否成功
然后输入y,可以看到有如下打印信息:
- (6)打印版本
3.3 VS Code
3.3.1 vscode下载
我们直接去官网下最新版本就行了:Visual Studio Code - Code Editing. Redefined
3.3.2 安装软件
- (1)双击可执行文件
- (2)同意协议
- (3)选择安装位置
- (4)选择下一步
- (5)创建快捷方式,添加环境变量
- (6)点击安装
- (7)安装中……
- (8)安装成功
3.3.3 配置VS Code 中文
3.3.4 配置VS Code C/C++插件
3.4 SDK安装
sdk就是全面在github下载的,我们选这次提交下的:alibaba-archive/genie-bt-mesh-stack at faf523618a6a2560090fc423222b9db80984bb7a (github.com)
3.5 串口驱动安装
其实以前装过CH340驱动的话,也可以不用管,或者是自己装一个CH340驱动也行,这里主要是要安装一个USB转串口的驱动。
4. 工程编译
4.1 查看helloworld工程
①、系统时钟配置
②、串口波特率配置
4.2 编译工程
①、编译命令:aos make bluetooth.helloworld@tc825x
②、生成可执行文件位置
5. 烧录程序
5.1 烧录硬件接线
设备 | 电源正极 | 烧录引脚 | 电源负极你 |
---|---|---|---|
烧录器 | 3V3 | SWM | GND |
泰凌微8258 | 3.3V | PA7 | GND |
5.2 烧录工具安装
- (1)解压工具
- (2)打开烧录软件
5.3 烧录工具使用
- (1)选择烧录设备
- (2)打开要烧录的文件
- (3)验证是否识别到蓝牙模块
- (4)烧录程序
6. 程序现象
- (1)查看端口号
- (2)打开串口调试工具
- (3)串口工具配置
- (5)查看打印信息
三、硬件控制
1. LED控制实验
1.1 LED接在哪?
由上图丝印可知,三个LED灯可以通过跳线帽接在对应的GPIO引脚上:
1 | Red : PB4 |
1.2 LED亮灭基本原理
1.3 LED控制代码实现
这里是一个基本框架,具体的代码可以看这里:my-genie-bt-mesh-stack/app/example/bluetooth/my_gpio_led at master · sumumm/my-genie-bt-mesh-stack (github.com)
1 |
|
2. 风扇控制实现
2.1 风扇实物图
2.2 各部分说明
我们使用的是L9110H芯片来驱动电机。芯片手册可以看这里:XBLW-L9110 (szlcsc.com)
2.3 风扇电机驱动原理
2.3.1 L9110芯片特性
控制和驱动电机
两通道推挽式功率放大专用集成电路器件
电压范围: 2.5V-12V(但是我在使用过程中接了5V,发热特别大,而且驱动状态也不太对,后来就接的3.3V了)。
每通道具有 800mA 连续电流输出能力 输出具有正转、反转、高阻和刹车四种状态
2.3.2 L9110引脚定义
各个引脚的含义如下表格:
2.3.3 控制电路
输入端不同信号对应的状态如下:
其实正反转都是我们自己定义的,这里知道这个原理就可以了。注意:当输入A或者输入B只有一个悬空的时候,风扇都会转。
2.4 实现风扇控制
2.4.1 GPIO引脚选择
引脚选择如下,为了控制风速,我们其实可以选择带PWM输出的引脚:
1 | INA —— PD2 |
2.4.2 实现PWM相关函数
1 | typedef struct { |
2.4.3 PWM初始化和控制实现
1 | //引脚 INA = PD2 INB = PD3 |
功能实现:20%占空比正转3秒,停顿3秒,再30%占空比反转3秒,停顿3秒:
1 | int application_start(int argc, char **argv) |
3. 按键中断实现
3.1 开发板中的按键
3.2 万用表实测引脚
由于这个模块没有原理图,硬件上的一些按键要用万用表去测量。测量后可以知道引脚编号如下:
1 | SW3 = PA0 // 用作了串口接收 |
3.3 实现按键触发
在 platform/mcu/tc32_825x/vendor/common/alios_app_config.h 文件里开启宏GPIO中断宏:
1 |
功能实现:按下SW1风扇加速、按下SW2风扇减速,按键SW3不使用。代码如下,也可以看这里:my-genie-bt-mesh-stack/app/example/bluetooth/my_fan_ctl at e02b131cc36942ed8a5eed408d08d5f32edc5f37 · sumumm/my-genie-bt-mesh-stack (github.com)
1 |
|