聚丰项目 > 智能家居控制器

智能家居控制器

本项目基于AB32VG1 BLE的SOC, 使用RT-Thread Rtos 完成智能家居灯\门锁...通过蓝牙BLE用手机等智能终端控制, 并有语音提示, 除了手机控制, 当然也可以用按键控制, 这只一个小案例, 除了灯\门锁...还有其他的电器,比如插座\窗帘'....

fannifu fannifu

分享
1 喜欢这个项目
团队介绍

fannifu fannifu

团队成员

大树 电子工程师

分享
项目简介
本项目基于AB32VG1 BLE的SOC, 使用RT-Thread Rtos 完成智能家居灯\门锁...通过蓝牙BLE用手机等智能终端控制, 并有语音提示, 除了手机控制, 当然也可以用按键控制, 这只一个小案例, 除了灯\门锁...还有其他的电器,比如插座\窗帘'....
硬件说明

本项目了 除了用执行元件, 都用AB32VG1开发板完成的, 得益于AB32VG1丰富的功能组件:

  • CPU: AB5301A;( LQFP48 封装,主频 120M,片上集成 RAM 192K, flash 8 Mbit, ADC, PWM, USBUART, IIC 等资源)

  • AB5301A内置蓝牙BLE SOC   -- 本项目用此做手机远程控制

  • AB5301A内置 FM 模块 (本项目未使用)

  • 一路 TF Card 接口 (本项目未使用)

  • 一路 USB 接口 (本项目未使用)

  • 一路 IIC 接口 (本项目未使用)

  • 一路音频接口(美标 CTIA)  -- 本项目用此做操作语音揭示及反馈

  • 六路 ADC 输入引脚端子引出 (本项目未使用, 如需拓展温度光照检测应用, 可以用ADC)

  • 六路 PWM 输出引脚端子引出(本项目未使用, 如需拓展调光应用, 可以用PWM)

  • 一个全彩 LED 灯模块, 一个电源指示灯, 三个烧录指示灯  本项目用此做指示

  • 一个 IRDA(红外接收端口) (本项目未使用)

  • 一个 Reset 按键, 三个功能按键(通用版为两个功能按键)


硬件架构


  1. 系统采用USB供电

  2. USB转UART 下载程序及软件调试

  3. DAC做音频输出到喇叭, 操作语音揭示及反馈

  4. GPIO输出控制LED灯和门锁


软件说明

软件功能

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

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



软件框图


使用RT-Thread Studio, 创建工程,  配置好组件软件包, 本项目应用组件或软件包:

  • RT-Thread 标准最新版本

  • 驱动:

  1. Audio 

  2. 串口

  3. Pin(GPIO)

  • 组件:

  1. wavplayer播放器 播放器

  2. ptparse --命令行参数解析器, wavplayer依赖它解析播放参数

  3. DFS ---文件系统

  4. Finsh命令

  5. MultiButtion --- 按键框架

  6. bluetrum SDK

以上都是通过RT-Thread Studio配置 获得,  我需要写的代码, 非常少, 真的是低代码开发


我需要开发的
1、BLE(Gatt Server) 收到手机发来的数据和按键事件处理, 调用GPIO执行控制LED灯亮灭, 开门锁, 播放提示音

注: 提示音由mkromfs将音频文件制作成C语言数组的虚拟文件系统, 详细参阅:http://bbs.sunsili.com/thread-225776-1-1.html
2、BLE Gatt Service重写

事件处理代码

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-12-07     LOJAM       the first version
 */

#include


BLE相关代码

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-12-04     LOJAM       the first version
 */



#include

Gatt Service代码

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-12-05     LOJAM       the first version
 */



#include

在这上传代码不看到, 请移步:

https://gitee.com/lojam/ab32vg1-ble_-smrthm/tree/master

演示效果



1、按键操作: 

      S2 按一下开锁

      S3 按一下开灯, 再关灯, 如此循环

注:每个操作,都播放提示音

2、BLE 远程控制:

    没写APP,用BLE调试助手

   连接设备:Silicon_Smarthome


   连接成功后, 选择 Unkown Service (用户自定义)

   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( 只读)获取设备型号 字串类型




鸣谢

RT-Thread

电子发烧友

中科蓝讯

RTT大赛开发者交流群的朋友们

评论区(0 )