1 系統總體架構
系統包括網關系統、各種傳感器、服務器和手機終端,如圖1所示。網關系統由電源部分、STM32控制器、ZigBee模塊、GSM模塊、WiFi模塊、藍牙模塊以及網口構成。傳感器包括溫濕度傳感器、氣體傳感器、人體感應傳感器、繼電器模塊等。各傳感器分別通過ZigBee傳送數據到網關,網關通過WiFi以UDP協議上傳數據到服務器。手機終端既可以訪問服務器檢測各傳感器的狀態(tài)而且可以發(fā)送控制指令到達網關,再從網關通過ZigBee控制繼電器,從而實現遠程家電控制。
2 硬件原理設計
2.1 網關硬件原理設計
網關采用輸出為5 V的電源適配器供電,通過LM117電源芯片穩(wěn)壓到3.3 V給系統供電。主控制器芯片采用意法半導體公司的STM32F107芯片;ZigBee芯片采用TI公司的CC25 30,用于SMS和CPRS功能的模塊采用SIM900A;WiFi芯片采用TI的CC3200;藍牙芯片采用TI公司的BLE低功耗藍牙芯片CC2540;網口驅動芯片采用以太網控制芯片DP83848CVV;Zig Bee芯片、WiFi芯片和藍牙芯片都以模塊化的形式通過RS232串口和STM32主控器連接,SIM900模塊也通過RS232串口和STM32主控器連接,硬件框圖如圖2所示。
2.2 溫濕度子系統硬件原理設計
溫濕度子系統采用可充電鋰電池供電,通過TP4054充電芯片實現給鋰電池充電。鋰電池輸出3.7 V,通過TPS63031電源穩(wěn)壓芯片將電壓穩(wěn)到3.3 V,從而給系統供電。控制器芯片采用TI公司的CC2530,溫濕度傳感器采用SHT1x,測量的溫室度值傳送給控制器,然后顯示在OLED顯示屏并且通過ZigBee發(fā)送到網關。網關硬件框圖如圖3所示。
2.3 人體感應和氣體探測系統硬件原理
人體感應與氣體傳感器系統除了傳感器不同以外,其他部分都相同。系統采用可充電鋰電池供電,可通過TP4054充電芯片實現給鋰電池充電。鋰電池輸出3.7 V,通過TPS63031電源穩(wěn)壓芯片可將電壓穩(wěn)到3.3 V,從而給控制部分供電;通過CN5136升壓穩(wěn)壓芯片將電壓穩(wěn)定到5 V給傳感器模塊供電。人體感應傳感器采用HC—SR501人體感應模塊;氣體傳感器采用MQ-2氣體傳感器模塊,可檢測液化氣、丁烷、丙烷、甲烷、酒精、氫氣、煙霧等。各傳感器的狀態(tài)通過ZigBee發(fā)送到網關,硬件框圖如圖4所示。
2.4 家電控制子系統硬件設計
家電控制室通過控制繼電器的開關來實現,家電控制子系統采用可充電鋰電池供電,通過TP4054充電芯片實現給鋰電池充電。鋰電池輸出3.7 V,通過TPS63031電源穩(wěn)壓芯片可將電壓穩(wěn)定到3.3 V,從而給控制部分供電;通過CN5136升壓穩(wěn)壓芯片將電壓穩(wěn)定到5 V給繼電器模塊供電。CC2530單片機將本地按鍵控制和遠程控制繼電器的狀態(tài)傳送到網關;另外也接受網關發(fā)來的指令控制繼電器的開閉,硬件框圖如圖5所示。
3 系統軟件功能設計
系統中各傳感器子系統通過ZigBee把數據傳送到網關,網關通過WiFi傳送到服務器,當溫度超過設定值、室內有人或無人、氣體濃度超標或正常,家電打開與關閉時網關會通過SMS方式通知用戶。手機終端可訪問服務器查看各傳感器的值和狀態(tài),還可以通過SMS發(fā)送控制指令到達網關,然后網關通過ZigBee控制家電的開關。
3.1 網關子系統軟件設計
網關子系統實現兩個功能:一是ZigBee模塊接收各傳感器子系統的狀態(tài),通過串口發(fā)送到STM32處理器,處理器通過組幀、判斷,然后通過GPRS/WiFi上傳到服務器;二是接收手機終端的指令然后通過ZigBee下發(fā)到各傳感器。網關功能程序流程如圖6所示。
3.2 溫濕度子系統軟件設計
溫濕度子系統可以獲得環(huán)境溫濕度值,系統上電后,CC2530控制器每隔5 s獲得數字溫濕度傳感器SHT1采集到環(huán)境的溫濕度值,通過I2C發(fā)送到OLED顯示屏顯示,并且進行溫濕度組幀通過ZigBee把溫度和濕度值實時傳送到網關。網關判斷當兩次傳送的溫度值或濕度值有變化時,會把變化的溫濕度值組幀后上傳到服務器。當網關判斷溫度值超過40 ℃時會發(fā)送報警短信通知用戶。溫度和濕度值可精確到個位數,如溫度25℃,濕度56%。溫濕度子系統框圖如圖7所示。
3.3 人體感應和氣體探測系統軟件設計
人體感應和氣體探測子系統可以得到室內是否有人和室內氣體濃度狀況。MQ-2氣體傳感器模塊檢測到氣體濃度超標后會在輸出端輸出低電平,氣體濃度正常時會在輸出端輸出3.3 V高電平。當系統上電后控制器CC2530部分會每隔5 s檢測傳感器的輸出端,并會把傳感器的輸出通過ZigBee傳送到網關,網關判斷兩次傳送值不相同時,會把數據組幀后上傳到服務器并短信通知用戶氣體濃度超標或者正常。人體感應傳感器HC-SR501,人進入其感應范圍則輸出端輸出3.3 V高電平,人離開感應范圍則自動延時關閉3.3 V高電平,輸出端輸出低電平。系統上電后控制部分會每隔5 s檢測傳感器的輸出端,并把傳感器的輸出通過ZigBee傳送到網關,網關判斷兩次傳送到網關的值同時會把數據上傳到服務器,并短信通知用戶有人進入或人離開。子系統框圖如圖8所示。
3.4 家電控制子系統軟件設計
家電控制子系統可實現對室內燈和家電的開關控制。繼電器可外接燈和家電,對燈和家電的開關控制室通過控制繼電器的開關來實現??刂评^電器的開閉有兩種方式:一種是通過本地按鍵,當短按按鍵時CC2530輸出低電平,繼電器開關閉合;當長按按鍵時CC2530單片機輸出3.3 V電平時繼電器開關斷開;按鍵控制繼電器開關閉合和斷開時會通過ZigBee把繼電器的這兩種狀態(tài)傳送到網關,網關再通過WiFi傳送到服務器。另一種是手機軟件通過SMS發(fā)送開關指令到達網關,網關再通過ZigBee控制繼電器的開閉,從而實現遠程控制家電和燈的開關,通過遠程控制繼電器,繼電器打開和閉合后控制部分會把這兩種狀態(tài)傳送到網關,網關再通過WiFi傳送到服務器并通過短信告知用戶。子系統框圖如圖9所示。
3.5 手機監(jiān)控軟件設計
手機終端用于遠程監(jiān)測氣體濃度是否超標、屋里是否有人、室內溫濕度值和家電的開關狀態(tài)以及遠程控制家電的開關。監(jiān)控軟件主要包括注冊本機手機號碼到網關、通過刷新訪問服務器獲得各傳感器的最新狀態(tài)和遠程控制燈的開關,軟件框圖如圖10所示。
4 系統運行測試
系統以手機終端為用戶操作界面,可以實時遠程監(jiān)測溫濕度、家電狀態(tài)、室內是否有人和室內氣體濃度是否超標,還可以遠程控制家電開關,從而實現遠程家庭安防,遠程火災報警、遠程家電控制等家庭基本的家居控制功能。系統操作過程簡單,運行系統前需要進行設置,網關設置主要使WiFi能加入WiFi熱點從而接通互聯網,設置服務器的IP和端口號,使數據能上傳到服務器。手機終端設置主要是需要注冊用戶手機號碼,通過發(fā)送短信給網關使網關保存用戶的手機號碼,以便網關給用戶發(fā)送報警短信。
網關設置主要是對WiFi模塊的設置,WiFi模塊需要設置無線熱點的SSID和密碼、數據傳輸協議以及服務器的IP和端口號。
(1)打開串口調試助手,選擇波特率為115 200bit·s-1,數據位為8位,停止位為1位。在字符串輸入框輸入“+++”點擊發(fā)送,在看到數據接收框中收到“+OK”后表示設置成功,如圖11所示。
(2)關閉串口調試助手,打開UART—WIFI配置管理程序,點擊搜索,就會出現WiFi的設備ID,在右邊設置無線熱點名稱和數據傳輸協議以及服務器的IP和端口號如圖12所示,設置完成后點擊提交修改,出現參數修改完成的提示,WiFi模塊設置成功。
在網關設置完成后,給網關上電運行。然后手機安裝掌上樂居APP,打開應用程序,出現如圖13所示界面,點擊設置,在號碼輸入框輸入網關SIM卡的11位手機號碼點擊注冊新號碼,收到網關發(fā)回來的“號碼注冊成功”短信內容后,表明網關存儲用戶手機號碼成功。
當用戶手機號碼改變時,打開手機終端,輸入原有的網關手機號碼,點擊“清除所有號碼”,當收到網關發(fā)來的短信“號碼清除成功”,此時網關存儲的用戶原來的手機號碼就被擦出。接下來可重新向網關注冊新的手機號碼。
開啟在WiFi模塊里設置的無線熱點,給網關上電運行,WiFi會加入此熱點,然后開啟各傳感器子系統,傳感器子系統會加入網關ZigBee的網絡中。手機終端可以查看室內各傳感器的狀態(tài)并控制家電的開關。如圖14所示。
5 結束語
系統采用目前主流的ZigBee無線技術、移動通信技術、互聯網技術和嵌入式系統與接口技術。ZigBee無線技術具有近距離、低復雜度、自組網、低功耗、低數據速率、低成本的特點。系統采用ZigBee無線技術實現了各傳感器與網關的數據傳送。網關采用意法半導體生產的STM32F107單片機作為主控制器組成嵌入式控制系統,實現了數據的傳輸鏈路轉換和系統控制;采用WiFi/CPRS模塊實現了網關接入互聯網,從而把數據上傳到服務器中,實現了手機終端實時監(jiān)測與控制;采用SIM900A模塊把網關接入移動通信網絡中,實現短信報警功能。