基于RT-Thread开发的BLE智能灯和门锁控制方案

描述

项目简介

        本项目基于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灯和门锁

mcu

                        
                    
   软件说明

软件功能

手机通过BLE远程控制LED灯亮灭, 开门锁(锁门驱动模块会自动检测关门并锁门, 所以不考虑锁门)

板载按键远程控制LED灯亮灭, 开门锁



软件框图

mcu
使用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: 关


mcu


  Device Information Service 设备信息服务

  Manufacturer Name String Charismatic read( 只读) 读设备制造商信息 字串类型

mcu

Model Number String Charismatic read( 只读)获取设备型号 字串类型

   审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分