范明民
(北海職業(yè)學(xué)院,廣西 北海 536000)
高校實(shí)訓(xùn)室有眾多昂貴的電子設(shè)備,而這些電子設(shè)備對(duì)放置環(huán)境要求極其苛刻,否則會(huì)損害其精度,造成不可逆轉(zhuǎn)的危害。如果按照以往效率低下的人工巡視方式,需要消耗巨大的時(shí)間和精力,測量數(shù)據(jù)不一定精確。智能環(huán)境控制工程是我國邁向控制現(xiàn)代化的重要組成節(jié)點(diǎn),對(duì)我國溫室控制發(fā)展有重要意義,是我國科技人員研究的重要方向[1]。為進(jìn)一步提高校園實(shí)訓(xùn)室環(huán)境設(shè)備使用壽命,提高管理效率,對(duì)實(shí)訓(xùn)室環(huán)境24 h 全方位實(shí)時(shí)、高效、可靠監(jiān)測和控制,對(duì)于增加經(jīng)濟(jì)效益和社會(huì)效益刻不容緩[2]。所以,監(jiān)控工作穩(wěn)定可靠、操作簡單的無線實(shí)時(shí)監(jiān)測環(huán)境溫濕度檢測系統(tǒng)對(duì)維護(hù)機(jī)房環(huán)境有重要的現(xiàn)實(shí)意義。
系統(tǒng)采用模塊化設(shè)計(jì),主要由STM32 主控板、ZigBee無線傳輸模塊、溫濕度采集模塊、直流電機(jī)模塊、電源模塊和報(bào)警模塊組成。
本系統(tǒng)以STM32F103ZET6 處理器為核心,由主控制器和從控制器2 塊ARM 芯片分別處理不同的任務(wù)。從控制器主要功能是負(fù)責(zé)接收處理傳感器的溫濕度參數(shù),通過控制顯示電路實(shí)時(shí)顯示溫度和濕度參數(shù)。當(dāng)測量出的參數(shù)超過或者低于預(yù)定值,觸發(fā)蜂鳴器報(bào)警和二極管閃爍進(jìn)行提示,輸出一個(gè)不間斷的驅(qū)動(dòng)信號(hào),控制電機(jī)進(jìn)行散熱和降溫,通過ZigBee 模塊將警報(bào)傳達(dá)至監(jiān)控中心提醒管理員及時(shí)處理,從而將濕度和溫度控制在科學(xué)的閾值范圍內(nèi)。同時(shí),利用無線信道把傳感器參數(shù)發(fā)給主控制器,主控制器通過串口線連接PC 上位機(jī),便于管理員實(shí)時(shí)查看,自動(dòng)將數(shù)據(jù)存入MySQL 數(shù)據(jù)庫,后續(xù)統(tǒng)計(jì)分析的時(shí)候可以將其作為統(tǒng)計(jì)分析依據(jù)。系統(tǒng)方案設(shè)計(jì)圖如圖1 所示。
圖1 系統(tǒng)方案設(shè)計(jì)圖
ZigBee 協(xié)議是一種短途、能耗小和傳輸數(shù)據(jù)速率小的無線半雙工通信技術(shù),廣泛用于自動(dòng)控制領(lǐng)域。本系統(tǒng)采用星型組網(wǎng)方式,降低傳感器終端節(jié)點(diǎn)的復(fù)雜度,提高系統(tǒng)之間的可靠性。系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2 所示。
圖2 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
溫濕度采集終端節(jié)點(diǎn)是指利用DHT11 采集現(xiàn)場溫濕度轉(zhuǎn)換成數(shù)字信號(hào),路由器節(jié)點(diǎn)既接收終端節(jié)點(diǎn)的數(shù)字信號(hào),又匯總數(shù)據(jù)發(fā)送到ZigBee 協(xié)調(diào)器節(jié)點(diǎn),協(xié)調(diào)器把數(shù)據(jù)通過RS232 串口線連接到計(jì)算機(jī),實(shí)現(xiàn)監(jiān)控中心到現(xiàn)場的數(shù)據(jù)采集。
本次芯片設(shè)計(jì)方案采用ARM 內(nèi)核的32 位單片機(jī),優(yōu)點(diǎn)是集成了豐富的外設(shè)功能,將數(shù)字信號(hào)處理、響應(yīng)迅速、低延遲、能耗小和高可靠性等優(yōu)勢(shì)匯總在一起[3]。功能較STC89C51 強(qiáng)大得多,便于后續(xù)功能完善和拓展。我們選用目前主流的STM32F103ZET6 高性能高容量主控制芯片,內(nèi)含512 KB Flash,高達(dá)144 引腳,能夠通過串口芯片CH340 連接到電腦,兼容目前Keil ARM 軟件,能很好實(shí)現(xiàn)代碼編寫。
本系統(tǒng)對(duì)采集溫度和濕度的傳感器要求苛刻,因?yàn)椴杉臄?shù)據(jù)需要考慮到與ZigBee 結(jié)合無線傳輸產(chǎn)生的延遲。所以,對(duì)傳感器的潛在要求是快速響應(yīng)、測量精準(zhǔn)、傳輸距離遠(yuǎn)。本研究采用DHT11 溫濕度傳感器采集溫度和濕度,它的濕度測量范圍是20%~95%RH,濕度誤差不超過5%;溫度范圍在-20℃~+60℃,濕度±5%RH,溫度誤差不超過2℃,溫濕度的分辨率分別為1%RH 和0.1℃。把測量到的數(shù)據(jù)連接到ZigBee,ZigBee 把接收到的數(shù)據(jù)以無線的方式分別發(fā)送到主STM32 和從STM32 處理器,最大程度上減少有線線路的鋪設(shè)成本,簡化了安裝步驟。在實(shí)際電路中,由于DHT11 在一定的溫濕度范圍內(nèi)性能比較穩(wěn)定,但是超過了某一個(gè)范圍,檢測的精度會(huì)嚴(yán)重惡化,所以在電路設(shè)計(jì)需要考慮對(duì)DHT11 的線性補(bǔ)償[4]。本次濕度上限閾值設(shè)置在70%,溫度上限是40℃。
系統(tǒng)采用17 000-18 000 r·min-1的直流電機(jī),它的特點(diǎn)是帶負(fù)載能力強(qiáng)、高耐壓,主要驅(qū)動(dòng)ULN2003D 芯片進(jìn)行通風(fēng)散熱。從控制器接收告警信號(hào)會(huì)給直流電機(jī)一個(gè)驅(qū)動(dòng)信號(hào),當(dāng)告警信號(hào)消失或者人為干預(yù)后才會(huì)停止風(fēng)機(jī)旋轉(zhuǎn),使得溫濕度保持在恒溫恒濕的參數(shù)值內(nèi)。本次設(shè)計(jì)采用五線四相電機(jī)驅(qū)動(dòng)電路來驅(qū)動(dòng)電機(jī)。
采用發(fā)光二極管和蜂鳴器的預(yù)警電路,當(dāng)溫度或者濕度某一項(xiàng)指標(biāo)過高或者過低時(shí),觸發(fā)報(bào)警,發(fā)光二極管以間隔時(shí)間為0.5 s 持續(xù)閃爍,蜂鳴器響起,輸出風(fēng)機(jī)的驅(qū)動(dòng)信號(hào)自動(dòng)調(diào)整溫濕度。
區(qū)別于OSI 的7 層架構(gòu),ZigBee 技術(shù)的協(xié)議層只有四層,分別是物理層、MAC 層、網(wǎng)絡(luò)安全層和應(yīng)用層,最底層的物理層可以通過無線物理信道發(fā)送和接收協(xié)議數(shù)據(jù)單元[5]。ZigBee 包含2 種實(shí)體設(shè)備,分別是全功能新設(shè)備(FFD,F(xiàn)ull Function Device)和精簡功能設(shè)備(RFD,Reduced Function Device)。這里特別需要注意,F(xiàn)FD 可以通過FFD 和RFD 相互透傳,但是RFD 只能和FFD 通信,RFD 之間是不能相互通信的,在ZigBee 組網(wǎng)中,最少也要有一個(gè)FFD 作為整個(gè)無線網(wǎng)的ZigBee 協(xié)調(diào)器,一個(gè)ZigBee 網(wǎng)絡(luò)一般只有一個(gè)ZigBee 協(xié)調(diào)器[6]。我們采用CC2530 芯片,發(fā)射功率增加20 dBm,接收靈敏度增益改善6 dB,串口每秒85 個(gè)80 字節(jié)的數(shù)據(jù)包。30 s 一次采集溫濕度數(shù)據(jù)上傳,極大降低功耗。本研究針對(duì)實(shí)驗(yàn)室環(huán)境,每個(gè)實(shí)驗(yàn)室放置2~4 個(gè)溫度傳感器連接到ZigBee 模塊,監(jiān)控中心放置1 個(gè)協(xié)調(diào)器負(fù)責(zé)接收本棟大樓的無線信號(hào),協(xié)調(diào)器連接到主STM32 控制器,STM32 與上位機(jī)軟件連接,上位機(jī)監(jiān)控獲取的信號(hào)是封閉實(shí)驗(yàn)室?guī)讉€(gè)監(jiān)控點(diǎn)的溫濕度平均值,以此提高測量數(shù)值的可靠性。
系統(tǒng)將終端節(jié)點(diǎn)采集的溫濕度通過無線信道傳送到ZigBee 協(xié)調(diào)器,ZigBee 協(xié)調(diào)器通過串口線將數(shù)據(jù)發(fā)送至從STM32 控制器從機(jī),主控制器也連接到協(xié)調(diào)器,最終將通過串口線顯示在PC 機(jī)上。
軟件的主程序流程圖如圖3 所示。Keil 是一款專門為嵌入式系統(tǒng)設(shè)計(jì)的基于C 語言編程的開發(fā)工具,具備便捷的集成環(huán)境和強(qiáng)大的仿真能力,本系統(tǒng)采用模塊化程序設(shè)計(jì),主要包括主程序、溫度和濕度檢測子程序、LCD1602 顯示程序、報(bào)警子程序、鍵盤掃描子程序和ZigBee 無線數(shù)據(jù)傳輸子程序6 個(gè)程序。
圖3 系統(tǒng)主程序圖
3.1.1 溫度和濕度檢測子程序
使用傳感器,我們先要檢測系統(tǒng)是否有這個(gè)硬件,如果有返回1,否則為0,可以通過手動(dòng)設(shè)置溫濕度上下限,便于不同時(shí)間段的靈活調(diào)整。Temp_DataPros()函數(shù)用于溫度的檢測、讀取和顯示在液晶屏上;LCD_Dispstring(2+6,0,temp_buf) 用于顯示檢測溫度的格式為XX.X;LCD_Dispstring(5,1,temp_buf)和LCD_Dispstring(14,1,temp_buf)函數(shù)用于設(shè)定溫度上限值和下限值。
3.1.2 鍵盤掃描子程序
按鍵功能在本系統(tǒng)使用較為頻繁,本次使用KEY_Scan(u8 mode)函數(shù)進(jìn)行掃描,由于按鍵存在抖動(dòng),不利于讀取,故先需要消除抖動(dòng),即給一個(gè)延遲delay(1 000)。KEY_Pros()函數(shù)可以實(shí)現(xiàn)按鍵加減功能。
3.1.3 報(bào)警子程序
本次使用sound()函數(shù)進(jìn)行報(bào)警,實(shí)際環(huán)境溫濕度高于上限值就會(huì)開啟報(bào)警和散熱;實(shí)際環(huán)境溫濕度低于下限值也會(huì)開啟報(bào)警和加熱。正常情況下,實(shí)際溫濕度在上下限之間,取消報(bào)警,取消加熱和散熱。報(bào)警時(shí),指示燈會(huì)亮,同時(shí)反饋給監(jiān)控中心一個(gè)信號(hào)提醒。
在實(shí)驗(yàn)室環(huán)境下測試,測試的指標(biāo)分別為系統(tǒng)運(yùn)行可靠性測試、供電系統(tǒng)測試、溫濕度無線數(shù)據(jù)傳輸測試、自動(dòng)控制測試和告警系統(tǒng)測試等。在Eclipse 集成環(huán)境下,編寫Java 程序,讀取主STM32 控制器的數(shù)據(jù),連接到MySQL 數(shù)據(jù)庫存儲(chǔ)。系統(tǒng)測試結(jié)果見表1。經(jīng)過實(shí)驗(yàn)測試,該系統(tǒng)的可靠性和有效性均滿足使用要求。
表1 系統(tǒng)測試結(jié)果
本文以機(jī)房實(shí)訓(xùn)室等封閉環(huán)境為出發(fā)點(diǎn),通過嵌入式開發(fā)技術(shù),結(jié)合ZigBee 的多點(diǎn)無線通信技術(shù)對(duì)系統(tǒng)軟硬件綜合設(shè)計(jì),系統(tǒng)具備采樣點(diǎn)靈活,容量大的特點(diǎn),實(shí)現(xiàn)了無線溫濕度監(jiān)測系統(tǒng),該方案能夠很好地解決當(dāng)前人力檢測的低效局面,具備低成本、效率高和高穩(wěn)定性等優(yōu)點(diǎn),在現(xiàn)實(shí)中具有較高的應(yīng)用價(jià)值。