武 磊,張正炳,胡蓉華
(1. 長江大學 電子信息學院,湖北 荊州 434023; 2. 長江大學 計算機科學學院,湖北 荊州 434023)
基于Web的家居設備遠程控制系統設計與實現
武 磊1,張正炳1,胡蓉華2
(1. 長江大學 電子信息學院,湖北 荊州 434023; 2. 長江大學 計算機科學學院,湖北 荊州 434023)
為了方便用戶遠程控制家居設備以及提高設備可靠性,設計了一套基于Web的遠程家居設備控制系統,可以讓用戶只需要登錄手機或者PC瀏覽器就可以監控相隔千里的家居設備。此系統包含節點設備控制平臺和物聯網平臺,其中,節點設備控制平臺采用控制芯片STM32F407、PHY芯片Lan8720、LwIP協議棧,實現了節點設備入網、控制及狀態檢測;物聯網平臺采用Web技術,響應來自用戶瀏覽器的控制命令及監控設備運行狀態。實際測試結果表明,該系統性能可靠、使用方便,可以滿足家居設備控制需要,有著廣泛的應用前景。
STM32;LwIP;Lan8720;Web控制
隨著互聯網技術和智能硬件的快速發展,基于網絡的遠程設備控制系統被廣泛地應用在家居、農業[1]和工業[2]中,最初大多采用C/S模式,需要交互雙方分別安裝客戶端和服務端,使用起來比較復雜;繼而梁鐵等[3]提出基于Web服務器的方式,不需要安裝服務端程序,只需在設備中嵌入Web網頁,利用現有瀏覽器就可以控制節點設備,但該設計工作在局域網中,控制距離短;結合Yeelink物聯網平臺,杜一騰等[4]提出了基于Arduino與Yeelink平臺的遠程設備控制系統,這種方式使用簡單,但是依賴于Yeelink平臺,可擴展性差,同時無法實時觀察當前設備運行開關狀態,導致安全隱患。針對這些問題,本文采用STM32F407芯片、Lan8720芯片以及Web技術,設計了基于Web技術的遠程家居設備控制系統。此系統可以使用戶不受限于時間和地點,只需要打開隨身攜帶的手機或PC瀏覽器登錄位于云服務器的物聯網平臺,通過控制平臺網頁中與節點設備平臺綁定的虛擬開關,就可以控制家居設備,使用方便,同時可以在物聯網平臺上實時了解當前家居設備的運行狀態,及時消除故障設備隱患。該系統成本低、實時性強、使用簡單,在農田灌溉、大棚溫調等智能農業領域,家居設備開關控制等智能家居領域以及工業中危險設備的遠程控制等智能工業領域有一定的應用價值。
本系統是基于Web技術的遠程家居設備控制系統。本系統包含兩部分,一部分是位于云服務器的物聯網平臺,另一部分是接入了因特網的節點設備控制平臺,此部分連接了多個家居節點設備,這兩部分與用戶的聯網設備(如手機、PC)構成了整個遠程家居設備控制運行環境。工作時,用戶只需要打開自身攜帶的計算機或手機瀏覽器登錄到物聯網平臺中,通過控制與家居節點設備對應的虛擬開關,就可以打開家里所對應的目標設備,同時在物聯網平臺上可以實時查看當前家居設備的開關狀態。系統框圖如圖1所示。

圖1 系統框圖
本系統的節點設備控制平臺包括了串口模塊、電源模塊、 STM32主控模塊、多路被控節點模塊、PHY模塊以及網口模塊6個部分,如圖2所示。

圖2 硬件設計框圖
各模塊具體實現如下:
(1)PHY模塊由PHY芯片Lan8720[5]完成,Lan8720是一款低功耗的10/100M的以太網PHY層芯片,支持RMII接口與以太網MAC層通信,并可以通過自協商的方式與目的主機建立最佳的工作方式(速度和雙工模式)。在此系統中主要完成物理層的功能,實現數據的串并轉換、同步等;
(2)被控節點模塊由繼電器控制及開關檢測電路組成,一是用于執行主控模塊傳遞過來的節點設備控制命令,二是檢測當前被控節點設備的運行狀態;
(3)串口模塊由RS232及外圍電路組成,主要用于網絡連接狀態及設備運行狀態顯示等;
(4)電源模塊主要是為 STM32主控模塊、節點模塊及其他硬件設備供電;
(5)STM32主控模塊由STM32F407[6]及外圍電路組成,STM32F407是基于Cortex M4內核的一款嵌入式芯片,相對于STM32F1,具備更高的性能,更低的功耗,同時自帶以太網模塊,該模塊支持介質獨立接口(MII)和簡化介質獨立接口(RMII)。在本系統中配合軟件設計實現了MAC層、網絡層、傳輸層及應用層的功能。
3.1系統軟件工作流程
本系統初始化后,節點設備控制平臺與物聯網平臺建立TCP連接,雙方進入連接建立狀態;當用戶通過計算機或手機上的瀏覽器登錄物聯網平臺,發出打開或者關閉家居節點設備的命令后,命令會寫入到網站后臺文件中等待節點設備獲取;節點設備平臺會以60 s的周期,不斷發出開關控制狀態請求命令,物聯網平臺收到請求后將網站后臺文件中的用戶控制命令以HTTP響應包的格式發送給節點設備控制平臺,節點設備控制平臺提取出HTTP包中的控制信息,告知被控節點完成相應設備的打開或者關閉;同時節點設備平臺設置30 s定時器,待定時到后檢測當前所有節點設備運行狀態發給物聯網平臺,物聯網平臺收到請求后更新html頁面,用戶根據頁面中設定的開關狀態及節點設備返回的狀態監控信息就可以判斷控制是否起作用,同時也可以了解其他設備是否運行正常,系統軟件工作流程如圖3中①~⑨所示。

圖3 系統軟件工作流程圖
本系統軟件設計主要包括LwIP協議棧的移植、節點設備控制平臺軟件設計以及物聯網平臺軟件設計三個部分,介紹如下。
3.2LwIP協議棧移植
基于802標準的TCP/IP協議,如果運行在嵌入式芯片STM32F407上,會由于RAM和ROM容量的限制無法運行,因此,瑞典計算機科學院(SICS)開發了一個小型開源的TCP/IP協議棧,在保持了TCP/IP協議主要功能的基礎上減少了對RAM 的占用,它只需十幾KB的RAM和40 KB左右的ROM就可以運行,付曉軍[7]、張齊[8]等人也提出了LwIP協議棧的改進辦法,這使LwIP協議棧[9]更加適合在低端的嵌入式系統中使用。
在本系統中,主控芯片采用了ST公司的STM32F407芯片,其自帶以太網MAC模塊以及以太網庫,移植1.4.1版本的LwIP源碼過程如圖4所示。

圖4 LwIP移植框圖
LwIP協議棧的移植過程如下:
(1)通過硬件配置文件對該PHY芯片的工作狀態、速率等信息進行配置,使其工作在正常的數據收發模式下。
(2)驅動完成硬件設備加載,使 STM32主控模塊可以與PHY芯片正常通信,主要完成以下的工作:①Lan8720的初始化;②配置以太網DMA中斷優先級;③獲取當前連接速度和雙工狀態;④配置以太網MAC和DMA;⑤定義網卡收發數據包函數;⑥為收發數據緩存和描述符申請、釋放緩存等。
(3)加載LwIP源碼,并通過中間接口文件與驅動連接起來。中間文件完成了協議棧內部數據類型、CPU的大小端模式、MAC地址及源端IP地址等信息的定義,完成內存的申請和分配、內核初始化、默認網卡的設置,定義了lwip_pkt_handle()函數來中斷接收數據,定義了定時處理函數完成TCP、ARP等定時器的更新等。
(4)LwIP協議通過數據包結構體、網絡結構體與應用程序連接起來,數據包結構體pbuf[10]用來描述協議棧使用的數據包,網絡結構體netif[10]用來定義網絡接口的IP地址、子網掩碼、默認網關、收發數據報函數及接口狀態等信息。
3.3節點設備控制平臺軟件設計
節點設備控制平臺在與被控節點設備、物聯網平臺以及計算機交互處理中完成了網絡的初始化、與物聯網平臺服務器的TCP連接、HTTP數據包的解析、封裝及節點設備的控制等工作,節點設備控制平臺工作流程如圖5所示。

圖5 遠端設備控制平臺工作流程圖
該系統在物理接入網絡后:(1)完成網絡的初始化,包括使用DHCP協議分配IP地址、IP地址到物理地址映射,以及通過DNS協議解析物聯網平臺服務器的IP地址等;(2)與物聯網平臺服務器建立TCP連接后,以60 s為周期向物聯網平臺發出開關狀態請求數據包;(3)物聯網平臺返回開關狀態響應HTTP包后進行包解析工作,根據解析出來的結果發出設備控制命令完成被控節點設備的開關控制;(4)啟動30 s定時器,待定時到后檢測所有被控節點設備開關狀態,將檢測出的結果發送給物聯網平臺。
3.4物聯網平臺軟件設計
物聯網平臺響應來自用戶瀏覽器的控制請求及監控當前設備運行的開關狀態。工作時,(1)用戶通過瀏覽器登錄到物聯網平臺,平臺所在的服務器會返回開關控制及監控頁面,用戶通過打開或者關閉頁面上的開關按鈕,發出設備控制命令,命令寫入網站后臺文件中;(2)待節點設備控制平臺發出狀態請求命令后將文件中的命令通過網絡以HTTP包格式發送給節點設備控制平臺;(3)物聯網平臺實時監控遠端節點控制平臺發回的設備運行狀態信息,完成頁面中監控開關的狀態更新,以便用戶實時查看當前設備的運行情況。物聯網平臺工作流程如圖6所示。

圖6 物聯網平臺工作流程圖
系統測試時,通過串口助手觀察節點設備控制平臺收到的HTTP包來驗證節點設備是否能正確響應來自物聯網平臺的控制命令,同時通過觀察物聯網平臺上的監控開關來驗證是否能夠正確監控被控節點設備運行狀態。
首先用戶通過計算機瀏覽器登錄物聯網平臺,并將熱水器開關、洗衣機開關的開關控制按鈕設置為“開”狀態,如圖7所示。

圖7 物聯網平臺
此時通過串口助手獲取節點設備控制平臺收到的HTTP響應報文信息,如圖8所示。

圖8 遠端設備控制平臺
圖8顯示了節點設備收到的HTTP包,對包進行解析后提取出數據部分,其中{dev_1_1}、{dev_2_0}、{dev_3_1}、{dev_4_0}分別代表熱水器、客廳燈、洗衣機、空調接收的開關命令,其中每個命令最后一位代表開關狀態,如此時熱水器和洗衣機對應的命令{dev_1_1}、{dev_3_1}最后一位為“1”,代表為開,其中客廳燈、空調對應的{dev_2_0}、{dev_4_0}最后一位為“0”,代表為關,與圖7中所設定的開關狀態是一致的,驗證了此時節點設備控制平臺正確收到了來自物聯網平臺的控制命令,同時觀察圖7中各個設備的開關監控按鈕,對應的熱水器、洗衣機為“開”狀態,客廳燈、空調為“關”狀態,驗證了物聯網平臺能夠正確收到來自節點設備控制平臺發回的檢測信息,并能完成頁面的更新,以方便用戶實時了解當前設備運行情況。
通過以上測試完成了節點設備控制平臺與物聯網平臺服務器的通信測試,用戶無論何時何地登錄本系統中的物聯網平臺網站,都可以遠程控制節點設備的打開或關閉,簡單快捷,并能夠觀察節點設備的運行情況,及時排除設備故障隱患。
此遠程家居設備控制系統只需一臺帶有瀏覽器的手機或者PC,而不需要安裝復雜的服務器軟件,就可以實現遠端家居設備的控制,使用方便快捷,同時還能通過瀏覽器實時觀察家中設備的運行狀態,及時排查故障設備,保障設備的可靠運行。該系統在測試及應用中運行穩定,并可以根據用戶需求進行節點擴增,在智能家居、智能農業以及智能工業中都有很好的應用前景。
[1] 王丹丹, 宗振海, 陳慧珊,等. 基于STM32的智能溫室遠程控制系統的設計[J]. 浙江農業學報, 2014, 26(3): 791-796.
[2] 王暉, 周巧娣, 章雪挺,等. 基于LwIP的海洋數據采集與傳輸系統[J]. 電子技術應用, 2012, 38(8): 26-29.
[3] 梁鐵, 李凱, 王付強,等. 基于STM32和LwIP協議棧的Web網頁控制系統的設計與實現[J]. 測控技術, 2015, 34(9): 134-137.
[4] 杜一騰, 遲宗濤. 基于Arduino與yeelink平臺的實時環境監測系統[J]. 單片機與嵌入式系統應用, 2014(10): 26-29.
[5] SMSC. LAN8720A/LAN8720Ai Datasheet 1.2.LAN 8720A-CP[S]. 2011.
[6] ST.Stm32f407 Datasheet. stm32f407[S] . 2011.
[7] 付曉軍, 夏應清, 何軒. 嵌入式LwIP協議棧的內存管理[J]. 電子技術應用, 2006, 32(3):56-58.
[8] 張齊, 勞熾元. 輕量級協議棧LWIP的分析與改進[J]. 計算機工程與設計, 2010, 31(10): 2169-2171.
[9] DUNKELS A. Design and implementation of the LwIP TCP/IP stack[D]. Stockholm, Sweden: Swedish Institute of Computer Science,2001.
[10] 朱升林.歐陽駿.楊晶. 嵌入式網絡那些事:LwIP協議深度剖析與實戰演練[M]. 北京:中國水利水電出版社, 2012.
Design and implementation of remote home device control system based on Web
Wu Lei1, Zhang Zhengbing1, Hu Ronghua2
(1. Electronics and Information School, Yangtze University, Jingzhou 434023, China;2. School of Computer Science, Yangtze University, Jingzhou 434023, China)
In order to facilitate the remote control of home devices and improve equipment reliability, a remote home equipment control system based on Web was designed. This system allows users to control home devices from thousands of miles away only by logging on to the browser of the phone or PC. It includes the node equipment control platform and the Internet of things platform. The former which used MCU Stm32f407, PHY chip Lan8720 and LwIP protocol stack provides functions such as log in the network, control and state detection for node devices. The latter is based on Web technology to respond to the control commands from the user browser and monitor the running state of devices. The test results show that the system is stable and perfect in functions. It can meet the needs of home equipment control and will have broad application prospects.
STM32; LwIP; Lan8720; Web control
TP273
A
10.19358/j.issn.1674- 7720.2017.19.019
武磊,張正炳,胡蓉華.基于Web的家居設備遠程控制系統設計與實現[J].微型機與應用,2017,36(19):66-69.
2017-05-08)
武磊(1990-),男,碩士,助教,主要研究方向:物聯網、無線傳感器網絡安全。張正炳(1961-),男,博士,教授,主要研究方向:圖像與視頻編碼、數據壓縮、物聯網。胡蓉華(1985-),男,博士,講師,主要研究方向:物聯網、信息安全。