殷華英
(承德石油高等專科學校 計算機與信息工程系,河北 承德 067000)
在智能家居環境中,無線開關是最常用也是必不可少的一種接入設備,通過它,用戶可以控制和監控無線智能家居環境中不同電器的狀態,如空調的開關、窗簾的開合、電燈的開閉等[1-2]。相比傳統開關,無線開關操作更靈活、更方便、更安全,可以通過智能手持設備、手機等,進行遠程控制。如在回家前,提前打開空調,營造一個舒適的環境,或者因為出門,忘了關閉電器電源,可以方便通過手機上的APP,進行遠程關閉以節約能源。
在無線開關中,一個關鍵部件是串口WiFi模塊,通過它實現串口數據到無線數據的轉換[3]。串口WiFi模塊基于通用程序接口特性,符合IEEE802.11 協議棧網絡標準,內置TCP/IP協議棧,能夠實現用戶串口、WiFi無線網和互聯網3個接口之間的任意透明轉換,使傳統串口設備更好的加入無線網絡。現在家用無線開關中,大多采用基于WiFi的數據傳輸方式,利用無線路由器作為中控中心,配合適配無線開關的手機APP應用,根據操作說明,配置設備開關,或針對不同應用場景進行設置,從而實現手機遠程控制。無線WiFi電源開關基本工作原理如圖1所示。
在圖1中,一個服務器記錄各個開關的狀態,并通過網絡發送相關控制指令。無線開關通過WiFi連接路由器接入網絡,與服務器進行數據通信。手機終端可以通過數據網絡或WiFi的方式,與服務器或與路由器相連。在外網斷開時,手機、路由器和無線開關形成局域網,路由器作為數據轉發部件,會將手機終端發送的指令完成數據的轉發,數據信號經過無線路由器轉發,從而實現局域網無線控制。外網連接時,相關設備形成一個廣域網,無線路由器作為中控中心,無線開關中WiFi模塊mac地址會被事先寫入服務器。手機通過程序連接服務器,操作開關,發送指令,這些指令再由服務器傳給無線路由進行轉發,從而完成對開關的控制。

無線電源開關在第一次使用時,手機APP和其相連,完成一些初始化設置。如開關名稱、分組、設置路由器IP地址以及模式設置等,這些信息將在其與服務器相連后傳至服務器進行保存。
WiFi無線開關工作模式一般有兩種,一種是AP模式,在該模式下,無線開關本身為一個連接熱點,等待其它設備連接,手機等智能終端直接與其相連,對其進行控制。但這種模式下,手機和無線開關的連接受距離限制比較大,而且在設備切換時比較麻煩。第二種是STA模式,這種模式下,手機和無線開關由無線路由器進行相連,或者手機通過4G、5G網絡與服務器相連,指令會由路由器進行轉發。也可以無線開關以定時方式發送報送指令,以獲取執行指令。這種模式下,能充分發揮手機APP的作用,實現對無線開關的遠程控制與管理。
筆者在與某公司合作期間,該公司針對目前市場的需求,擬開發出一款WiFi無線開關產品,本人也參與到該產品的研發過程。經過一段時間研制,其產品初步成型,產品背面和正面如圖2所示。

在圖2的右圖中,提供了一個復位按鈕,長按恢復出廠設置,短按進行AP和STA模式切換。同時在面板上設置了觸控按鍵,在網絡斷開時可以像傳統開關一樣進行手動控制。本開關提供兩種工作模式:AP模式和STA模式。AP模式是默認模式,在AP模式下,手機可以直接與其相連,然后發送設置指令進行設置,并可通過發送模式切換指令轉換到STA模式。在STA模式下,手機和開關通過路由器和服務器相連,手機APP向云服務器發出指令,命令執行時,開關定時向云服務器發出報送指令,云服務器返回需要執行的指令集合,開關逐條順序執行,不再做回復。在開關面板上,設置紅綠兩個指示燈, 靜態指示指明當前工作模式,如紅燈亮表示AP模式,綠燈亮表示STA模式。閃爍指示標識工作狀態如WiFi連接不上、云服務器不能連接等。
在整個開關系統使用過程中,無線開關或手機APP發出的每條指令,都會得到一條回復指令。對于這兩種格式,其指令格式如下:
1)發送指令基本格式
S,命令編碼,
參數說明:s為指令第一個標識,各參數之間用逗號分隔,命令編碼為指令標識,由一個字母和數字構成,占定長2個字節。
2)回復指令基本格式
執行指令發送出去后,需要返回指令的執行結果,系統可以根據回復指令中信息進行相應的處理,其格式如下:
S,<原命令>, <原xh>,
參數說明:
根據具體功能,無線開關包括以下四種指令。
3.2.1 報送指令
報送指令是無線開關用來向云服務器定時循環報送狀態,開關從云端獲取給自己的指令同時上傳狀態。這是為了減輕服務器輪詢的負擔,采用了從開關發送指令的方法。命令格式:
S,A0,
參數說明:
回復指令:為一個指令集,包括下文提到的設置指令和控制指令, 多個指令之間用 分開,最后以空指令結束。空指令格式如下:
S,A0,
如果沒有需要執行的指令,僅回復空指令。
3.2.2 設置指令
1)設置路由WiFi參數:這是在AP模式下,手機向無線開關發送的指令,命令格式:
S,C1,
參數說明:C1為該指令的標識,
回復指令格式:S,C1,
由于本指令與WiFi模式關聯,不需要馬上生效,在切換到STA模式或重新加電時生效。
2)設置云服務器參數:用來設置服務器的相關信息。命令格式:
S,C2,
參數說明:
回復指令格式:S,C2,
3)設置報送指令時間間隔,命令格式:
S,C3,
參數說明:
回復指令格式:S,C3,
4)設置WiFi工作模式:設置無線開關在AP和STA模式進行切換。命令格式:
S,C4,
參數說明:
回復指令格式:S,C4,
5)設置新的AP密碼,設置無線開關在AP模式下的新密碼。命令格式:
S,C5,
參數說明:
回復指令格式:S,C5,
3.2.3 查詢指令
1)查詢當前參數,該指令執行后將返回動態記憶的主要參數,但不含密碼,命令格式:
S,B0,
回復指令格式:S,B0,
2)查詢繼電器狀態,命令格式:
S,B3,
回復指令格式:S,B3,
3.2.4 控制指令
1)單繼電器控制,設置某一個指定的繼電器狀態,命令格式:
S,A1,
參數說明:
回復指令格式:S,A1,
2)多繼電器控制,設置某多個指定的繼電器狀態,命令格式:
S,A3,
參數說明:
回復指令格式:S,A3,
針對無線開關的兩種連接模式,指令測試也分兩種情形,在AP模式下,計算機先通過WiFi連接到無線開關,進行模擬測試,打開“tcp調試助手”這一款軟件,該軟件是一款網絡調試工具,功能非常強大,支持TCP Server、TCP Client、UDP等通信模式,可以幫助網絡應用設計、開發、測試人員檢查所開發的網絡應用軟硬件的數據收發狀況,提高開發的速度。無線開關默認ip地址為192.168.5.1,端口為8000。通過該軟件連接成功后,發送相關指令進行測試。測試過程中,未發現指令出現異常情況。在STA模式下,先開發出一個包含服務器和手機APP的測試系統。通過手機APP,執行功能,完成指令的發送。在系統運行過程中,所有指令均得到了正常執行,和設計的結果完成一致。