文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.018
中文引用格式: 方天恩,漆晶,馬金輝,等. 基于Android的智能藍(lán)牙溫度計的研究與設(shè)計[J].電子技術(shù)應(yīng)用,2017,43(3):73-76.
英文引用格式: Fang Tianen,Qi Jing,Ma Jinhui,et al. The research and implementation of smart Bluetooth thermometer based on Android[J].Application of Electronic Technique,2017,43(3):73-76.
0 引言
隨著無線傳感網(wǎng)絡(luò)技術(shù)的飛速發(fā)展及智能家居概念的不斷普及,人們對生活品質(zhì)的追求也在不斷提高,各種各樣的無線智能設(shè)備開始融入大家的生活,引領(lǐng)人們進(jìn)入了智能時代。傳統(tǒng)的PC監(jiān)測設(shè)備溫度已經(jīng)滿足不了現(xiàn)代生活的需求,為此,本文根據(jù)需求設(shè)計了一套利用智能移動平臺和藍(lán)牙通信實(shí)現(xiàn)溫度數(shù)據(jù)的實(shí)時傳輸顯示系統(tǒng),同時在進(jìn)行一對多通信時,在Android App端采用了一種基于能量優(yōu)先級的通信調(diào)度算法。本設(shè)計主要用于測量葡萄酒的儲藏溫度,但同樣適用于測量工程設(shè)備以及各種生產(chǎn)現(xiàn)場。
1 總體架構(gòu)
本文設(shè)計的無線溫度采集系統(tǒng)結(jié)構(gòu)如圖1所示。熱敏電阻與CC2541節(jié)點(diǎn)設(shè)備連接,由CC2541節(jié)點(diǎn)設(shè)備內(nèi)部A/D轉(zhuǎn)換器進(jìn)行溫度數(shù)據(jù)采集,然后通過藍(lán)牙BLE協(xié)議將數(shù)據(jù)傳輸至Android設(shè)備,進(jìn)行圖形化溫度顯示,并通過Android設(shè)備的3G/4G網(wǎng)絡(luò)將溫度數(shù)據(jù)傳輸至服務(wù)器進(jìn)行存儲,同時也可以通過3G/4G網(wǎng)絡(luò)下載查看歷史數(shù)據(jù)。
2 系統(tǒng)設(shè)計
2.1 硬件系統(tǒng)設(shè)計
本系統(tǒng)硬件主要有以下模塊:電源模塊、MCU控制模塊、藍(lán)牙數(shù)據(jù)傳輸模塊、LED驅(qū)動模塊。硬件系統(tǒng)框圖如圖2所示。
2.1.1 處理器單元
CC2541是由TI公司設(shè)計并生產(chǎn)的基于2.4 G藍(lán)牙無線低功耗單片SOC,該芯片支持藍(lán)牙4.0BLE(藍(lán)牙低功耗)[1]協(xié)議,并通過配置可實(shí)現(xiàn)最高2 Mb/s的數(shù)據(jù)傳輸速率。由于該芯片具有低功耗,外圍原件較少,電路設(shè)計簡單,且內(nèi)部集成最多8通道的12 bit ADC,以及采用QFN封裝的特點(diǎn),非常適合便攜式無線移動節(jié)點(diǎn)應(yīng)用,因此,本設(shè)計采用CC2541芯片作為無線節(jié)點(diǎn)的設(shè)備主控。
由于該無線節(jié)點(diǎn)設(shè)備應(yīng)用于便攜式場景,采用電池供電,需要保證功耗盡可能低,因此在設(shè)計中,需要采用休眠喚醒功能,必須應(yīng)用RTC(實(shí)時時鐘控制器)時鐘喚醒模塊,故設(shè)計中加入32.768 kHz實(shí)時時鐘震蕩電路作為RTC時鐘的振蕩源。
2.1.2 天線與巴倫濾波電路
考慮到盡可能降低設(shè)計成本,并保證系統(tǒng)工作的穩(wěn)定性,尤其是在無線傳輸部分?jǐn)?shù)據(jù)傳輸可靠性,本設(shè)計采用了分立器件設(shè)計的巴倫濾波器代替成本較高的單片式集成巴倫濾波器,同時為在器件不一致性較大情況下可對濾波器進(jìn)行微小調(diào)節(jié),在電路設(shè)計中預(yù)留器件接口,具體射頻電路如圖3所示。圖3中C15為調(diào)節(jié)元件,在節(jié)點(diǎn)設(shè)計生產(chǎn)中,可在調(diào)試不理想情況下焊接電容元件進(jìn)行微調(diào)。同樣,為保證系統(tǒng)設(shè)計成本盡量低,本設(shè)計采用板載倒F蜿蜒天線作為射頻發(fā)射接口,保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性,并保證了在應(yīng)用中的傳輸距離。天線尺寸參數(shù)如表1所示。
2.2 軟件系統(tǒng)設(shè)計
利用Android移動終端對數(shù)據(jù)進(jìn)行讀取并顯示,相比于傳統(tǒng)的PC監(jiān)測,Android移動終端更加方便、快捷。軟件設(shè)計部分的主要內(nèi)容是:在Android移動設(shè)備與BLE設(shè)備之間通過藍(lán)牙建立穩(wěn)定可靠的通信,同時提供一個可視化良好的人機(jī)交互界面。
(1)為了讓應(yīng)用運(yùn)行在支持BLE的Android設(shè)備上,需要添加以下藍(lán)牙的響應(yīng)權(quán)限[2]:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN " />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
(2)集中器和BLE設(shè)備建立通信流程如圖4所示。具體細(xì)節(jié)如下:
集中器開啟藍(lán)牙,開始對外圍正在廣播的設(shè)備進(jìn)行掃描,掃描到廣播設(shè)備后,集中器發(fā)送掃描請求,外圍設(shè)備響應(yīng)請求[3]。在集中器與外圍設(shè)備通信過程中需要使用唯一識別碼UUID(Universally Unique Identifier)。在數(shù)據(jù)傳輸過程中,若移動終端定義的UUID與BLE廣播中GAP(Generic Access Profile)定義的UUID相同,一旦移動終端的連接請求通過,集中器與BLE設(shè)備即可進(jìn)入連接狀態(tài)[4]。發(fā)現(xiàn)服務(wù)后,集中器通過指定的UUID向BLE設(shè)備發(fā)送設(shè)置指令,隨后BLE設(shè)備將UUID相對應(yīng)的地址返回給集中器,返回地址中包含集中器需要的最終數(shù)據(jù)。
(3)App軟件具體工作流程如圖5所示,藍(lán)牙4.0之前都是通過Socket套接字來進(jìn)行連接通信的,同時在實(shí)現(xiàn)一點(diǎn)對多點(diǎn)時,大多采用輪循的機(jī)制。假如6個外圍設(shè)備,則設(shè)12 s一個周期,每個設(shè)備通信時長2 s,這樣大大增加了通信設(shè)備雙方的功耗,而且很容易受到外界諸多因素的干擾,導(dǎo)致通信不可靠。而本文采用廣播包的形式來通知主機(jī),將溫度、電量等信息寫入廣播包字節(jié)中,以獲取廣播包的方式來獲取溫度、電量、設(shè)備名字等信息,很容易實(shí)現(xiàn)一對多的通信。而且在不進(jìn)行數(shù)據(jù)通信時,會進(jìn)入休眠狀態(tài),只有當(dāng)需要對設(shè)備發(fā)送設(shè)置指令時,才進(jìn)行連接,大大降低了功耗,提升了設(shè)備的工作時長,這也是低功耗藍(lán)牙最大的特點(diǎn)。
(4)考慮到一點(diǎn)對多點(diǎn)的通信情況,即一個移動設(shè)備同時與多個BLE設(shè)備通信,本文在軟件端提出了一種基于能量(電量)優(yōu)先級的通信調(diào)度算法,可以在一定程度上降低功耗。電壓與電量百分比轉(zhuǎn)換的基本原理是通過ADC(模數(shù)轉(zhuǎn)換器)計算電池電壓。以CC2540芯片用一鈕扣電池為例,電池電壓從2.0 V~3.0 V,即電量的0%~100%。電量轉(zhuǎn)換關(guān)系圖如圖6所示。
具體算法如下:
(1)初始狀態(tài)時,每個BLE設(shè)備都處于待機(jī)狀態(tài),具有相同的優(yōu)先級,人們的手機(jī)自然而然作為主設(shè)備,主動發(fā)起掃描周圍存在的設(shè)備,并將掃描到的設(shè)備添加到掃描列表中[5];
(2)獲取每個從設(shè)備的當(dāng)前電量百分比,按照電量高低分為M個等級;
(3)根據(jù)步驟(2)優(yōu)先級從高到低的順序?qū)⒃O(shè)備ID添加到一個優(yōu)先級隊列中;
(4)主設(shè)備按優(yōu)先級順序依次向列表中的設(shè)備發(fā)起連接并傳送數(shù)據(jù);
(5)當(dāng)隊列中的設(shè)備為空時,由主設(shè)備進(jìn)行下一輪的掃描,并將掃描到的新設(shè)備添加到設(shè)備列表中,然后跳轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行。
3 系統(tǒng)測試
3.1 通信距離測試
測試要求:在空曠的環(huán)境下,有效通信距離為20 m以上;當(dāng)溫度計放置于冰箱里面,有效通信距離為4 m。
測試結(jié)果:經(jīng)過測試,空曠地通信距離可達(dá)40 m;放置于家庭冰箱內(nèi)通信距離可達(dá)6 m,完全滿足了工業(yè)上的設(shè)計要求。
3.2 溫度計量測試
測試內(nèi)容:常溫到冰箱的溫度隨時間的變化和冰箱到常溫的溫度隨時間的變化。本次測試對比采用市面上比較成熟的Digitron 溫度計,測試結(jié)果如圖7、圖8所示。
4 結(jié)束語
針對當(dāng)前對溫度監(jiān)測精度較高的設(shè)備(主要以PC為主),研究了基于Android系統(tǒng)的藍(lán)牙溫度計,精確有效方便地分析判斷當(dāng)前設(shè)備的溫度,解決了傳統(tǒng)PC監(jiān)測移動性不高的缺點(diǎn),同時也解決了傳統(tǒng)設(shè)備測溫的局限性,方便了人們的生活。該系統(tǒng)設(shè)計所需硬件簡單易用、穩(wěn)定可靠、成本低廉,具有較好的擴(kuò)展性;軟件依附于的Android平臺軟件具有通用性,易于移植。產(chǎn)品目前已經(jīng)批量生產(chǎn),有廣闊的市場應(yīng)用價值。
參考文獻(xiàn)
[1] 藍(lán)牙技術(shù)聯(lián)盟.Core_V4.0[EB/OL].[2012-10].http://www.bluetootn.org/Technical/Specifications/adopted/htm.
[2] 李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2015.
[3] 王宏志,曲超,呂洪武.基于藍(lán)牙4.0溫濕度的監(jiān)測[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2016,34(2):296-302.
[4] 陳子龍,張紅雨,李俊斌.CC2540和SHT11的無線溫濕度采集系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13 (4):41-44.
[5] 廖輝,陳慶奎,高麗萍,等.基于博弈論的藍(lán)牙4.0協(xié)同通信策略[J].廣西大學(xué)學(xué)報(自然科學(xué)版),2014,39(5):1090-1095.
作者信息:
方天恩1,漆 晶1,馬金輝2,劉德慶1,張朝陽1
(1.重慶郵電大學(xué) 移動通信技術(shù)重慶市重點(diǎn)實(shí)驗(yàn)室,重慶400065;2.重慶郵電大學(xué) 無線傳輸技術(shù)研究所,重慶400065)