張曉朋
(平頂山學(xué)院信息工程學(xué)院,河南 平頂山 467000)
?
虛擬儀器技術(shù)在智能家居監(jiān)控系統(tǒng)中的應(yīng)用與設(shè)計(jì)
張曉朋
(平頂山學(xué)院信息工程學(xué)院,河南 平頂山467000)
為了營造舒適、便捷、安全的家居環(huán)境,設(shè)計(jì)了一種基于Arduino與LabVIEW的智能家居監(jiān)控系統(tǒng)。系統(tǒng)選用Arduino Mega2560控制器作為下位機(jī),以PC機(jī)為上位機(jī)。系統(tǒng)能夠?qū)揖迎h(huán)境的燃?xì)鉂舛?、溫濕度和人體活動等數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控。當(dāng)監(jiān)控?cái)?shù)據(jù)超限時(shí),系統(tǒng)能夠自動控制家電設(shè)備的通斷,進(jìn)行聲光報(bào)警,實(shí)現(xiàn)安全防護(hù)。測試結(jié)果表明,該系統(tǒng)操作方便,適用于現(xiàn)代住宅小區(qū),具有一定的推廣和應(yīng)用價(jià)值。
智能家居監(jiān)控虛擬儀器LabVIEWArduinoTCP/IP燃?xì)鉂舛葓?bào)警溫濕度數(shù)據(jù)采集入侵檢測
Temperature and HumidityData acquisitionIntrusion detection
智能家居監(jiān)控系統(tǒng)是對家用電器、數(shù)據(jù)采集設(shè)備和安防設(shè)備進(jìn)行智能化監(jiān)控的系統(tǒng),它包括入侵報(bào)警、燃?xì)鈾z測、數(shù)據(jù)采集以及家電控制等功能模塊。其中,具有安防功能的燃?xì)鈾z測、入侵報(bào)警模塊為家庭提供了安全保障。數(shù)據(jù)采集模塊用于采集溫度、濕度等物理量,并將數(shù)據(jù)發(fā)送到控制模塊,以實(shí)現(xiàn)對空調(diào)、照明燈具和電動窗簾等設(shè)備的控制。該模塊可為用戶提供舒適、便捷、安全的家居環(huán)境[1]。
本文設(shè)計(jì)了基于TCP/IP網(wǎng)絡(luò)和數(shù)據(jù)采集模塊的智能家居監(jiān)控系統(tǒng),采用Arduino Mega2560控制器作為下位機(jī)、LabVIEW作為監(jiān)控軟件,兩者通過網(wǎng)絡(luò)實(shí)現(xiàn)通信。
系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
下位機(jī)以Arduino Mega2560控制器為核心,通過Ethernet擴(kuò)展板接收并判斷LabVIEW上位機(jī)發(fā)送的控制命令。其一方面控制氣體傳感器、溫濕度傳感器和熱釋電傳感器,分別采集室內(nèi)的燃?xì)鉂舛?、溫濕度和人體活動的數(shù)據(jù),并發(fā)送給上位機(jī);另一方面,根據(jù)上位機(jī)的命令,控制多路控制繼電器組的斷開與閉合,從而控制家用電器的關(guān)閉與工作。
上位機(jī)以LabVIEW工具為核心,通過相關(guān)命令控制下位機(jī)采集室內(nèi)的燃?xì)鉂舛?、溫濕度和人體活動的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行相關(guān)處理和顯示。當(dāng)數(shù)據(jù)超限時(shí),上位機(jī)報(bào)警,并向下位機(jī)發(fā)送相關(guān)命令,以控制相關(guān)電器的關(guān)閉與工作。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖Fig.1 Overall structure of the system
2.1傳感器的選擇
溫濕度傳感器采用DHT11溫濕度傳感模塊,是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器[2]。氣體傳感器采用MQ-2氣體傳感模塊,可以很靈敏地檢測到空氣中的煙霧以及甲烷氣體。熱釋電傳感器采用RD-623熱釋電紅外傳感模塊,其輸出為數(shù)字量,當(dāng)感應(yīng)到人體活動時(shí),輸出高電平,否則輸出低電平[3]。
2.2電器控制部分設(shè)計(jì)
家用電器的供電為交流220 V,Arduino Mega2560控制器的輸出電壓范圍為直流0~5 V,不能直接用于驅(qū)動家用電器。為了使該控制器能夠控制家用電器,需要使用繼電器[4]。
本設(shè)計(jì)采用Easy-Y公司型號為Relay-4-H-5V的繼電器組,它是一種4路繼電器模塊控制板,工作電壓為直流5 V,輸出驅(qū)動能力為交流250V-10A,可以用于控制大部分的家用電器[5]。
2.3Arduino部分設(shè)計(jì)
Arduino Mega2560控制器與各傳感器和控制器的硬件連接如下。
將DHT11溫濕度傳感器的VCC和GND分別連接至Arduino Mega2560控制器的+5 V和GND,由DHT11供電;DHT11的DQ引腳連接到Arduino Mega2560控制器的數(shù)字引腳D2,并連接一個(gè)上拉電阻[6]。
將MQ-2氣體傳感器的兩個(gè)H引腳通過加熱電源接口接至加熱電源的正負(fù)極;將A端連接至Arduino Mega2560控制器的+5 V,將B端接至Arduino Mega2560控制器的模擬輸入端A0。
將RD-623熱釋電紅外傳感器的VCC和GND分別連接至Arduino Mega2560控制器的+5 V和GND,向RD-623供電;將RD-623的DOUT引腳連接到Arduino Mega2560控制器的數(shù)字引腳D3[7]。
將Relay-4-H-5 V固態(tài)繼電器模組的輸入控制端分別接至Arduino Mega2560控制器的數(shù)字引腳D4、D5、D6、D7、GND;將Relay-4-H-5V固態(tài)繼電器模組的輸出控制端分別接至空調(diào)、風(fēng)扇、電動窗、電燈等家用電器[8]。
2.4網(wǎng)絡(luò)通信模塊的選擇
為實(shí)現(xiàn)Arduino控制板與LabVIEW的網(wǎng)絡(luò)通信,需要使用Ethernet擴(kuò)展板來設(shè)計(jì),并使用Arduino Ethernet類庫[9]。本設(shè)計(jì)采用集成了WIZnet W5100網(wǎng)絡(luò)芯片的擴(kuò)展板。
3.1Arduino程序設(shè)計(jì)
Arduino程序主要包括以下4個(gè)部分:
①導(dǎo)入第三方庫,然后調(diào)用此庫,并進(jìn)行一些必要的管腳定義和變量聲明;
②調(diào)用setup函數(shù),設(shè)置傳感器和繼電器端口模式,并初始化網(wǎng)絡(luò)通信;
③調(diào)用loop函數(shù),建立與上位機(jī)的網(wǎng)絡(luò)連接,循環(huán)接收上位機(jī)數(shù)據(jù),然后調(diào)用數(shù)據(jù)處理子函數(shù),判斷數(shù)據(jù)類型并執(zhí)行相應(yīng)的操作;
④定義數(shù)據(jù)處理子程序。
Arduino程序總體結(jié)構(gòu)流程如圖2所示。
圖2 Arduino程序流程圖Fig.2 Flowchart of Arduino program
3.2LabVIEW程序設(shè)計(jì)
LabVIEW上位機(jī)的工作流程為:當(dāng)前面板無操作接收超時(shí)1 s時(shí),依次向下位機(jī)Arduino控制板發(fā)送溫濕度、燃?xì)鉂舛取後岆妭鞲衅鞯淖x取命令;Arduino控制板通過W5100接收上位機(jī)的命令后,讀取所需的數(shù)據(jù),并通過W5100模塊上傳至上位機(jī);上位機(jī)對相關(guān)數(shù)據(jù)進(jìn)行顯示,如果相關(guān)數(shù)據(jù)超限,則立即向下位機(jī)Arduino控制板發(fā)送命令,以控制相關(guān)家電的關(guān)閉或工作,實(shí)現(xiàn)安防保護(hù)功能[10]。
3.2.1前面板設(shè)計(jì)
前面板由儀表盤、波形圖顯示、電器控制、入侵檢測和電源控制等部分組成。儀表盤部分用于顯示當(dāng)前的燃?xì)鉂舛?,并有超限?bào)警指示;波形圖顯示部分用于顯示溫濕度的變化趨勢;電器控制部分用于手動控制各路電器的工作狀態(tài);入侵檢測部分用防盜指示燈顯示熱釋電傳感器的狀態(tài);系統(tǒng)電源部分用于控制系統(tǒng)的運(yùn)行和停止。
3.2.2程序框圖設(shè)計(jì)
采用“事件結(jié)構(gòu)+超時(shí)結(jié)構(gòu)”來實(shí)現(xiàn)數(shù)據(jù)測量和電器控制,在測量中使用“條件結(jié)構(gòu)+枚舉”的狀態(tài)機(jī)來實(shí)現(xiàn)溫濕度、燃?xì)鉂舛群蜔後岆妭鞲衅鲾?shù)據(jù)的讀取,將測量程序劃分為3個(gè)狀態(tài):溫濕度檢測、燃?xì)鉂舛葯z測和入侵檢測[11]。
通信部分采用“幀頭+操作碼”的通信協(xié)議。0x55AA為幀頭。操作碼0x80為溫濕度采集,0x81為燃?xì)鉂舛炔杉?x82為熱釋電傳感器數(shù)據(jù)的采集;0x11為第一路繼電器閉合,0x10為第一路繼電器斷開;0x21為第二路繼電器閉合,0x20為第二路繼電器斷開;0x31為第三路繼電器閉合,0x30為第三路繼電器斷開;0x41為第四路繼電器閉合,0x40為第四路繼電器斷開。
在超時(shí)事件中,溫濕度檢測、燃?xì)鉂舛葯z測和入侵檢測分別對應(yīng)一個(gè)條件結(jié)構(gòu)的一個(gè)分支,根據(jù)狀態(tài)機(jī)的值依次執(zhí)行各分支程序。以燃?xì)鉂舛葯z測分支為例,上位機(jī)通過TCP/IP網(wǎng)絡(luò)先向下位機(jī)Arduino控制板發(fā)送控制命令0x55AA81,并延時(shí)1 s;然后通過TCP/IP網(wǎng)絡(luò)讀取并顯示燃?xì)鉂舛葦?shù)據(jù),同時(shí)對濃度數(shù)據(jù)進(jìn)行判斷,若濃度超限,則點(diǎn)亮濃度超限報(bào)警指示燈;置位電動窗開關(guān)和風(fēng)扇開關(guān),從而觸發(fā)相應(yīng)的事件,進(jìn)而打開電動窗和風(fēng)扇進(jìn)行安防保護(hù)。溫濕度檢測和入侵檢測分支的程序框圖和工作過程與此類似。
當(dāng)觸發(fā)該事件時(shí),上位機(jī)根據(jù)空調(diào)開關(guān)控件的狀態(tài),先通過TCP/IP網(wǎng)絡(luò)向下位機(jī)Arduino控制板發(fā)送控制命令0x55AA11或者0x55AA10,再通過下位機(jī)驅(qū)動相應(yīng)的繼電器,進(jìn)而控制空調(diào)的運(yùn)行與關(guān)閉。風(fēng)扇開關(guān)、電動窗開關(guān)和電燈開關(guān)事件的程序框圖和工作過程與此類似。
將程序燒寫到Arduino控制板后,用網(wǎng)線將W5100網(wǎng)絡(luò)模塊與計(jì)算機(jī)連接在同一個(gè)路由器的不同LAN端口,同時(shí)設(shè)置路由器,使Arduino控制板的網(wǎng)絡(luò)IP地址能夠被遠(yuǎn)程的LabVIEW上位機(jī)軟件偵聽到[12]。
測試證明,基于Arduino與LabVIEW的智能家居監(jiān)控系統(tǒng)運(yùn)行穩(wěn)定、可靠。系統(tǒng)采用W5100網(wǎng)絡(luò)模塊實(shí)現(xiàn)通信,采用溫濕度傳感器、氣體傳感器、熱釋電傳感器等采集感應(yīng)模塊來監(jiān)測家居環(huán)境,并能自動控制家電實(shí)現(xiàn)一定的安防保護(hù)功能,操作方便,適用于現(xiàn)代住宅小區(qū),具有一定的推廣、應(yīng)用價(jià)值。
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,將設(shè)備接入互聯(lián)網(wǎng)是大勢所趨。本文設(shè)計(jì)的智能家居監(jiān)控系統(tǒng)采用TCP/IP網(wǎng)絡(luò)協(xié)議作為Arduino控制板和LabVIEW上位機(jī)的通信方式,適用于互聯(lián)網(wǎng)和局域網(wǎng)的Arduino與LabVIEW結(jié)合的項(xiàng)目應(yīng)用,而且成本較低、使用范圍廣。
[1] 程海粟,徐珂珂.一種智能家居的設(shè)計(jì)方案[J].信息通信,2012 (7):76-78.
[2] 葉鋼.基于SHT11溫濕度測量儀的設(shè)計(jì)[J].國外電子測量技術(shù),2011,30(12):66-68
[3] 高航.基于Arduino的智能家居控制系統(tǒng)設(shè)計(jì)[J].科技創(chuàng)新與應(yīng)用,2015 (33):174-176.
[4] 蔡睿研.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(16):155-157.
[5] 錢聲強(qiáng).基于LabVIEW的智能家居監(jiān)控系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013 (24):85-88.
[6] 郭陽明.基于虛擬儀器的溫濕度測量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2008,25(5):302-305.
[7] 崔陽,張維華,白石峰.一種基于Arduino的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,10(1):23-26.
[8] 李德駿,馬孝輝.基于Arduino平臺的家用安防監(jiān)控系統(tǒng)設(shè)計(jì)[J].科技與生活,2011(1):114-115.
[9] 臧大進(jìn),劉增良.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].襄樊學(xué)院學(xué)報(bào), 2010,30(11):82-84.
[10]侯俊,吳成東.基于Zigbee的智能家居安全控制系統(tǒng)研究[J].機(jī)電工程學(xué)報(bào),2009,26(1):37-39.
[11]聶影,馮向軍,廖瑛.基于LabVIEW的狀態(tài)機(jī)模型研究[J].計(jì)算機(jī)測量與控制,2007,15(9):1166-1168.
[12]莫滿春.射頻路由算法的研究及智能家居無線控制系統(tǒng)的實(shí)現(xiàn)[D].廣州:中山大學(xué),2008.
Design and Application of Virtual Instrument Technology in Smart Home Monitoring and Control System
In order to create a comfortable,convenient and safe home environment,a kind of smart home monitoring and control system based on Arduino and LabVIEW is designed.The Arduino Mega2560 controller is chosen as lower machine,and PC is chosen as host computer.The system can monitor the home environment of gas concentration,temperature,humidity,and human activities,etc.,in real time.When the monitoring data transfinite,the system can automatically control ON/OFF of home appliances and issue audio/visual alarms for implementing safety protection.Results show that the system is easy to operate,suitable for modern household community,and has a certain applicable value.
Smart homeMonitoring and controlVirtual instrumentLabVIEWArduinoTCP/IPFuel gas concentrationAlarm
TH86;TP277
ADOI:10.16086/j.cnki.issn 1000-0380.201610023
修改稿收到日期:2016-03-04。
作者張曉朋(1978—),男,2006年畢業(yè)于鄭州大學(xué)物理電子學(xué)專業(yè),獲碩士學(xué)位,講師;主要從事電子、通信與自動控制方向的研究。