聚豐項(xiàng)目 > 智能家居控制器
本項(xiàng)目基于AB32VG1 BLE的SOC, 使用RT-Thread Rtos 完成智能家居燈\門鎖...通過藍(lán)牙BLE用手機(jī)等智能終端控制, 并有語音提示, 除了手機(jī)控制, 當(dāng)然也可以用按鍵控制, 這只一個(gè)小案例, 除了燈\門鎖...還有其他的電器,比如插座\窗簾'....
fannifu
分享fannifu
團(tuán)隊(duì)成員
大樹 電子工程師
本項(xiàng)目了 除了用執(zhí)行元件, 都用AB32VG1開發(fā)板完成的, 得益于AB32VG1豐富的功能組件:
CPU: AB5301A;( LQFP48 封裝,主頻 120M,片上集成 RAM 192K, flash 8 Mbit, ADC, PWM, USB, UART, IIC 等資源)
AB5301A內(nèi)置藍(lán)牙BLE SOC -- 本項(xiàng)目用此做手機(jī)遠(yuǎn)程控制
AB5301A內(nèi)置 FM 模塊 (本項(xiàng)目未使用)
一路 TF Card 接口 (本項(xiàng)目未使用)
一路 USB 接口 (本項(xiàng)目未使用)
一路 IIC 接口 (本項(xiàng)目未使用)
一路音頻接口(美標(biāo) CTIA) -- 本項(xiàng)目用此做操作語音揭示及反饋
六路 ADC 輸入引腳端子引出 (本項(xiàng)目未使用, 如需拓展溫度光照檢測(cè)應(yīng)用, 可以用ADC)
六路 PWM 輸出引腳端子引出(本項(xiàng)目未使用, 如需拓展調(diào)光應(yīng)用, 可以用PWM)
一個(gè) IRDA(紅外接收端口) (本項(xiàng)目未使用)
一個(gè) Reset 按鍵, 三個(gè)功能按鍵(通用版為兩個(gè)功能按鍵)
硬件架構(gòu)
系統(tǒng)采用USB供電
USB轉(zhuǎn)UART 下載程序及軟件調(diào)試
DAC做音頻輸出到喇叭, 操作語音揭示及反饋
GPIO輸出控制LED燈和門鎖
軟件功能
手機(jī)通過BLE遠(yuǎn)程控制LED燈亮滅, 開門鎖(鎖門驅(qū)動(dòng)模塊會(huì)自動(dòng)檢測(cè)關(guān)門并鎖門, 所以不考慮鎖門)
板載按鍵遠(yuǎn)程控制LED燈亮滅, 開門鎖
軟件框圖
使用RT-Thread Studio, 創(chuàng)建工程, 配置好組件軟件包, 本項(xiàng)目應(yīng)用組件或軟件包:
RT-Thread 標(biāo)準(zhǔn)最新版本
驅(qū)動(dòng):
Audio
串口
Pin(GPIO)
組件:
wavplayer播放器 播放器
ptparse --命令行參數(shù)解析器, wavplayer依賴它解析播放參數(shù)
DFS ---文件系統(tǒng)
Finsh命令
MultiButtion --- 按鍵框架
bluetrum SDK
以上都是通過RT-Thread Studio配置 獲得, 我需要寫的代碼, 非常少, 真的是低代碼開發(fā)
我需要開發(fā)的
1、BLE(Gatt Server) 收到手機(jī)發(fā)來的數(shù)據(jù)和按鍵事件處理, 調(diào)用GPIO執(zhí)行控制LED燈亮滅, 開門鎖, 播放提示音
注: 提示音由mkromfs將音頻文件制作成C語言數(shù)組的虛擬文件系統(tǒng), 詳細(xì)參閱: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相關(guān)代碼
/* * 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
在這上傳代碼不看到, 請(qǐng)移步:
https://gitee.com/lojam/ab32vg1-ble_-smrthm/tree/master
1、按鍵操作:
S2 按一下開鎖
S3 按一下開燈, 再關(guān)燈, 如此循環(huán)
注:每個(gè)操作,都播放提示音
2、BLE 遠(yuǎn)程控制:
沒寫APP,用BLE調(diào)試助手
連接設(shè)備:Silicon_Smarthome
連接成功后, 選擇 Unkown Service (用戶自定義)
Unkown (用戶自定義) Charismatic 長(zhǎng)度2Bytes Read / Write ( 可讀寫)
Byte0 Byte1
燈控制 lock
1:開燈 1: 開鎖(鎖驅(qū)動(dòng)會(huì)自動(dòng)檢測(cè)關(guān)鎖)
0:關(guān)燈 0: 關(guān)
Device Information Service 設(shè)備信息服務(wù)
Manufacturer Name String Charismatic read( 只讀) 讀設(shè)備制造商信息 字串類型
Model Number String Charismatic read( 只讀)獲取設(shè)備型號(hào) 字串類型
鳴謝
RT-Thread
電子發(fā)燒友
中科藍(lán)訊
RTT大賽開發(fā)者交流群的朋友們