BLE智能灯和门锁控制并带语音提示方案
演示效果
视频连接:https://www.bilibili.com/video/BV1CZ4y1X7Qq?t=0.0
项目简介
本项目基于AB32VG1 BLE的SOC, 使用RT-Thread Rtos 完成智能家居灯\门锁...通过蓝牙BLE用手机等智能终端控制, 并有语音提示, 除了手机控制, 当然也可以用按键控制, 这只一个小案例, 除了灯\门锁...还有其他的电器,比如插座\窗帘'....物尽其用, 基本上这个MCU主要外设BLE\DAC(做语音播放)都用上了, 所以这个MCU带语音\BLE项目非常适合, 用RT--Thread开发很方便,自己写的代码非常实现了这个功能.
硬件说明
本项目了 除了用执行元件, 都用AB32VG1完成的, 得益于AB32VG1丰富的功能组件:- CPU: AB5301A;( LQFP48 封装,主频 120M,片上集成 RAM 192K, flash 8 Mbit, ADC, PWM, USB, UART, IIC 等资源)
- AB5301A内置蓝牙BLE SOC -- 本项目用此做手机远程控制
- AB5301A内置 FM 模块 (本项目未使用)
- 一路 TF Card 接口 (本项目未使用)
- 一路 USB 接口 (本项目未使用)
- 一路 IIC 接口 (本项目未使用)
- 一路音频接口(美标 CTIA) -- 本项目用此做操作语音揭示及反馈
- 六路 ADC 输入引脚端子引出 (本项目未使用, 如需拓展温度光照检测应用, 可以用ADC)
- 六路 PWM 输出引脚端子引出(本项目未使用, 如需拓展调光应用, 可以用PWM)
- 一个全彩 LED 灯模块, 一个电源指示灯, 三个烧录指示灯 本项目用此做指示
- 一个 IRDA(红外接收端口) (本项目未使用)
- 一个 Reset 按键, 三个功能按键(通用版为两个功能按键)
硬件架构
- 系统采用USB供电
- USB转UART 下载程序及软件调试
- DAC做音频输出到喇叭, 操作语音揭示及反馈
-
GPIO输出控制LED灯和门锁
![](https://fuwu.jlc.com/editorImage/2022-05-18/a71e4a99eb0d46b8b5799f9d7fbfb14f.jpg)
软件说明
软件功能
- 手机通过BLE远程控制LED灯亮灭, 开门锁(锁门驱动模块会自动检测关门并锁门, 所以不考虑锁门)
-
板载按键远程控制LED灯亮灭, 开门锁
软件框图
![](https://fuwu.jlc.com/editorImage/2022-05-18/c891f02bcac04a69bbda6591a5de88ab.jpg)
使用RT-Thread Studio, 创建工程, 配置好组件软件包, 本项目应用组件或软件包:
- RT-Thread 标准最新版本
-
驱动:
- Audio
- 串口
-
Pin(GPIO)
-
组件:
- wavplayer播放器 播放器
- ptparse --命令行参数解析器, wavplayer依赖它解析播放参数
- DFS ---文件系统
- Finsh命令
- MultiButtion --- 按键框架
-
bluetrum SDK
软件开发
1、BLE(Gatt Server) 收到手机发来的数据和按键事件处理, 调用GPIO执行控制LED灯亮灭, 开门锁, 播放提示音注: 提示音由mkromfs将音频文件制作成C语言数组的虚拟文件系统, 详细参阅:http://bbs.sunsili.com/thread-225776-1-1.html
2、BLE Gatt Service重写
事件处理代码
BLE相关代码
Gatt Service代码
在这上传代码不看到, 请移步:
https://gitee.com/lojam/ab32vg1-ble_-smrthm/tree/master
操作说明
1、按键操作:
S2 按一下开锁S3 按一下开灯, 再关灯, 如此循环
注:每个操作,都播放提示音
2、BLE 远程控制:
没写APP,用BLE调试助手连接设备:Silicon_Smarthome
连接成功后, 选择 Unkown Service (用户自定义, 一般没注册到蓝牙联盟的uuid,都这样显示)
Unkown (用户自定义) Charismatic 长度2Bytes Read / Write ( 可读写)
Byte0 Byte1
灯控制 lock
1:开灯 1: 开锁(锁驱动会自动检测关锁)
0:关灯 0: 关
![](https://fuwu.jlc.com/editorImage/2022-05-18/716338dd3cd0456196613ef6da1762c6.jpg)
Device Information Service 设备信息服务
Manufacturer Name String Charismatic read( 只读) 读设备制造商信息 字串类型
![](https://fuwu.jlc.com/editorImage/2022-05-18/b7061a9a6ba84999864816dd5add822f.jpg)
Model Number String Charismatic read( 只读)获取设备型号 字串类型
![](https://fuwu.jlc.com/editorImage/2022-05-18/92aeae20742c41cd9076f32c8805cd0f.jpg)
评论