魏燕達+周衛(wèi)星
摘 要: 系統(tǒng)以Android智能手機為操作終端,IP網(wǎng)絡為傳輸介質,使用STM32F107微處理器和集成射頻功能在內的STM32W108微處理器構建嵌入式網(wǎng)關,網(wǎng)關通過網(wǎng)絡物理芯片DP83848傳輸操作終端的控制或查詢命令,利用6LOWPAN技術傳輸無線傳感網(wǎng)絡的無線數(shù)據(jù)包,實現(xiàn)對家電終端的遠程監(jiān)測和控制功能。該系統(tǒng)解決傳統(tǒng)家居傳感器節(jié)點與互聯(lián)網(wǎng)信息融合的問題,實驗測試結果表明,系統(tǒng)設計合理,具有良好的可行性,有一定的應用價值和前景。
關鍵詞: 無線傳感器網(wǎng)絡; 智能家電; 6LOWPAN; STM32; Android
中圖分類號: TN919.2?34 文獻標識碼: A 文章編號: 1004?373X(2015)14?0101?04
0 引 言
現(xiàn)代社會提倡節(jié)能減排,人們不良的用電習慣往往帶來不必要的浪費。這就需要能夠對各類用電器進行監(jiān)測和控制的系統(tǒng)。智能家居在傳統(tǒng)的家居環(huán)境中引入自動化控制等技術,可以解決以上問題,但是布線復雜,價格昂貴[1?2]。而物聯(lián)網(wǎng)是當今學術和應用研究的熱點之一,接入互聯(lián)網(wǎng)需要專用的適配器[3?4],6LOWPAN技術的提出,將IP網(wǎng)絡擴展到無線傳感器網(wǎng)絡成為可能[5]。本文將物聯(lián)網(wǎng)技術運用到家電系統(tǒng),在不改變舊式家電的基礎上,提出在燈座插線增加轉接器的非侵入低成本手段,該轉換器利用6LOWPAN網(wǎng)絡協(xié)議搭建低功耗的無線傳感網(wǎng)絡,實現(xiàn)對家電終端的遠程監(jiān)測和控制功能。
1 系統(tǒng)方案設計
基于6LOWPAN的智能家電監(jiān)測與控制系統(tǒng)框架圖如圖1所示,系統(tǒng)由手持客戶終端、嵌入式網(wǎng)關、IPv6無線傳感器網(wǎng)絡主智能節(jié)點和從轉換器節(jié)點等部分構成。手持客戶終端采用Android手機,安裝開發(fā)的APP軟件就能通過互聯(lián)網(wǎng)遠程監(jiān)測和控制家電;嵌入式網(wǎng)關提供互聯(lián)網(wǎng)訪問服務和轉發(fā)無線傳感器網(wǎng)絡指令的功能,負責接收手機發(fā)來的指令,并將其轉換為無線傳感器網(wǎng)絡可識別的指令以及轉發(fā)到對應的智能節(jié)點上。網(wǎng)關采用STM32W108和STM32F107雙核處理器方案,STM32W108處理無線傳感器網(wǎng)絡的6LOWPAN數(shù)據(jù),STM32F107處理互聯(lián)網(wǎng)數(shù)據(jù)。嵌入式網(wǎng)關是整個系統(tǒng)的核心,擔任數(shù)據(jù)格式轉換和轉發(fā)工作,需要很強的可靠性和穩(wěn)定性[6]。無線傳感器網(wǎng)絡由主節(jié)點和從節(jié)點組成,主節(jié)點作為嵌入式網(wǎng)關與從節(jié)點之間數(shù)據(jù)傳輸?shù)穆酚善?,從?jié)點嵌入到家電中,監(jiān)測和控制家電狀態(tài)。
圖1 系統(tǒng)框架
2 硬件電路設計
該系統(tǒng)采用Android智能手機作為客戶端;嵌入式網(wǎng)關的STM32F107與STM32W108處理器之間通過Uart接口連接;網(wǎng)絡物理層芯片采用DP83848;IPv6無線傳感網(wǎng)絡所有節(jié)點采用都是STM32W108處理器。嵌入式網(wǎng)關和IPv6無線傳感網(wǎng)絡的無線收發(fā)模塊采用的都是STM32W108內部自帶的RF模塊,外接一個陶瓷天線構成。硬件總體框架圖如圖2所示。
圖2 硬件總體框架圖
2.1 無線傳感器網(wǎng)絡
IPv6無線傳感網(wǎng)絡拓撲結構如圖3所示。主節(jié)點“R”和從節(jié)點“N”都采用STM32W108處理器,不同之處在于節(jié)點“N”比節(jié)點“R”增加傳感器和控制電路模塊。
STM32W108是意法半導體(ST)公司推出的一個完全集成的系統(tǒng)級芯片,該芯片集成符合IEEE 802.15.4標準的2.4 GHz收發(fā)器、32位ARM Cortex?M3微處理器、FLASH閃存、RAM儲存器和其他通用外設。在保持低功耗的基礎上, 采用32位ARM Cortex?M3內核,它有別于其他的[816]位處理器,其提供更強大的處理能力,并有廣泛的ARM開發(fā)工具,群體支持;芯片內部帶有功率放大器,發(fā)射輸出功率可達7 dBm,無需外部功放就可以獲得較遠的通信距離[7]。
圖3 IPv6無線傳感網(wǎng)絡拓撲圖
2.2 嵌入式網(wǎng)關
嵌入式網(wǎng)關主要由STM32F107,STM32W108和DP83848三部分電路模塊構成。STM32F107也是由ST公司推出全新SMT32互聯(lián)型系列控制器中的一款性能較強的產(chǎn)品,此芯片集成各種共性能工業(yè)標準接口,并且STM32F10X不用型號產(chǎn)品在引腳和軟件上具有完美的兼容性,可以輕松適應更多的應用。此芯片的標準外設包括10個定時器,2個12位A/D,2個12位D/A,2個I2C接口,5個USART接口,3個SPI接口,高質量數(shù)字音頻接口I2S。另外擁有全速USB(OTG)接口,2個CAN 2.0B接口和10M/100M以太網(wǎng) MAC模塊。STM32F107內部自帶以太網(wǎng)模塊,以及嵌入式網(wǎng)關無需用戶顯示界面,不需要性能很高的處理器,所以選用性價比較好的STM32F107處理器。
DP83848是美國國家半導體(NS)公司生產(chǎn)的集成以太網(wǎng)控制芯片,是一種10M/100M單路物理層以太網(wǎng)收發(fā)器器件,支持MII和RMII接口模式,集成度高,具有全功能、低功耗等性能。本系統(tǒng)采用RMII接口,配置成100 Mb/s以太網(wǎng)模式。
3 軟件設計
3.1 無線傳感器網(wǎng)絡
節(jié)點“N”和“R”移植Contiki操作系統(tǒng),Contiki系統(tǒng)由瑞典計算機科學研究所開發(fā),是一個開源多任務事件驅動操作系統(tǒng),專為網(wǎng)絡嵌入式設備設計。輕量級的足印很適合內存有限的MCU。一個Contiki系統(tǒng)只需2 KB的RAM和40 KB的ROM。包含一個事件驅動的內核,使用輕量級的protothreads進程模型,可以在事件驅動內核上提供一個線性的、類似于線程的編程風格,Contiki操作系統(tǒng)可運行于各種平臺[8?9]。
在Windows系統(tǒng)環(huán)境下,采用Cygwin開發(fā)平臺。Cygwin是許多自由軟件的集合,最初由Cygnus Solutions開發(fā),在各種版本的Microsoft Windows上運行Unix類系統(tǒng)。在Cygwin環(huán)境下移植Contiki操作系統(tǒng),需要另外借助EWARM編譯工具。安裝好相應軟件后,打開Cygwin軟件,需要設置編譯軟件PATH環(huán)境變量。命令如下:
exportPATH=/cygdrive/c/Program\Files/IAR\Systems/Embedded\Workbench\5.4\Evaluation/arm/bin:$PATH
智能節(jié)點軟件流程圖如圖4所示,智能節(jié)點上電初始化之后,處于監(jiān)聽嵌入式網(wǎng)關的狀態(tài)。一旦嵌入式網(wǎng)關發(fā)來無線數(shù)據(jù)包,智能節(jié)點就對數(shù)據(jù)包進行解析。如果是監(jiān)測家電狀態(tài)的指令,智能節(jié)點就查詢當前家電的狀態(tài),把數(shù)據(jù)打包之后通過射頻模塊發(fā)送給嵌入式網(wǎng)關;如果是控制指令,智能節(jié)點將會控制家電的開關狀態(tài),完成指令控制后,智能節(jié)點也會通過射頻模塊向嵌入式網(wǎng)關發(fā)送應答信號。
圖4 智能節(jié)點軟件流程圖
3.2 嵌入式網(wǎng)關
嵌入式網(wǎng)關內部有2個獨立的操作系統(tǒng),其中STM32F107處理器移植μC/OS操作系統(tǒng)[10],STM32W108移植Contiki系統(tǒng)。操作系統(tǒng)之間通過Uart協(xié)議通信,通信自定義幀格式如表格1所示。自定義幀由幀頭、網(wǎng)絡標識、節(jié)點地址與端口號、節(jié)點狀態(tài)、傳感器類型、節(jié)點數(shù)據(jù)、保留字節(jié)和幀尾組成,長度為16 B。通過讀取節(jié)點的狀態(tài)和節(jié)點數(shù)據(jù),客戶端就可以監(jiān)測和控制傳感器節(jié)點。幀格式保留2 B,當有更多的數(shù)據(jù)傳輸時,保留的字節(jié)可以直接擴展。
表1 自定義幀格式
嵌入式網(wǎng)關軟件流程圖如圖5所示,網(wǎng)關上電初始化之后,處于監(jiān)聽UDP端口信息狀態(tài),等待客戶端的訪問。一旦有客戶端訪問,需要驗證客戶端的遠程口令是否正確。如果口令不正確,不再解析數(shù)據(jù)包,返回監(jiān)聽UDP端口信息狀態(tài);如果口令正確,將會解析數(shù)據(jù)包。解析后的數(shù)據(jù)包由網(wǎng)關的射頻模塊向IPv6無線傳感網(wǎng)絡發(fā)送無線數(shù)據(jù)。在設定的時間內,不管IPv6無線傳感網(wǎng)絡有無響應嵌入式網(wǎng)關,網(wǎng)關都會向客戶端返回指令響應狀態(tài)的應答信號。
3.3 Android客戶端
客戶端用Android手機為載體,軟件設計流程圖如圖6所示。在登錄界面用戶輸入嵌入式網(wǎng)關的IP地址、UDP端口號和遠程口令,點擊界面“登陸”按鈕后,軟件通過IP網(wǎng)絡向嵌入式網(wǎng)關發(fā)送登陸命令,如果通過嵌入式網(wǎng)關的遠程口令驗證,軟件進入功能界面;如果沒通過嵌入式網(wǎng)關的遠程口令驗證,軟件則停留在登錄界面。功能界面提供友好的操作,軟件等待用戶按下觸屏按鈕,一旦按鈕被按下,軟件向嵌入式網(wǎng)關發(fā)送相應的指令后,等待嵌入式網(wǎng)關響應,軟件根據(jù)響應的信息更改對應的界面顯示。
4 實驗測試
圖7為手機客戶端登陸界面,輸入正確的嵌入式網(wǎng)關IP地址、UDP端口號以及遠程口令訪問嵌入式網(wǎng)關。系統(tǒng)需要測試無線數(shù)據(jù)和互聯(lián)網(wǎng)數(shù)據(jù)的傳輸。在客戶端側安裝網(wǎng)絡抓包工具,并開啟手機root權限,捕獲發(fā)送和接收的數(shù)據(jù)。圖8為UDP數(shù)據(jù)在網(wǎng)絡中的傳輸數(shù)據(jù)信息,與自定義幀格式一致。圖9為客戶端功能操作界面。
圖5 嵌入式網(wǎng)關軟件流程圖
圖6 客戶端軟件流程圖
5 結 語
本文提出一種基于6LOWPAN的智能家電監(jiān)測和控制系統(tǒng)的非侵入解決方案,對系統(tǒng)的軟硬件設計進行論述,最后對系統(tǒng)進行測試。系統(tǒng)各模塊正常穩(wěn)定工作,實現(xiàn)IPv6無線傳感器網(wǎng)絡與互聯(lián)網(wǎng)的互聯(lián),用戶通過客戶端可以實時監(jiān)測和控制家電的目標。
圖7 客戶端登陸界面
圖8 抓包信息
圖9 功能界面
參考文獻
[1] 馮凱,童世華.智能家居的由來及其發(fā)展趨勢[J].中國新技術新產(chǎn)品,2010(6):7?8.
[2] 張鴻愷,伍超.智能家居及其發(fā)展研究[J].黑龍江科技信息,2008(32):266?267.
[3] 尹育新,戎宏娜.淺談一種全新的網(wǎng)絡技術:物聯(lián)網(wǎng)[J].信息系統(tǒng)工程,2010(2):105?106.
[4] 申斌,張桂青,汪明,等.基于物聯(lián)網(wǎng)的智能家居設計與實現(xiàn)[J].自動化與儀表,2013(2):6?10.
[5] 張宏科,梁露露,高德云.IPv6無線傳感器網(wǎng)絡的研究及其應用[J].中興通訊技術,2009(5):37?40.
[6] 朱宇陽.智能家居系統(tǒng)嵌入式網(wǎng)關設計[D].上海:華東師范大學,2009.
[7] 沈建華,郝立平.STM32W無線射頻ZigBee單片機原理與應用[M].北京:北京航空航天大學出版社,2010.
[8] 王建國.基于Contiki OS的無線傳感器網(wǎng)絡中輕量級IPSec設計與實現(xiàn)[D].北京:北京交通大學,2013.
[9] 冀宇鑫,楊冬,秦雅娟,等.基于WSNs平臺的Contiki通用移植方法研究[J].計算機技術與發(fā)展,2012(11):134?137.
[10] LABROSSE J J.嵌入式實時操作系統(tǒng)μC/OS?Ⅱ[M].2版.北京:北京航空航天大學出版社,2010.