正文 基於藍牙4.0技術智能燈泡的設計與實現(2 / 3)

2智能燈泡係統總體設計

2.1智能燈泡設備

主要分為兩個部分:智能燈泡硬件以及智能燈泡固件程序。其中硬件包括電壓轉換模塊、藍牙控製模塊和LED發光模塊。

2.1.1硬件設計

(1)電壓轉換模塊

由於LED燈珠需要的電壓為18V,而藍牙模塊需要的電壓為3.3V,所以需要將220V的輸入電壓進行兩次轉換:220V轉18V和18V轉3.3V。其中220VAC轉18VDC模塊實現交流的220V轉成直流18V供電,為整個係統供電。

在18V轉3.3V模塊中的電壓轉換芯片采用Holtek公司生產的HT7533-1,LDO將18VDC轉成3.3V,主要為藍牙模塊供電。

(2)藍牙控製模塊

藍牙控製模塊電路主要有係統指示燈、複位電路、SPI程序下載接口、PWM電路等幾部分組成。

係統采用16MHz晶振作為時鍾源。在存儲設備方麵主要采用E2PROM,在就需要在固件代碼中定義一個NVM_TYPE_EEPROM的宏。固件程序通過SPI串行外設接口的方式進行下載與調試。在藍牙芯片引出4個引腳,設置為PWM模式,分別用於控製紅、綠、蘭、白光四路脈衝,用於調節燈泡的發光顏色。

(3)LED發光模塊

LED發光模塊采用六個燈珠布局方式:白色燈珠三個,紅、綠、藍燈珠各一個。其中三個白色燈珠為串聯的方式。

2.1.2智能燈泡固件設計

CSR1010芯片支持藍牙4.0協議棧,該協議棧主要包括ATT、GATT、SMP、L2CAP、GAP等規範。

通用訪問規範(Generic Access Profile,GAP)規定了4種角色:廣播者(Broadcaster)、觀察者(Observice)、外設(Peripheral)和中央(Central)角色。所以在智能插座係統中,燈泡作為外設設備,控製器支持從設備(Slave)角色,移動終端作為中央角色,是所有外設連接的發起者,控製器支持主設備(Master)角色。

GATT規範位於協議的最頂層,由一個或者多個服務構成規範用來實現某個應用。在係統中,燈泡作為一個Server向移動終端(Client)暴露一個調色服務,用於控製燈泡的亮度、色彩和通斷。調色服務中包含兩個特征值,特征值1用於控製燈泡的通斷,長度為1個字節。規定命令值0x00為關,0x01為通。特征值2用於控製燈泡的色彩和亮度,長度為4個字節,前三個字節用於控製燈泡的顏色,最後一個字節用於控製燈泡的亮度。前三字節隻當最後字節為0有效。

硬件上電後,主要進行係統的初始化工作,包括GATT、SMP、GAP、硬件等模塊的初始化。初始化完成後,再讀取係統時間和規則,然後燈泡開始廣播。

在實際應用中,用戶不會一直長時間需要控製燈泡,所以出於節約能耗的考慮,將廣播狀態中將廣播設置為三種模式:快播,中播,慢播。其中快播持續時間為1min,廣播時間間隔為60ms,中播持續時間為5min,廣播時間間隔為1280ms,其餘時間為慢播時間,廣播間隔為5s。該設計可以有效降低能耗,並能有效保證設備能及時被發現和連接。

調色的實現方式為自定義一個函數用於控製占空比:

2.2APP軟件設計

移動終端設備端作為主設備,主要有掃描設備、發現設備、發起連接、發送控製指令、斷開連接等操作。開啟軟件後,進行相關數據初始化,然後係統進入輪訓掃描設備階段。連接設備後,按照上文規定的格式發送指令,控製相關操作。APP軟件主要基於Android平台[8]。

理論上一個主設備可以同時連接無數個從設備,但一個從設備同時隻能被一個主設備控製。采用控製完立即釋放連接的方式,這樣可以釋放資源給別的用戶使用。同時,利用4.0協議最短可以在3ms內完成連接並傳輸數據的特性,實現一個時間段內多個移動終端同時控製一個燈泡的功能。

涉及到需要對多個燈泡信息進行管理,設計了基於Sqlite數據庫[9,10]的設備管理模塊,用於存儲和管理燈泡的相關信息。