劉明棲 韓星宇
華北理工大學(xué) 河北 唐山 063210
引言
經(jīng)濟(jì)的發(fā)展和科學(xué)技術(shù)水平的不斷提升使得人們的生活和工作越來越便利,但同時也給環(huán)境造成了負(fù)面的影響,因環(huán)境原因帶來的安全問題也屢見諸媒體,在人們的生活和工作中留下了安全隱患,環(huán)境問題開始越來越受到人們的重視。隨著物聯(lián)網(wǎng)和云計算技術(shù)的發(fā)展,為環(huán)境監(jiān)控提供了一種新出路。
智能室內(nèi)環(huán)境監(jiān)控系統(tǒng)主要實(shí)現(xiàn)對工廠生產(chǎn)、倉庫、實(shí)驗(yàn)室等環(huán)境的實(shí)時監(jiān)測,實(shí)時為用戶提供可靠并且全面的環(huán)境信息。系統(tǒng)使用物聯(lián)網(wǎng)傳感器技術(shù),將多臺不同的傳感器分布至工業(yè)環(huán)境的采集點(diǎn),傳感器可隨時測量被采樣室內(nèi)環(huán)境因素的信息,如溫度、濕度、各種有毒有害氣體的濃度、光照強(qiáng)度、粉塵含量等,并將這些信息統(tǒng)一上傳到后臺的云平臺控制中心進(jìn)行管理,當(dāng)室內(nèi)環(huán)境的任一參數(shù)超出正常標(biāo)準(zhǔn)或安全范圍時,后臺服務(wù)系統(tǒng)立即作出響應(yīng),自動發(fā)出安全警報并采取應(yīng)急措施,保障室內(nèi)人員和環(huán)境的安全[1]。
為了滿足能控制溫度和濕度的目的,監(jiān)控系統(tǒng)分為溫濕度采集器、顯示模塊、PM2.5傳感器、鍵盤系統(tǒng)。溫濕度采集器。通過DHT11溫濕度傳感器對室內(nèi)溫濕度進(jìn)行采集,傳送給單片機(jī)進(jìn)行分析處理,得到一個比較準(zhǔn)確的數(shù)值,單片機(jī)根據(jù)采集回來的數(shù)值做出開關(guān)降溫設(shè)備和加濕設(shè)備的指令。PM2.5模塊采集完的PM2.5數(shù)值經(jīng)由單片機(jī)處理過后,經(jīng)OLED顯示模塊顯示給用戶,讓用戶知道室內(nèi)的空氣質(zhì)量情況[2]。提供人機(jī)交互讓用戶能較好地操作系統(tǒng),提供更好的服務(wù)。使用換氣扇將一種室內(nèi)環(huán)境智能監(jiān)控系統(tǒng)的設(shè)計文/葉帥謝德庚本作品使用溫濕度傳感器、PM2.5傳感器對室內(nèi)環(huán)境的情況進(jìn)行采樣,并傳輸給單片機(jī)進(jìn)行處理分析,利用其精準(zhǔn)性和時效性,最終對室內(nèi)環(huán)境進(jìn)行調(diào)整并反饋給用戶。溫濕度結(jié)合控制的思路對探索新型室內(nèi)環(huán)境控制具有一定的參考價值。摘要室內(nèi)的空氣吸入設(shè)備中,讓空氣經(jīng)過冷端降溫后送出設(shè)備。由于制冷會產(chǎn)生一部分熱量,產(chǎn)生的熱量通過換氣扇與外界交換來實(shí)現(xiàn)對制冷設(shè)備的降溫。
軟件部分使用Keil MDK5.25編寫,使用C語言編程,使用庫函數(shù)版本為V3.5.0,采用模塊化編程的思路。根據(jù)系統(tǒng)設(shè)計,軟件部分分為初始化程序和主程序。溫濕度監(jiān)控系統(tǒng)的程序流程如圖所示。
圖1 溫濕度監(jiān)控系統(tǒng)的程序流程
初始化主要包括單片機(jī)時鐘、I/O口、串口程序、OLED屏幕、DHT11溫濕度傳感器。單片機(jī)芯片為STM32F103C8T6,主控板外部晶振為8M,通過芯片內(nèi)PLL最高達(dá)72M,時鐘晶振為32768Hz。調(diào)用系統(tǒng)函數(shù)SystemInit對系統(tǒng)時鐘進(jìn)行初始化。I/O口初始化,STM32F1系列單片機(jī)通用IO口有輸入輸出復(fù)用三大類功能。根據(jù)系統(tǒng)設(shè)計需要選擇輸出為推挽輸出,輸入為模擬輸入[3]。串口初始化程序包括串口初始化和串口中斷初始化。串口通訊波特率設(shè)定為9600bit/s,8位數(shù)據(jù)格式,一個停止位,無奇偶校驗(yàn)位。串口中斷初始化主要是選擇NVIC中斷源、搶占優(yōu)先級和次優(yōu)先級,這里選擇NVIC_IRQChannel為USART1_IRQn中斷源、搶占優(yōu)先級3、次優(yōu)先級2。中斷處理采用查詢法,調(diào)用函數(shù)USART_GetITStatus查詢是否接受到USART1中斷,如果接收到中斷后存儲并處理數(shù)據(jù)。OLED屏幕初始化主要包括對OLED屏幕寄存器的操控,設(shè)定低位列地址、高位列地址、頁地址等。參考SSD1306芯片使用I2C通信對芯片寄存器進(jìn)行配置。
整個主程序?yàn)橐粋€死循環(huán),系統(tǒng)通過初始化程序?qū)γ總€部分進(jìn)行初始化后進(jìn)入主循環(huán)程序。循環(huán)主程序中包括顯示程序、按鍵程序,溫濕度數(shù)據(jù)的讀取由一個1分鐘的定時器處理。顯示程序包括溫度顯示、濕度顯示、PM2.5顯示、模式顯示,每個漢字高16寬16,數(shù)字和字符為高16寬8[4]。顯示程序中的漢字顯示必須由取模軟件進(jìn)行取模后寫入程序才能顯示。根據(jù)OLED函數(shù)編寫的不同,選擇不同的取模方式。此處選擇行列式取模方式。按鍵程序采用掃描的方法,對IO口實(shí)時掃描讀取輸入的數(shù)值,如果檢測到輸出則會進(jìn)行相應(yīng)的開關(guān)操作。讀取DHT11數(shù)據(jù)時,將讀到的40bit數(shù)據(jù)放在一個5個Char型的數(shù)組中,首先驗(yàn)證數(shù)據(jù)準(zhǔn)確性,將數(shù)組前4位相加,為防止數(shù)據(jù)溢出將結(jié)果強(qiáng)制轉(zhuǎn)化符unsigned char型,與數(shù)組第5位進(jìn)行比較。其次分別計算溫度和濕度,溫度數(shù)據(jù)為數(shù)組的前兩位,同樣為了防止數(shù)據(jù)溢出將結(jié)果強(qiáng)制轉(zhuǎn)化位unsigned char型[5]。
本系統(tǒng)采STM32F103C8T6作為主控芯片,結(jié)合DHT11溫濕度傳感器,PM2.5傳感器等組成整個系統(tǒng)。從室內(nèi)溫濕度同時控制的理念出發(fā),力圖解決室內(nèi)空氣質(zhì)量監(jiān)控不足的問題,有較高的實(shí)用價值。