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