魏燕達+周衛星


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