聚豐項目 > 基于RT thread的藍牙LED調色小夜燈
使用藍牙控制全彩LED小夜燈,設定色溫、開啟時長。后續(xù)可增加環(huán)境數(shù)據(jù)監(jiān)測、時間設定、人體感應等擴展功能,再使用手機進行配置。增加小夜燈的物聯(lián)網(wǎng)屬性及功能,實現(xiàn)小物品的智能化,在生活細節(jié)處體現(xiàn)科技生活的舒適性。此設計屬于原型,僅提供基礎功能,更多拓展需要進一步討論、設計、開發(fā)等等。
tashuiqingming
tashuiqingming
團隊成員
tashuiqingming 嵌入式軟件工程師
RT-Thread使用情況概述:
硬件方案:串口藍牙、板級LED。采用常規(guī)的串口藍牙從模塊JDY-33,連接即透傳數(shù)據(jù),不需要進行額外操作。
內(nèi)核部分:使用了線程、信號量、定時器 、PWM
設備驅動:
GPIO/PWM/UART 等
MCU通過串口與藍牙連接,等待設備上線,解析藍牙回傳數(shù)據(jù),設定RGB的PWM占空比,設定定時器工作周期。以實現(xiàn)藍牙控制LED調色、定時工作等基礎功能。
軟件部分主要涉及兩方面:1.串口數(shù)據(jù)接收。使用軟件超時功能,判斷一幀數(shù)據(jù)接收完成,發(fā)送接收完成信號量,線程進行數(shù)據(jù)解析,動作執(zhí)行。
2.全彩LED的指令打開,超時關閉,指令關閉。三種狀態(tài)設置情況。
軟件命令:
動作 | CMD1/0 | 持續(xù)時間 | R | G | B | 備注 |
開 | CMD1 | uint32_t類型數(shù)值(1ms) | 0-255 | 0-255 | 0-255 | 間隔符“,” |
關 | CMD0 | —— | —— | —— | —— | —— |
例:
CMD1,1000,122,45,85 打開,持續(xù)時間1000ms,RGB數(shù)值分別為122、45、85
CMD0 關閉
代碼地址:
https://gitee.com/ZhuPengFly/buletooth_rgbled.git
備注:AB32開發(fā)板,LPWM互斥輸出,板級全彩LED的RGB,其中GB兩個IO口連接到LPWM上,故不能實現(xiàn)GB的PWM調色,故實際只對R進行了調色。(PS:互斥這個說法非AB32官方給出,僅個人網(wǎng)上資料查閱所得。若有偏差,歡迎糾正,若有冒犯,敬請諒解)
電腦連接藍牙,將提供虛擬藍牙串口,使用串口調試工具,發(fā)送指令,如下圖:
發(fā)送CMD1指令。持續(xù)時間20s。MCU調試串口輸出信息,同時LED打開,時間戳:23:55:55
MCU調試串口輸出信息,同時LED關閉,時間戳:23:56:15。持續(xù)時間20s,與CMD1設定時間相符
發(fā)送CMD0指令。MCU調試串口輸出信息,同時LED關閉