提出了一種基于Android平臺的物聯網網關方案。該網關通過藍牙串口通信實現物聯網中WSN (無線傳感器網絡)中心節點和Android網關的數據傳輸,在Android平臺上實現WSN節點信息管理并通過Android的網絡資源實現互聯網接入,從而在WSN與互聯網之間搭建一條透明的數據傳輸通道,完成對無線節點的數據進行遠程和實時的監測控制。
中國已成為第一大移動互聯網市場,在移動互聯網和物聯網的市場非常廣闊,這將使得物聯網應用借助移動互聯網平臺深入到各個領域,實現泛在的接入。目前移動互聯網平臺常見的嵌入式操作系統主要足Linux、WindowsCE、MeeGo、Android、Palm等;其中Android系統的網絡集成性很高,被公認為是一個基于Linux內核并針對移動設備的操作系統。
針對移動終端融合物聯網具有很大的意義,而物聯網接入互聯網的瓶頸是網關 本文提出了基于Android平臺、采用藍牙連接物聯網的網關方案,從而有效避免了物聯網網關的開發瓶頸。
1 基于Android平臺的WSN網關簡介
星云測控系統是由一個WSN主節點和很多WSN測控節點構成一個分布式的測控系統,用于野外的暫時和長期測量、橋梁檢測和大型結構瞬態測試等?;贏ndroid平臺藍牙串口通信的星云測控(WSN)網關結構示意圖如圖1所示:
網關采用基于Android的帶有藍牙和Wifi/WLAN功能的智能平板,采用藍牙連接基于STM32W的WSN測控系統主節點;網關將實現顯示、存儲、人機交互、遠距離通信和網絡通信等功能。網關軟件在Android2.3操作系統下運行,程序在Android Eclipse下開發完成。其工作過程大致為:將網關藍牙與ZigBee主控節點藍牙進行配對、連接和數據傳輸,同時網關通過同一局域網的WiFi連接至遠程終端,實現對ZigBee網絡測控信息的顯示、存儲和控制等,實現網關的通信和管理,完成WSN和互聯網的雙向數據傳輸和控制。
2 Android平臺的物聯網網關的設計方案
網關通過藍牙串口實現與WSN中心節點間的通信,在Android平臺上實現WSN節點信息管理并通過Andrid的網絡資源實現互聯網接入,從而在WSN與互聯網之間搭建一條透明的數據傳輸通道,完成對無線節點的數據進行遠程和實時的監測控制。圖2為基于Android平臺的網關設計框圖,Android平臺下的物聯網網關的軟件實現,需要完成以下步驟:
(1)設置藍牙和Wi—Fi;
(2)發現已經配對或者附近的藍牙設備;
(3)連接設備;
(4)在不同設備之間傳輸數據;
(5)使用Wi—Fi通過無線路南連接同一無線局域網,通過Socket建立基于TCP/IP協議的網絡通信。
(6)網關實現對WSN的管理。
圖3為網關工作流程。 Android的物聯網網關的設計實現了以下功能:啟動藍牙、啟動Wi—Fi、藍牙設備是否可見、搜索藍牙、藍牙設備的配對與連接、藍牙串口通信和網絡通信和網關管理。
3 Android網關的藍牙串口通信和網絡通信
3.1 Android網關的藍牙串口通信
“藍牙”是一種短距離的無線連接技術標準的代稱,實質內容就是要建立通用的無線電空中接口及其控制軟件的公開標準。利用“藍牙”技術,能夠有效地簡化移動通信終端設備之間的通信,也能夠成功地簡化設備與因特網之間的通信,從而數據傳輸變得更加迅速高效,為無線通信拓寬道路。Android的藍牙(Bluetooth)協議棧使用BlueZ (Linux官方的Bluetooth棧)來實現對GAP、SDP和RFCOMM等應用規范提供支持,并獲得了SIG認證。BlueZ的RFCOMM提供Bluetooth上的串行仿真,這使得串行端口應用程序和協議不加更改地在Bluetooth上運行。RFC OMM模塊和用戶模式dund的后臺進程實現了Bluetooth撥號網絡。Bluetooth規范支持針對Bluetooth HCI數據分組的UART(通用異步接收器/傳送器)和USB傳輸機制。BluZ棧同時支持這兩個傳輸機制(drivers/Bluetooth/)。圖4為Android Bluetooth部分的關系圖。
Android包含了對藍牙協議棧的支持,這使得藍牙設備能夠無線連接其他藍牙設備交換數據。Android的應用程序框架提供了訪問藍牙功能API,實現點對點或點對多點的無線交互功能。使用藍牙API,一個Android應用程序能夠實現下列功能:掃描其他藍牙設備、查詢本地藍牙適配器用于配對藍牙設備、建立RFCOMM信道、通過服務發現連接其他設備、數據通信和管理多個連接。圖5為本設計的藍牙串口通信流程圖。實現了藍牙設備打開、可見、搜索和連接管理。
3.2 Android網絡通信
Android完全支持JDK本身的TCP、UDP網絡通信的API,可以使用SeverSocket、Socket來建立基于TCP/IP協議的網絡通信,也可以使用DatagramSocket、Datagrampacket、MulticastSocket來建立UDP協議的網絡通信。本設計采用TCP/IP協議來實現網絡通信,通信流程如圖6所示。
本設計只實現客戶端編程,服務端用SocketTool TCP/IP通信調試工具V2.2在PC端建立。使用Socket來實現客戶端的步驟如下:
(1)通過IP地址和端口實例化Socket,請求連接服務器。
(2)獲取Socket上的流以進行讀寫。
(3)把流包裝進BufferedReader的實例。
(4)對Socket進行讀寫
(5)關閉打殲的流程。
關鍵代碼如下:
4 網關的管理功能及實現
網關在應用層實現對WSN的管理,主要包括安全認證、時間統一、監測數據采集、節點定位和遠程傳輸功能,從而實現對現場的實時臨控和管理。功能設計如下:
(1)安全認證:協調節點在安全認汪中,將申請節點的ID發給網關,網關查找配置表中的授權入網節;如果該節點ID在表中,則通知協調節點允許入網,否則不允許入網。同時,網關可以顯示、添加或修改節點配置表中的授權入網節點。
如圖8—1所示,網關插入配置表信息,該實驗為四個節點組成的ZigBee網絡,節點編號分別為0080E102001BC94D、0080E102001BCE91、0080E102001BC204和0080E102001BCF51。ZigBee組成的無線傳感器網絡實現點對點通信,網關可以采集到節點數據信息,并用綠燈顯示該網絡實現的是1號節點和3號節點之間的點對點通信,紅燈表明處于非工作狀態。
(2)時間統一:在進行時間統一的過程中,首先通過NTP協議對網關校時,并以此時間為基準,把時間發給協調器節點,從而校準協調節點的時間和網內子節點的時間,實現網絡中節點的時間統一。如圖7(a)所示,網關的最下方顯示了NTP協議實現的校時。
(3)監測數據采集:在進行節點定位的過程中,網關可以采集節點數據、提取節點號和RSSI值。如圖7(h)所示,上方滾動串口顯示了收到的來自ZigBee無線傳感器網絡的串口數據。
(4)節點定位:ZigBee網絡使用RSSI測距法實現節點定位,網關采集節點RSSI值解算出了節點大概位置。
(5)存儲監測數據:接收節點監測數據并定期以文件形式保存到本地的SD卡中。如圖8—2截取的存儲至SD卡的數據傳輸數據,命名為Bluetooth.txt。
5 測試結果
系統所需的硬件平臺為:Android平板電腦一部、BMX藍牙模塊、PC機一臺。本實驗所需的軟件平臺為:SSCOM32串口調試助手、Socket Tool網絡調試和TCP/UDP開發丁具、Ecplise JAVA開發環境和Android SDK開發包。網絡通信設置的IP地址為:192.168.0.190,端口號為:30000。
運行主要結果如圖8所示。圖8 (a)為設備連接界面,主要實現藍牙連接和網絡連接,觸發搜索設備按鈕顯示設備列表,點擊所需設備名稱建立藍牙連接。觸發wifi按鈕建立網絡連接,觸發測試按鈕,測試通信信道是否建立,建立成功顯示”success connection”。該網關實現了雙向數據傳輸和網關管理,如圖8(b),8(c)。傳輸過程分為以下三種情況:
(1)藍牙設備發送數據給Android網關和遠程終端,Android網關和遠程終端顯示”xi’antechnological universitv”表明測試成功。
(2)Android網關發送數據給藍牙設備和遠程終端,藍牙設備和遠程終端顯示“I am Lei Bin”表明測試成功。
(3)遠程終端發送數據給Android網關,Andiroid網關顯示“Success of socket communication”表明測試成功。網絡通信結果如圖8(d)所示。
6 結束語
由于采用藍牙串行通信技術連接物聯網,避免了在Android平臺上的硬件開發,使得在對現有Android智能平臺無需硬件改造及編寫底層驅動即可實現無線傳感網絡管理及和互聯網間的數據傳輸,大大降低了物聯網網關的應用難度和成本。
在該設計的基礎上,可以進一步實現對無線傳感器網絡的實時控制,這使得在移動終端融合物聯網應用成為可能。
編輯:jq
-
藍牙
+關注
關注
114文章
5835瀏覽量
170705 -
網絡通信
+關注
關注
4文章
809瀏覽量
29851 -
WSN
+關注
關注
17文章
188瀏覽量
108593
發布評論請先 登錄
相關推薦
評論