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