基于WiFi的照明控制系統(tǒng)設計與實現(xiàn)
引 言
隨著網(wǎng)絡技術、軟件技術、控制技術的發(fā)展,智能化應用技術得到了不斷進步。智能照明就是一種典型的智能化應用。隨著社會需求的不斷變化,傳統(tǒng)的照明控制方式由于需要使用者近距離操作照明設備開關,給使用者帶來諸多不便,因此已無法滿足人們?nèi)找嬖鲩L的需求。人們更希望通過現(xiàn)在廣泛應用的WiFi無線網(wǎng)絡,利用隨身攜帶的手機、平板電腦等移動終端來對家用電燈等照明設備進行開關操作。本文基于這項需求,設計了一款在 WiFi 環(huán)境下可使用智能手機等移動終端設備進行開關燈操作的照明控制系統(tǒng)。
1 系統(tǒng)總體設計
本系統(tǒng)的設計主要包含WiFi 局域網(wǎng)接入節(jié)點、WiFi 燈光控制節(jié)點和移動終端軟件設計。其中 WiFi 通信部分由ESP8266 模塊實現(xiàn)。ESP8266 采用樂鑫智能互聯(lián)平臺提供的ESP8266 無線WiFi 模塊,擁有高性能無線 SOC,使無線平臺的開發(fā)設計變得實用、方便。ESP8266 為系統(tǒng)提供了一個完整且自成體系的WiFi 網(wǎng)絡解決方案,能夠獨立運行、處理相關指令。作為控制系統(tǒng)的主要芯片,ESP8266 還具有透明傳輸功能,可通過無線網(wǎng)絡接收數(shù)據(jù),卻不修改數(shù)據(jù),直接傳送到下一端,使得接收方接到數(shù)據(jù)內(nèi)容和長度一致的數(shù)據(jù),在傳輸過程中保證了數(shù)據(jù)的準確性 [1]。ESP8266 模塊可配置成Station( 客戶端)、AP( 接入節(jié)點)、Station + AP 三種模式, 即ESP8266 模塊可作為一個設備(Client)連接區(qū)域網(wǎng)內(nèi)的路由,也可設置成一個路由(Sever),既作為局域網(wǎng)里的 Client 同時又是其他Client 的Sever。系統(tǒng)的總體工作過程如圖 1 所示。
(1) WiFi局域網(wǎng)接入節(jié)點。接入節(jié)點是控制信號進行傳輸?shù)妮d體,接入節(jié)點使各系統(tǒng)之間建立穩(wěn)定、良好的信道。本文將一個ESP8266模塊設置為AP工作模式,作為局域網(wǎng)的接入節(jié)點。
(2) WiFi燈光控制節(jié)點。該節(jié)點主要由ESP8266模塊構(gòu)成。本文將每一個控制燈的ESP8266模塊設置為Station工作模式,用以接受用戶的目標指令,并向所控燈傳輸開、關控制信號。
(3) 移動終端軟件?;?Eclipse軟件環(huán)境進行Android 應用軟件的開發(fā),該軟件在用戶使用過程中相當于照明燈的遙控器。
2 WiFi接入節(jié)點的實現(xiàn)
通過串口調(diào)試助手等軟件工具向ESP8266 模塊發(fā)送AT指令,將模塊設置為 AP 工作模式。具體分為如下幾步:
(1) 發(fā)送命令 AT+RST使模塊重新啟動,等待模塊響應 OK后,再進行下一步設置。
(2) 指令AT+CWMODE=<MODE>用 于 設置ESP8266模塊的工作模式,其中MODE=1表示Station模式; MODE=2 表示AP模式;MODE=3表示AP兼Station模式。此處,需要發(fā)送命令AT+CWMODE=2 將模塊設置為AP 模式。等待模塊響應OK 之后,再發(fā)送命令AT+RST 使得模塊重啟后設置生效。等待模塊再次響 應OK后,模塊的AP模式已經(jīng)開啟,然后進行下一步設置。
(3) 指 令 AT+CWSAP=<SSID>,<PWD>,<CHL>,<ECN> 用于設置AP 模式下的參數(shù),其中SSID 為字符串參數(shù), 用于表示接入點的名稱;PWD 為字符串參數(shù),用于表示密碼, 密碼限制在 64 字節(jié)以內(nèi);CHL 表示通道號,ECN 的取值及功能見表 1 所列。
發(fā)送命令 AT+CWSAP= LampControl,123456,11,0,待模塊響應 OK 后,就可在手機、平板電腦或計算機中通過無線網(wǎng)卡連接到接入節(jié)點,之后再進行下一步設置。
(4) 指令 AT+ CIPMUX=MODE用于啟動連接,其中, MODE=0 為單路連接模式;MODE=1為多路連接模式。指令AT+CIPSERVER=MODE,PORT用于設置服務器,其中MODE=0為關閉服務器模式;MODE=1為開啟服務器模式, PORT為端口號,缺省值為 333。只有在開啟多連接模式時才能開啟服務器模式。
發(fā)送命令 AT+CIPMUX=1 ,待模塊響應 OK后再發(fā)送命令 AT+CIPSERVER=1,8080 ,待模塊再次響應 OK 后就可通過網(wǎng)絡調(diào)試助手在 TCP Client 模式下添加 IP: 192.168.4.1(模塊默認 IP),端口 8080。至此,WiFi 接入節(jié)點已設置成功。
6 WiFi燈控節(jié)點的實現(xiàn)
通過串口調(diào)試助手等軟件工具,向ESP8266 模塊發(fā)送AT 指令,將模塊設置為 Station工作模式。
(1) 發(fā)送命令 AT+RST使得模塊重新啟動,待模塊響應 OK之后,進行下一步設置。
(2) 發(fā) 送 命令 AT+CWMODE=1, 將 模 塊設 置 為Station模式。待模塊響應 OK后,再發(fā)送命令 AT+RST 使得模塊重啟后設置生效。當模塊再次響應 OK,則模塊的Station模式已經(jīng)開啟,可發(fā)送命令 AT+CWLAP查看當前可用的網(wǎng)絡接入點。
(3) 指令 AT+CWJAP=<SSID>,<PWD> 用于加入網(wǎng)絡,其中SSID為要加入的網(wǎng)絡名稱,PWD為密碼。
發(fā)送命令AT+CWJAP=LampControl , 123456 連接到網(wǎng)絡中。待模塊響應OK后,發(fā)送命令AT+CIFSR 可查看本機的IP地址,若能查看到IP地址則表示本節(jié)點已經(jīng)正確和AP節(jié)點相連。
(4) 發(fā)送命令 AT+CIPMUX=1打開多路連接。
(5) 指令 AT+CIPSTART=<ID>,<TYPE>,<ADDR>,<PORT> 用于建立 TCP連接或注冊 UDP端口號,其中 ID 為 0~4的連接編號,TYPE為字符串參數(shù),設為 TCP時表示建立 TCP連接, 設為 UDP時表示建立UDP連接, ADDR為字符串參數(shù),表示遠程服務器的IP 地址,PORT為遠程服務器的端口號。
發(fā)送命令 AT+CIPSTART=0, TCP , 192.168.4.1 ,8080 建立燈控節(jié)點和接入節(jié)點之間的TCP 連接。待響應 OK后則表示連接成功。
(6) 指令 AT+CIPSEND=<ID>,<LENGTH> 用于向指定ID 發(fā)送指定長度的數(shù)據(jù)。模塊收到此命令后先換行返回> ,然后開始接收串口數(shù)據(jù),當數(shù)據(jù)長度滿足LENGTH 時發(fā)送數(shù)據(jù),如果數(shù)據(jù)發(fā)送成功則返回 SEND OK 。
發(fā)送命令 AT+CIPSEND=0,8 并發(fā)送數(shù)據(jù) 12345678給接入節(jié)點。
4 Android移動終端軟件設計
使用Android SDK、JDK、ADT、Eclipse 等工具開發(fā)手機客戶端控制軟件[2]。手機客戶端控制軟件的界面設計主要使用ToggleButton 控件或 RadioButton 控件以方便用戶對燈進行開關操作。為控件添加事件響應,當用戶操作軟件時,將開、關燈的信息發(fā)送給WiFi 接入節(jié)點 [3]。核心代碼如下:
Socket socket = new Socker("192.168.4.1",8080);
OutputStream os = socket.getOutputStream();
os.write("LampOn");
os.close(); socket.close();
5 系統(tǒng)測試
連通燈的控制電源,將燈控節(jié)點接入預定的WiFi 網(wǎng)絡, 將手機也接入同一WiFi 網(wǎng)絡,操作手機中的控制軟件,成功實現(xiàn)對燈的開、關操作。
6 結(jié) 語
本文設計了一種在 WiFi 環(huán)境下,可在裝有 Android 系統(tǒng)的移動終端上通過軟件操作,實現(xiàn)對燈的開關操作的無線照明控制系統(tǒng)。文中詳細介紹了系統(tǒng)設計思路、實現(xiàn)方法,并通過測試證明了系統(tǒng)的有效性。