基于WiFi和移動終端的智能照明控制系統(tǒng)設(shè)計
引 言
獨立的照明控制已經(jīng)發(fā)展成熟,但很多時候使用者無法準(zhǔn)確根據(jù)情況設(shè)置控制參數(shù)。如果照明系統(tǒng)的使用環(huán)境情況多變,僅僅靠非專業(yè)的使用者來調(diào)節(jié)控制,則無法達(dá)到最佳的使用效果。而且任何控制都要在現(xiàn)場進行,非常不方便。在物聯(lián)網(wǎng)環(huán)境下,使用者可以利用遠(yuǎn)程移動和通信設(shè)備通過互聯(lián)網(wǎng)對室內(nèi)照明設(shè)施進行監(jiān)控和控制,通過傳感器及微處理控制系統(tǒng),使物聯(lián)網(wǎng)的照明系統(tǒng)能夠 感知 環(huán)境,并根據(jù)外界情況的變化做出相應(yīng)調(diào)整,為用戶提供方便高效的服務(wù)。
本文以設(shè)計智能照明系統(tǒng)為目標(biāo),結(jié)合時下最流行的物聯(lián)網(wǎng)開發(fā)思路,將燈光的操控不局限于本地,設(shè)計了一個單片機控制系統(tǒng)、Web 服務(wù)器、Android 客戶端三位一體的智能照明控制系統(tǒng)。采用C 語言和Java 語言分別編寫單片機應(yīng)用程序、App 程序和服務(wù)器端程序,通過安卓移動設(shè)備達(dá)到遠(yuǎn)程控制室內(nèi)LED 燈的開關(guān)、亮度以及智能調(diào)光等目的。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)架構(gòu)設(shè)計
該系統(tǒng)是一個可遠(yuǎn)程遙控室內(nèi)燈光智能動作的控制系統(tǒng),主要包含了控制系統(tǒng)和通信系統(tǒng)兩大部分。通信系統(tǒng)采用WiFi 模塊與服務(wù)器建立TCP 鏈接后,通過HTTP 協(xié)議來完成單片機和服務(wù)器的信息交互。安卓客戶端也通過HTTP 協(xié)議和服務(wù)器進行信息交互,通過服務(wù)器將安卓客戶端的請求間接轉(zhuǎn)向單片機,單片機再將獲得的數(shù)據(jù)解析后生成相應(yīng)的指令進行動作。
路由器建立一個WiFi 熱點, 單片機端的WiFi 模塊以STATION 模式接入該熱點,Tomcat 服務(wù)器搭在本機電腦也接入該熱點。為了保證通信安全,網(wǎng)絡(luò)采用WPA2 加密方式。
當(dāng)路由器通過家庭寬帶連接上Internet,并在云端發(fā)布服務(wù)器程序后,手機客戶端可以直接通過本機的GPRS 網(wǎng)絡(luò)訪問單片機客戶端,不需要連接局域網(wǎng)的WiFi 熱點。本系統(tǒng)的設(shè)計總架構(gòu)圖如圖 1 所示。
圖 1 室內(nèi)LED 智能照明系統(tǒng)總體架構(gòu)圖
1.2 系統(tǒng)總體設(shè)計
系統(tǒng)以 ARM 單片機 STM32F103ZET6 作為本系統(tǒng)的主控芯片,單片機通過串口 WiFi 接收到了服務(wù)器的響應(yīng)信息后, 通過內(nèi)置DMA 轉(zhuǎn)存到內(nèi)存當(dāng)中,CPU 再將內(nèi)存中的數(shù)據(jù)取出并解析為對應(yīng)的控制指令和數(shù)據(jù)信息,將手機傳遞過來的數(shù)據(jù)和單片機讀取到的本地實時時間數(shù)據(jù)都顯示到OLED 屏上,單片機通過判斷動作指令來決定是否開燈關(guān)燈以及調(diào)光。當(dāng)檢測到有開啟智能模式的指令后,則啟動光照傳感器,讀取當(dāng)前的照度信息,根據(jù)照度信息控制PWM 調(diào)光驅(qū)動輸出當(dāng)前所需要的室內(nèi)燈光亮度。紅外檢測電路則通過一個S8050 三極管構(gòu)成放大電路將紅外模塊的輸出信號進行放大后輸出到繼電器模塊,通過繼電器模塊的吸合與斷開來控制當(dāng)前燈光的亮滅。本系統(tǒng)由STM32 單片機模塊、DS1302 實時時鐘模塊、OLED12864 液晶顯示模塊、BH1750FVI 數(shù)字光照傳感器模塊、HC-SR501 人體紅外模塊、PWM 調(diào)光驅(qū)動模塊和ESP8266WIFI 模塊組成。系統(tǒng)總設(shè)計框圖如圖 2 所示。
2 系統(tǒng)軟件設(shè)計
本系統(tǒng)軟件方面的設(shè)計主要為單片機主控端的程序設(shè)計、服務(wù)器端的程序設(shè)計和Android 手機應(yīng)用程序設(shè)計。為了使單片機、服務(wù)器、Android 客戶端的數(shù)據(jù)通信一致,采用自定義通信的協(xié)議,該數(shù)據(jù)幀一共由14 位數(shù)字字符組成,其通信格式如圖 3 所示。
bit0/bit2:燈 1/2的開或關(guān), 0代表關(guān), 1代表開;
bit1/bit3:燈1/2 的調(diào)光值,范圍為09,對應(yīng)單片機的PWM值為該數(shù)值比例系數(shù);
bit4-bit7/bit8-bit11:表示燈光開啟 /關(guān)閉的時間(小時:分鐘);
bit12/bit13:表示智能模式 /定時模式的開或關(guān), 0代表關(guān), 1 代表開。
2.1 單片機程序設(shè)計
單片機先初始化各模塊,然后以 500 ms 間隔發(fā)送HTTP 請求,將服務(wù)器響應(yīng)的數(shù)據(jù)經(jīng)WiFi 串口接收,再通過DMA 轉(zhuǎn)存到內(nèi)存中。單片機通過讀取對應(yīng)位置的內(nèi)存數(shù)據(jù)即可解析到相應(yīng)模塊的控制指令,進入不同的設(shè)置狀態(tài)。單片機主 程序流程如圖 4 所示。
2.2 服務(wù)器程序設(shè)計
本設(shè)計的服務(wù)器程序中主要包括了兩個 Servlet,分別 為 ControlServlet 和 ProviderServlet。ControlServlet 服 務(wù) 程 序用來接收 Android 客戶端的 HTTP 請求,ProviderServlet 服務(wù)程序用來接收單片機的 HTTP 請求。服務(wù)器響應(yīng)過程 圖如圖 5 所示。首先當(dāng)單片機和 Android 客戶端與服務(wù)器建 立 TCP 連接后,會發(fā)送 HTTP 請求到服務(wù)器,二者請求的 URL 地址以及參數(shù)都不一樣。服務(wù)器一直處于等待狀態(tài),當(dāng) ControlServlet 接收到來自 Android 客戶端的 GET 請求后,服 務(wù)器會通過 ControlServlet 來讀取 GET 參數(shù),然后將參數(shù) 存放到 ServletContext 域中,當(dāng)單片機同樣發(fā)出 GET 請求到 ProviderServlet 后,服務(wù)器則會將 ServletContext 域中的數(shù)據(jù) 作為響應(yīng)參數(shù)發(fā)回給單片機。

2.3 Android 程序設(shè)計
本文設(shè)計的 Android 客戶端主要采用 Activity 組件。通 過自定義協(xié)議將用戶設(shè)置的參數(shù)信息封裝成字符串?dāng)?shù)據(jù),最終 將其拼接在 URL 地址后,形式如 :192.168.1.100:8080/demo/ Control Provider?controlMessage=“11111111111111”, 具 體 程 序流程如圖 6 所示。
啟動了App 后,會進入動畫界面,同時會對用戶的控制界面進行布局加載,加載完成后就會出現(xiàn)各種控件,并且為控件都設(shè)置了監(jiān)聽事件,當(dāng)用戶點擊了相應(yīng)的控件后,便會觸發(fā)一次事件,在該事件中,將會完成對控制指令的封裝,封裝完成后作為URL 參數(shù)以GET 的方式發(fā)送HTTP 請求給服務(wù)器。
3 系統(tǒng)測試
根據(jù) App 的設(shè)置,可以在 OLED 屏幕上同步看到設(shè)置的 信息數(shù)據(jù),說明安卓 App 已經(jīng)成功控制了照明系統(tǒng)。這里設(shè) 置了開啟的時間為 15:37,關(guān)閉的時間為 16:22,等待觀察,系 統(tǒng)確實在設(shè)定時間將 LED 燈開啟與關(guān)閉,其實物圖與界面圖 如圖 7 所示。開啟智能模式后,模型里 LED 的燈光亮度會隨 著當(dāng)前室外的燈光變化而變化,當(dāng)室外燈光較亮?xí)r,室內(nèi)燈光 的亮度則會階梯降低,節(jié)約電能,其實物演示圖如圖 8 所示。
結(jié) 語
本文完成了一個可遠(yuǎn)程遙控室內(nèi)燈光智能動作的控制系統(tǒng),包括完整的硬件和軟件系統(tǒng)。硬件系統(tǒng)是基于一個一房一廳的燈光控制模型,有兩套單片機客戶控制終端;軟件系統(tǒng)則實現(xiàn)了各類數(shù)據(jù)通信和控制功能,主要包括:
(1) 單片機主控端的控制軟件 ;
(2) 服務(wù)器端的控制軟件;
(3) Android手機應(yīng)用軟件等。
通過實物演示和檢測,該作品完成了初設(shè)的各項功能指標(biāo),使用方便,為生活提供了便利,改善了環(huán)境質(zhì)量,有待進一步研發(fā)和推廣。