项目简介
本项目基于AB32VG1 BLE的SOC, 使用RT-Thread Rtos 完成智能家居灯门锁...通过蓝牙BLE用手机等智能终端控制, 并有语音提示, 除了手机控制, 当然也可以用按键控制, 这只一个小案例, 除了灯门锁...还有其他的电器,比如插座窗帘'....
物尽其用,基本上这个MCU主要外设BLEDAC(做语音播放)都用上了,所以这个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灯和门锁
软件说明
软件功能
手机通过BLE远程控制LED灯亮灭, 开门锁(锁门驱动模块会自动检测关门并锁门, 所以不考虑锁门)
板载按键远程控制LED灯亮灭, 开门锁
软件框图
使用RT-Thread Studio, 创建工程, 配置好组件软件包, 本项目应用组件或软件包:
RT-Thread 标准最新版本
驱动:
Audio
串口
Pin(GPIO)
组件:
wavplayer播放器 播放器
ptparse --命令行参数解析器, wavplayer依赖它解析播放参数
DFS ---文件系统
Finsh命令
MultiButtion --- 按键框架
bluetrum SDK
以上都是通过RT-Thread Studio配置 获得, 我需要写的代码, 非常少, 真的是低代码开发
我需要开发的
1、BLE(Gatt Server) 收到手机发来的数据和按键事件处理, 调用GPIO执行控制LED灯亮灭, 开门锁, 播放提示音
注: 提示音由mkromfs将音频文件制作成C语言数组的虚拟文件系统, 详细参阅//bbs.sunsili.com/thread-225776-1-1.html
2、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: 关
Device Information Service 设备信息服务
Manufacturer Name String Charismatic read( 只读) 读设备制造商信息 字串类型
Model Number String Charismatic read( 只读)获取设备型号 字串类型
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !