摘 要: 介紹了一種基于藍(lán)牙與智能手機(jī)的遠(yuǎn)程信息采集與控制系統(tǒng)及藍(lán)牙系統(tǒng)的無線傳感網(wǎng)絡(luò)系統(tǒng)架構(gòu),、下位機(jī),、手機(jī)端與服務(wù)器端的相關(guān)設(shè)計(jì),,給出了相應(yīng)軟,、硬件設(shè)計(jì)的流程圖以及硬件模塊的電路圖。
關(guān)鍵詞: 藍(lán)牙,;智能手機(jī),;智能家居;節(jié)點(diǎn)
我國智能家居行業(yè)在飛速發(fā)展,,然而受高成本的限制,,智能家居很難進(jìn)入普通家庭。傳統(tǒng)的智能家居都有專門的遙控器,,而且不同的設(shè)備需要配備不同的遙控器,,同時(shí)信息不能實(shí)時(shí)反饋給用戶。本文介紹的系統(tǒng)采用智能手機(jī)自帶的藍(lán)牙,,解決了這些問題,。藍(lán)牙技術(shù)的控制方法類似于現(xiàn)時(shí)紅外線遙控器與電器之間的指令關(guān)系,區(qū)別在于相應(yīng)產(chǎn)品需植入藍(lán)牙晶片,使用2.402~2.480 GHz免付費(fèi),、免申請(qǐng)的無線電頻段,。為避免此頻段電子裝置眾多的相互干擾,因而輔以每秒1 600次高難度跳頻以及加密,、保密技術(shù),,傳輸速率在432 Kb/s~721 Kb/s不等,未來的版本將達(dá)2 Mb/s,。植入了藍(lán)牙芯片的手機(jī),、電腦等,在10 m的范圍內(nèi),,可作為無線話音及數(shù)據(jù)信息的傳送,,配合專用的擴(kuò)大器,收發(fā)范圍可遠(yuǎn)達(dá)100 m,。結(jié)合了電路交換與分組交換的特點(diǎn),,可以進(jìn)行異步數(shù)據(jù)通信,可以支持多達(dá)3個(gè)同時(shí)進(jìn)行的同步話音信道,,還可以使用一個(gè)信道同時(shí)傳送異步數(shù)據(jù)和同步話音,。最主要的是幾乎所有手機(jī)都配備藍(lán)牙功能,帶寬完全可滿足實(shí)時(shí)監(jiān)控的需要,,傳輸距離也足夠家居環(huán)境的使用,。藍(lán)牙在局域型的信息采集與控制系統(tǒng)中有著良好的應(yīng)用前景。
1 基于藍(lán)牙的無線傳感網(wǎng)絡(luò)系統(tǒng)構(gòu)架
1.1 藍(lán)牙網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
藍(lán)牙技術(shù)是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī)范,,它以低成本的近距離無線連接為基礎(chǔ),,為固定與移動(dòng)設(shè)備通信環(huán)境建立一個(gè)特別連接。藍(lán)牙工作在全球通用的2.4 GHz ISM頻段,,數(shù)據(jù)傳輸速率為1 Mb/s,,時(shí)分雙工方案被用來實(shí)現(xiàn)全雙工傳輸,使用IEEE802.15協(xié)議,。
每個(gè)藍(lán)牙設(shè)備被分配一個(gè)唯一48 bit的藍(lán)牙設(shè)備地址[1],,它支持兩種操作模式:主設(shè)備和從設(shè)備。其中主設(shè)備負(fù)責(zé)提供時(shí)鐘同步信號(hào)和調(diào)頻序列,,從設(shè)備接收主設(shè)備的同步控制和調(diào)頻控制,。藍(lán)牙支持點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)的通信,,最基本的組網(wǎng)方式是微微網(wǎng),。如圖1所示,同一個(gè)微微網(wǎng)中的所有設(shè)備都跟隨主設(shè)備的調(diào)頻序列,。在圖1中,,(a)是點(diǎn)對(duì)點(diǎn)的連接,;(b)是點(diǎn)對(duì)多點(diǎn)的連接。本文中使用的是圖1(b)的連接方式[2],。
1.2 遠(yuǎn)程信息采集與控制系統(tǒng)體系結(jié)構(gòu)
基于藍(lán)牙與智能手機(jī)的遠(yuǎn)程信息采集與控制系統(tǒng)主要由各個(gè)房間的有相應(yīng)數(shù)據(jù)采集功能的藍(lán)牙無線傳感器節(jié)點(diǎn),、放置在家庭中心位置的具有數(shù)據(jù)處理能力的中心節(jié)點(diǎn)(具有藍(lán)牙功能的收發(fā)器)、一款智能手機(jī)以及一個(gè)網(wǎng)絡(luò)服務(wù)器終端組成[2],。各無線傳感器通過藍(lán)牙將采集的數(shù)據(jù)傳送至中心節(jié)點(diǎn),,中心節(jié)點(diǎn)通過藍(lán)牙將數(shù)據(jù)發(fā)送至手機(jī)端,手機(jī)端安裝有專門的接收軟件,,可以接收下位機(jī)發(fā)送來的數(shù)據(jù),,并進(jìn)行處理,將處理后數(shù)據(jù)發(fā)送至服務(wù)器,。同時(shí)服務(wù)器對(duì)手機(jī)發(fā)送指令,,手機(jī)可以對(duì)下位機(jī)發(fā)送指令,以實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè),、實(shí)時(shí)控制,。圖2反映了體系的完整結(jié)構(gòu)。
2 下位機(jī)的設(shè)計(jì)
2.1 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的布置
不同的房間放置不同的傳感器,,如廚房放置一氧化碳傳感器,、溫度傳感器,臥室放置溫濕度傳感器,、光強(qiáng)傳感器,。這些傳感器節(jié)點(diǎn)離中心節(jié)點(diǎn)的的距離一般都不會(huì)超過10 m,這已經(jīng)足夠覆蓋一般家庭所有房間,。
2.2 下位機(jī)控制模塊的設(shè)計(jì)
藍(lán)牙模塊處于等待連接狀態(tài),,當(dāng)手機(jī)第一次發(fā)出連接請(qǐng)求時(shí)需要輸入藍(lán)牙內(nèi)置的密碼,以后再連接時(shí)則不需要輸入密碼,,除非密碼改變,。匹配成功后建立連接,藍(lán)牙模塊充當(dāng)手機(jī)和微控制器(單片機(jī))的通信信道,,實(shí)現(xiàn)手機(jī)和微控制器的雙向連接,。用戶通過手機(jī)經(jīng)藍(lán)牙向單片機(jī)發(fā)送命令,單片機(jī)接收到命令后,,控制相應(yīng)的執(zhí)行模塊,實(shí)現(xiàn)控制功能,。例如:制作以52單片機(jī)為主控制器的學(xué)習(xí)型遙控器,,經(jīng)藍(lán)牙模塊與手機(jī)建立,用戶便可以實(shí)現(xiàn)電視換臺(tái),、控制音量等操作,。同時(shí)微控制器還能將相關(guān)傳感器采集的數(shù)據(jù)實(shí)時(shí)發(fā)送給手機(jī),,實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)功能。如:溫度傳感器和煙霧傳感器檢測(cè)到數(shù)據(jù)超標(biāo)后,,將報(bào)警信號(hào)發(fā)送給單片機(jī),,單片機(jī)將報(bào)警信號(hào)發(fā)送給手機(jī),通知用戶火警[3],。
下位機(jī)模塊原理如圖3所示,,模塊分別為控制開關(guān)、藍(lán)牙模塊,、紅外發(fā)射模塊和紅外接收模塊,。開關(guān)可以控制各種家電的開關(guān),藍(lán)牙模塊用于接收和發(fā)送數(shù)據(jù),,紅外發(fā)射器負(fù)責(zé)控制紅外遙控的家電,,紅外接收模塊可以復(fù)制遙控器的發(fā)送紅外的頻率,以實(shí)系統(tǒng)現(xiàn)通用性,。
3 手機(jī)端軟件的設(shè)計(jì)
3.1 手機(jī)和藍(lán)牙設(shè)備的通信
采用Java語言開發(fā)Adroid2.2版本以上的手機(jī)應(yīng)用程序,,該版本支持藍(lán)牙通信。首先通過SDK提供的BluetoothAdapter類的startDiscovery()方法,,掃描出附近與傳感器相連的藍(lán)牙設(shè)備并返回其物理地址,,以列表形式展現(xiàn);然后通過ListView的點(diǎn)擊事件確定與哪臺(tái)藍(lán)牙設(shè)備進(jìn)行連接,,當(dāng)選中一個(gè)物理地址之后,,便會(huì)調(diào)用BluetoothSocket類的connect方法,使手機(jī)和該藍(lán)牙設(shè)備建立基于TCP/IP協(xié)議的SOCKET連接,。重點(diǎn)代碼[4]如下:
BluetoothDevice mBTDevice=mBTAdapter.getRemoteDevice(dvcAddr),;
mBTSocket=mBTDevice.createRfcommSocketToServiceRecord(dvcUUID);
mBTSocket.connect(),;
其中,,dvcAddr為所要連接的藍(lán)牙設(shè)備的物理地址,mBTDevice利用通用唯一識(shí)別碼(dvcUUID)來創(chuàng)建一個(gè)BluetoothSocket對(duì)象,,該對(duì)象利用connect方法與藍(lán)牙設(shè)備建立連接,。
建立連接之后,利用OutputStream對(duì)象的write方法可以向藍(lán)牙設(shè)備發(fā)送信息,,實(shí)現(xiàn)控制,。并通過操作輸入輸出流進(jìn)行交互(包括手機(jī)對(duì)藍(lán)牙設(shè)備信息的采集以及對(duì)其操作指令的傳達(dá))。重點(diǎn)代碼如下:
out=BTConnectActivity.mBTSocket.getOutputStream(),;
String str="2",;
out.write(str.getBytes(),0,,1),;
上述代碼以控制燈泡的開關(guān)為例,,當(dāng)字符為非0時(shí)(代碼中為2),打開開關(guān),;當(dāng)字符為0時(shí),,關(guān)閉開關(guān)。
3.2 手機(jī)和服務(wù)器交互
在手機(jī)端以提供一個(gè)上傳界面的方式,,顯示從藍(lán)牙設(shè)備接收的數(shù)據(jù),,通過點(diǎn)擊事件,與上傳服務(wù)器建立SOCKET連接,,并發(fā)送之前從藍(lán)牙設(shè)備接收到的數(shù)據(jù),。服務(wù)器在接收到數(shù)據(jù)之后會(huì)發(fā)送相應(yīng)的反饋信息給手機(jī)端,再通過手機(jī)和藍(lán)牙設(shè)備的交互通道,,給予藍(lán)牙設(shè)備相應(yīng)的操作指令,。重點(diǎn)代碼如下:
Socket socket=new Socket("192.168.0.101",54322),;
br=new BufferedReader(new InputStreamReader(socket.getInputStream())),;
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter (socket. getOutputStream())),true),;
out.println(mes),;
其中,192.168.0.101是所要連接的服務(wù)器的IP地址,,54322是端口號(hào),。通過輸出流對(duì)象out的println方法,向服務(wù)器發(fā)送數(shù)據(jù),,并通過BufferReader對(duì)象br讀取從服務(wù)器發(fā)來的數(shù)據(jù),。
手機(jī)端軟件設(shè)計(jì)框圖如圖4所示。
4 服務(wù)器端軟件的設(shè)計(jì)
服務(wù)器端是一個(gè)基于Java的圖形用戶界面(GUI),,主要是實(shí)現(xiàn)顯示接收到的數(shù)據(jù)以及與手機(jī)進(jìn)行通信,,可以接收手機(jī)上傳簡單的數(shù)字信息、圖片,、視頻文件等,,同時(shí)服務(wù)器可以控制手機(jī),當(dāng)終端管理員需要遠(yuǎn)程采取相關(guān)操作時(shí),,可直接通過控制手機(jī)來控制家里的一切,。
本文提出了基于藍(lán)牙與智能手機(jī)的遠(yuǎn)程信息采集與控制系統(tǒng),分析研究了藍(lán)牙網(wǎng)絡(luò)的一般拓?fù)浣Y(jié)構(gòu),,采用藍(lán)牙節(jié)點(diǎn)模塊實(shí)現(xiàn)了無線終端的設(shè)計(jì),,以及傳感器終端的接口電路設(shè)計(jì),給出了手機(jī)軟件模塊設(shè)計(jì)的流程圖,,最后簡單介紹了服務(wù)器端的功能,。憑借藍(lán)牙的低功耗及傳輸穩(wěn)定、3G網(wǎng)絡(luò)覆蓋范圍極廣且傳輸速度快等特點(diǎn),,該系統(tǒng)具有很好的靈活性和可擴(kuò)展性,,可以廣泛應(yīng)用于野外勘探、醫(yī)療器械和智能家居等多個(gè)領(lǐng)域,,具有廣闊的市場(chǎng)發(fā)展前景,。
參考文獻(xiàn)
[1] CHATSCHIK B. An overview of the Bluetooth wireless technology[J]. IEEE Communications Magazine, 2001,,39(12):86-94.
[2] 王寧,,黃樟欽.智能手機(jī)遠(yuǎn)程家居監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,,25(9):2212-2213.
[3] 徐鳳榮.ROK101007藍(lán)牙模塊及其在無線火災(zāi)自動(dòng)報(bào)警系統(tǒng)中的應(yīng)用[J].國外電子元器件,,2006(11):54-57.
[4] 李寧.Android開發(fā)權(quán)威指南[M].北京:人民郵電出版社,2011.
[5] 金純,,許光辰,,孫睿.藍(lán)牙技術(shù)[M].北京:電子工業(yè)出版社,2001.
[6] BRAY J,, STURMAN C F. Bluetooth connect without cables. second edition[M]. New Jersey: Prentice Hall PTR,,2002.
[7] 呂鑫,王忠.ZigBee無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].安徽師范大學(xué)學(xué)報(bào),,2010,,33(4):332-335.