安徽省(水利部淮河水利委員會)水利科學研究院 馬 順
2013年2月,工信部發布物聯網“十二五”發展規劃,把智能家居列入9個重點領域應用示范工程之中。數據顯示,我國2012年智能家居市場規模達600億元,預計2013年至2020年平均增長率將達到25%。而在智能家居市場中,智能家電領域的競爭尤為激烈。
智能家居是以住宅為平臺,利用綜合布線技術、通信技術及自動控制等技術實現家居設施的互聯,構建智能的住宅設施管理系統,從而實現安全舒適且環保節能的居住環境[1]。當前,智能家居技術主要從兩個方面發展,一方面是單一家具本身更具智能化,比如通過有針對性的APP軟件控制空調、冰箱、彩電等家具;另一方面通過物聯網技術,將家居鏈接在一起,開發綜合PC端或手機端軟件,手動實現對家具的綜合控制。從當前技術來看,都需要一個控制平臺[2],由人工通過控制平臺操作各種家具的使用,難以做到通過感知、分析、處理等全自動化、智能化過程實現對人居室內生活環境的綜合調控。因此,本文利用低功耗ZigBee模塊、WI-FI模塊、紅外學習模塊以及溫度傳感器等硬件設備再加上合法手機信號和家用空調,設計并實現一個全自動感知、分析、處理控制人居室內溫度系統。
該系統由ZigBee模塊與WI-FI模塊集成構成智能網關,ZigBee模塊與溫度傳感器集成構成溫度感知器、ZigBee模塊與紅外學習模塊構成溫度控制器。智能網關作為整個系統的控制中心,負責感知指定區域內是否存在合法手機用戶,如果存在合法手機用戶,則向溫度感知器下達溫度檢測指令,然后接收并分析來自溫度感知器傳來的實時溫度,最后根據分析結果決策是否向溫度控制器下達溫度控制命令。溫度感知器只負責感知環境溫度并將結果實時傳送給智能網關做分析處理。溫度控制器接收到智能網關調控溫度指令后,通過紅外學習模塊向空調發送紅外指令實現對空調的控制。
該系統的總體設計在第一節、軟硬件設計在第二、三節描述,第四節是實驗驗證。

圖1 系統結構圖
整個系統分為三大部分:智能網關,溫度感知器、溫度控制器,三部分基于Zigbee技術,通過IEEE 802.15.4通信協議實現相互鏈接,智能網關通過WI-FI探測手機信號的存在,溫度控制器通過集成在控制器上的紅外學習模塊發送紅外信號控制空調調節溫度。根據本系統特點,拓撲結構選擇星型網絡拓撲[3],系統結構圖見圖1。
如圖1所示,其中智能網關主要由ZigBee模塊、WI-FI模塊集成,負責探測指定范圍內是否存在合法手機,如存在,則對溫度感知器發送檢測溫度指令,并及時回傳來自溫度感知器的實時溫度,分析處理后決定是否向溫度控制器下達溫度調節指令。
溫度感知器主要由ZigBee模塊和DS18B20溫度傳感器組成,負責獲取周邊溫度數據并傳送給智能網關處理。
溫度控制器主要由ZigBee模塊和紅外模塊組成,負責接收網關調控溫度的指令,并發射紅外信號對空調進行控制。
智能網關是該系統的核心,主要由ZigBee模塊和WI-FI模塊構成。本設計采用以CC2530為核的ZigBee模塊,WI-FI模塊采用海凌科電子生產的低成本、高性能、嵌入式HLK-RMO4模塊。網關硬件結構圖如圖2所示。

圖2 智能網關硬件結構圖
CC2530是TI公司推出的基于IEEE 802.15.4協議的一個真正片上系統(SoC)解決方案,內置ZigBee協議棧[4],該芯片有三個不同的存儲器訪問總線,以單周期訪問SFR、DATA和主SRAM。CC2530包括許多諸如調試接口、I/O控制器、定時器、ADC等不同外設,使得設計者可開發更先進的應用。CC2530設備系列提供2.4 GHz 兼容增強的無線收發器[5]-[6],另外還提供了MCU和無線設備之間的一個接口,這使得可以發出命令、讀取狀態、自動操作和確定無線設備事件的順序。
HLK-RMO4模塊基于通用串行接口的、符合網絡標準的嵌入式模塊,內置TCP/IP協議,能夠實現用戶串口、以太網、無線網(WI-FI)3個接口之間的轉換。
溫度感知器由ZigBee模塊和DS18B20溫度傳感器組成,如圖3所示。基于CC2530芯片的ZigBee無線模塊,溫度傳感器采用美國DALLAS半導體公司的DS18B20無線溫度傳感器。DS18B20傳感器是一款智能數字溫度傳感器,具有優良的性能,與傳統的熱敏電阻相比,DS18B20傳感器能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9-12位的數字值讀數方式。同時,DS18B20傳感器可以在極短時間內讀出溫度數字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線[7]-[8]。

圖3 溫度感知器硬件結構圖
紅外控制器由ZigBee模塊和萬能學習型紅外模塊組成,如圖4所示。

圖4 溫度控制器結構圖
其中ZigBee模塊依然采用以CC2530為核心,學習型紅外發射模塊主要由MCU、紅外編解碼、紅外發射、學習指示燈、發射指示燈、串口通信組成,采用NEC紅外協議[9]控制家用空調相應部件。
整個系統主要包括智能網關、溫度感知器和溫度控制器三大部分,其軟件部分分別設計如下:
智能網關作為系統控制中心,它承載著探測指定區域內是否存在合法手機用戶,同時負責向溫度感知器、溫度控制器下達相應指令的任務,其功能實施步驟如下:
(1)由WI-FI模塊探測指定區域內是否存在合法手機用戶;
(2)如果指定區域內存在合法手機用戶,則轉3),否則轉1);
(3)由ZigBee模塊向溫度感知器下達檢測實時溫度指令;

圖5 智能網關控制程序流程圖
(4)等待回收來自溫度感知器回傳的實時溫度C;
(5)如果C大于調控上限sup,則向溫度控制器下達制冷指令及目標溫度C1,
如果C小于調控下限inf ,則向溫度控制器下達制熱指令及目標溫度C2;
(6)轉(1)。
其程序流程圖如圖5所示。
其中用于探測指定區域內是否存在合法手機用戶的定位系統,采用百度地圖Android定位SDK,它是為Android移動端應用提供的一套簡單易用的LBS定位服務接口,專注于為廣大開發者提供最好的綜合定位服務,通過使用百度定位SDK,開發者可以輕松為應用程序實現智能、精準、高效的定位功能[10]。該定位SDK采用WI-FI、基站、GPS混合定位(默認GPS定位),返回百度坐標,并能正確地顯示在百度坐標系的地圖上,其中WI-FI定位精度為27m,基站定位為240m,而GPS定位的精度最高可達10m。
本設計通過在自主開發的手機監控軟件中預先設置智能網關的經緯度,然后通過定位SDK,周期獲得自身經緯度,通過計算即可獲得二者之間的實時距離S。一旦手機進入WI-FI有效連接距離,即可將S值通過socket通信傳給智能網關進行判斷。本設計中設置的啟/閉距離a為15米,當智能網關接收到S小于等于15米時,啟動系統并進行相關動作;當S大于15米時,若規定時間內無連接請求,智能網關即刻關閉系統。
以下為實現距離S計算的核心代碼:

溫度感知器由ZigBee模塊(為區別起見,稱為Collect.ZigBee模塊)和溫度傳感器(型號為DS18B20)模塊集成,功能實施步驟如下:
(1)Collect.ZigBee模塊接收來自智能網關中Gateway.ZigBee模塊的溫度檢測指令;
(2)將溫度測試指令傳送給溫度傳感器;
(3)溫度傳感器接到測試指令后,感應環境溫度,獲得模擬溫度數據,并將其回傳給Collect.ZigBee模塊;
(4)Collect.ZigBee將模擬量溫度數據轉換為數字量溫度數據;
(5)Collect.ZigBee將實時的數字量溫度數據回傳給Gateway.ZigBee模塊。

圖6 溫度檢測模塊程序流程圖
其程序流程圖如圖6所示。
溫度控制器由ZigBee模塊(為區別起見,稱為Control.ZigBee模塊)和紅外學習模塊集成,步驟如下:
(1)Control.ZigBee接收來自智能網關Gateway.ZigBee模塊的調控溫度指令及目標溫度;
(2) 如果是制冷指令,則Control.ZigBee將制冷指令及目標溫度傳送給紅外學習模塊,進一步傳送給家用空調,啟動制冷模式,并設置目標溫度;
否則Control.ZigBee將制熱指令及目標溫度傳送給紅外學習模塊,進一步傳送給家用空調,啟動制熱模式,并設置目標溫度;
其程序流程圖如圖7所示。

圖7 溫度控制模塊程序流程圖
(1)ZigBee模塊及射頻天線各3個,DS18B20溫度傳感器1個,萬能學習型紅外模塊1個,WI-FI模塊1個;
(2)型號為KFR-50LW/K(50520L)A-N2格力藍精靈系列立式空調1臺,配套遙控器1個;
(3)小米1S手機,系統版本為Android 4.0.4;
(4)PC機1臺。
(1)64位Windows 7;
(2)IAR編譯器:IAR Embedded Workbench for 8051 8.10 Evaluation;
(3)ZigBee協議棧:ZStack-CC2530-2.5.1a(ZigBee 2007);
(4)電腦端軟件開發環境為Eclipse 4.2、JDK 1.8.0_25,手機端運行環境為:Android 4.2.2(API17)、ADT 23.0.2.1259578、Android定位SDK v5.1。

圖8 手機APP軟件界面截屏
在本系統通過開發手機端APP軟件實現相關全自動控制功能,界面截圖如圖8所示。
(1)進入APP軟件 “學習空調命令”界面,選中空調狀態“開”,此時紅外模塊指示燈長亮,在此過程中,按下被學習的格力遙控器的“開”鍵,看到燈閃爍5次,表示學習成功。重復以上過程,依次學習“關”、“制暖模式”、“制冷模式”、“除濕模式”、“通風模式”、“自動模式”、“溫度 +”、“溫度 -”等按鍵。
(2)所有按鍵學習完畢后,在智能網關代碼中設置調控下限溫度為13度、調控上限溫度為30度,目標溫度為25度,預設觸發/關閉系統的距離為15米,然后燒寫進智能網關。系統組建成功后,將空調設置為18度后關閉空調,打開手機監控軟件,在手機監控軟件中預先設置智能網關的經緯度,點擊APP軟件中“開始定位”。
(3)對系統整體性能進行驗證。標記距離智能網關15米的參考標志,然后在距離智能網關40米遠的地方,手持手機往15米處的參考標志點靠近,直到越過標志點進入測試環境。
測試結果:在距離網關約20米處,手機監控APP軟件中溫度數據開始跳動刷新為16度,進入測試環境后空調已開啟并被調節至25度;逆過程測試時,在距離測試環境約25米處,APP軟件中溫度數值消失,系統自動關閉空調,說明手機APP軟件與智能網關連通正常,且系統能準確進行溫度監測及對空調的相應控制。由于系統設計采用的百度地圖Android定位SDK提供GPS定位功能存在10米左右的誤差,實驗中誤差屬正常,但卻實現了自動提前開啟、延遲關閉監控系統的目的。另外,在測試環境內,依次點擊“開”、“制暖模式”、“制冷模式”、“除濕模式”、“通風模式”、“自動模式”、“溫度 +”、“溫度 -”、“關”等按鍵,空調都可實現正確響應,由此表明紅外學習指令準確。
實驗結果表明,該系統能準確學習空調遙控器紅外信號,Zig-Bee網絡組網迅速,結合開發的手機端APP軟件,在實現對家居溫度自動監測、空調自動控制的同時,又能通過手機端實現對空調的各種控制。本系統各性能指標達到前期設計要求,驗證了系統硬、軟件設計的合理性。
基于ZigBee技術,通過IEEE 802.15.4通信協議將WI-FI模塊、溫度傳感器、紅外學習模塊鏈接形成以智能網關為控制中心的無線通信網絡,WI-FI模塊負責與手機通訊,紅外模塊與家用空調通訊,通過相應軟件驅動各硬件實現對室內溫度全自動智能檢測與調控。與傳統溫度監控系統相比,本系統不僅脫離計算機控制也可以脫離手機客戶端控制,實現由手機WI-FI信號驅動系統,無需人工參與,從而對指定環境中溫度的檢測與控制。
[1]申斌,張桂青,汪明,等.基于物聯網的智能家居設計與實現[J].自動化與儀表,2013,28(2):452-456.
[2]袁曉平,馬滿福.基于ARM11的家電遠程控制系統[J].計算機應用與軟件,2013,30(10):288-292.
[3]張文梅.基于ZigBee的家居監控系統設計[J].計算機應用與軟件,2015,32(3):313-316.
[4]李鴻,王林珠,張文,等.RFID技術與ZigBee網絡融合的幼兒園安全管理系統[J].智能系統學報,2013,8(5):465-471.
[5]劉輝,趙麗芬,孫番典,等.基于CC2530的ZigBee射頻發射模塊設計[J].云南民族大學學報,2012,21(6):6-10.
[6]梅海彬,張明華,黃冬梅.基于無線傳感器網絡的實時近海環境監測系統設計[J].計算機應用與軟件,2015,32(1):110-113.
[7]湯鍇杰,栗燦,王迪,等.基于DS18B20的數字式溫度采集報警系統設計[J].傳感器與微系統,2014,33(3):99-102.
[8]李萍.基于DS18B20的多路溫度監測系統設計與仿真[J].現代電子技術,2013,36(10):122-124,127.
[9]陳子銘,汪紅.基于學習型紅外模塊的智能家居系統的設計與實現[J].鞍山師范學院學報,2012,14(2):65-70.
[10]關玉東.基于Android平臺的物探測量輔助軟件平臺研發[J].物探裝備,2015,25(5):326-328.