物聯(lián)網(wǎng)架構(gòu)下的智能火災(zāi)預(yù)警系統(tǒng)
2.2 傳感器單元設(shè)計
參考文獻(xiàn)對火災(zāi)產(chǎn)生的原因、火災(zāi)預(yù)警原理及火災(zāi)信號選取做了詳細(xì)的分析?;诖耍鶕?jù)火災(zāi)發(fā)生的前期特征,系統(tǒng)分別選取了溫度、濕度、煙霧和CO濃度作為火災(zāi)監(jiān)測對象。各傳感節(jié)點采用多傳感器技術(shù),分別連接了DHT21溫濕度傳感器、MQ2煙霧傳感器和MQ7一氧化碳傳感器。DHT21是含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器,采用單排4針引腳封裝。使用時,只需將DATA引腳連接到MCU的任意GPIO即可,這里是連接到CC2530的P1 5引腳。另外,為了確保CC2530對DHT21有足夠的驅(qū)動能力,在DHT21 DATA引腳接有5.1 kΩ的上拉電阻,確保芯片有合適的灌電流。這樣,只要按照DHT21的邏輯時序編寫程序,控制MCU引腳的輸入/輸出,就可以從DATA引腳準(zhǔn)確讀出溫濕度數(shù)據(jù)。
MQ2和MQ7傳感器都屬于氣敏型傳感器,兩者的原理相似,都屬于MQ傳感器。MQ傳感器所采用的氣敏材料是在清潔空氣中電導(dǎo)率極低的SnO2,當(dāng)將它放置于某種敏感氣體環(huán)境中時,電導(dǎo)率將隨該種敏感氣體濃度的增大而增大。因此,在驅(qū)動MQ傳感器時,只需根據(jù)傳感器特性搭建合理的驅(qū)動電路即可。MQ傳感器的輸出均為模擬量,故應(yīng)交由MCU進(jìn)行A/D轉(zhuǎn)換。CC2530的P0口是其內(nèi)部ADC的8通道輸入端口,故將MQ2和MQ7的輸出端分別連接至P0_0引腳和P0_1引腳。MQ傳感器有6只針狀引腳,如圖2所示。2引腳和5引腳用于提供加熱電流,供電電壓為5 V,其余引腳用于信號取出。通過電路分析可知,4引腳和6引腳的輸出電壓為。Rs為敏感體電阻,阻值一般為2~20 kΩ。當(dāng)空氣中的敏感氣體濃度增加時,電導(dǎo)率增加,Rs下降,故輸出電壓Uout增大。電位器RL除了起到限流作用外,最主要的作用就是實現(xiàn)對WSN節(jié)點靈敏度的調(diào)節(jié)和校準(zhǔn)。由于MQ傳感器內(nèi)部的氣敏元件在不同環(huán)境下對不同種類、不同濃度的氣體有著不同的阻值Rs,因此為精確考慮,在溫、濕度變化較大的環(huán)境中,需要對節(jié)點的靈敏度進(jìn)行調(diào)節(jié),這也是系統(tǒng)增加濕度測量的一個主要原因。
3 系統(tǒng)軟件設(shè)計
3.1 ZigBee—WSN軟件設(shè)計
底層的數(shù)據(jù)采集網(wǎng)絡(luò)采用ZigBee2007協(xié)議規(guī)范設(shè)計,基于TI公司提供的半開源Z-Stack協(xié)議棧開發(fā)。系統(tǒng)的整體流程如圖3所示。本文引用地址:http://m.butianyuan.cn/article/159419.htm
3.2 系統(tǒng)GUI設(shè)計
由于要求控制管理中心PC提供良好的人機交互環(huán)境,故采用圖形用戶界面(Graphical User Interface ,GUI)設(shè)計。采用GUI設(shè)計的優(yōu)勢就在于它提供的界面具有友好性,可以幫助減少用戶的認(rèn)知負(fù)擔(dān),滿足不同用戶的設(shè)計需求。當(dāng)前較為流行的GUI設(shè)計技術(shù)包括MiniGUI、OpenGUI、Microwindows/Nano—X、Qt等,另外,采用VC++、VB等也可以完成GUI的開發(fā)。但是,這些軟件在API的封裝性、跨平臺性、代碼量、設(shè)計難度和開發(fā)周期上都存在很大差異,擁有各自的優(yōu)點和缺點。因此,綜合考慮各種因素,這里采用Qt技術(shù)設(shè)計系統(tǒng)的GUI。設(shè)計是基于Qt 4.7 SDK完成的,該軟件版本集成了Qt 4.7.4和Qt Creater 2.4.1集成開發(fā)環(huán)境(IDE)。
設(shè)計時,首先在main.cpp文件中創(chuàng)建QApplication類對象。QApplication類主要用于設(shè)置和管理GUI應(yīng)用程序及其控制流,包括控制主事件的循環(huán)、初始化和結(jié)束來自用戶接口或其他系統(tǒng)資源的應(yīng)用程序、提供會話管理等。然后就可以根據(jù)系統(tǒng)需要添加實際應(yīng)用,這里設(shè)計了一個系統(tǒng)登錄窗口和一個控制管理窗口,分別命名為logindlg.cpp和firesystem.cpp。添加完成后,將自動生成相應(yīng)的頭文件(logind lg.h、firesystem.h)和界面文件(logindlg.ui、firesystem.ui)。
控制管理中心PC要接收網(wǎng)絡(luò)管理節(jié)點發(fā)送的環(huán)境監(jiān)測數(shù)據(jù),因此實現(xiàn)串口通信是進(jìn)行GUI設(shè)計的關(guān)鍵。Qt本身并沒有提供串口控制類,故需要采用第三方編寫的qextserialport類。qextsetialport類實際上是QIODevice的派生類,使用時,需要為工程添加相應(yīng)的類文件qextseri albase.cpp、qextserialbase.h以及win_qextserialport.cpp、win_qextserialport.h。設(shè)計控制管理窗口時,為了保證系統(tǒng)配置的靈活性,在UI設(shè)計窗口中分別添加“端口號”、“波特率”、“數(shù)據(jù)位”、“校驗位”、“停止位”5個Combo BOX下拉列表。然后通過按鍵Push Button進(jìn)行系統(tǒng)的開啟和關(guān)閉設(shè)計。Push Button的觸發(fā)采用的是Qt提供的信號與槽機制,所有從QObject類及其子類派生的類都可以使用該機制。信號與槽機制是Qt的核心機制,它為用戶提供了一種高級接口,該接口可用于各類應(yīng)用對象之間的通信。這里僅給出實現(xiàn)串口通信的幾個重要函數(shù)。
物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么
評論