劉明棲 韓星宇
華北理工大學 河北 唐山 063210
引言
經濟的發展和科學技術水平的不斷提升使得人們的生活和工作越來越便利,但同時也給環境造成了負面的影響,因環境原因帶來的安全問題也屢見諸媒體,在人們的生活和工作中留下了安全隱患,環境問題開始越來越受到人們的重視。隨著物聯網和云計算技術的發展,為環境監控提供了一種新出路。
智能室內環境監控系統主要實現對工廠生產、倉庫、實驗室等環境的實時監測,實時為用戶提供可靠并且全面的環境信息。系統使用物聯網傳感器技術,將多臺不同的傳感器分布至工業環境的采集點,傳感器可隨時測量被采樣室內環境因素的信息,如溫度、濕度、各種有毒有害氣體的濃度、光照強度、粉塵含量等,并將這些信息統一上傳到后臺的云平臺控制中心進行管理,當室內環境的任一參數超出正常標準或安全范圍時,后臺服務系統立即作出響應,自動發出安全警報并采取應急措施,保障室內人員和環境的安全[1]。
為了滿足能控制溫度和濕度的目的,監控系統分為溫濕度采集器、顯示模塊、PM2.5傳感器、鍵盤系統。溫濕度采集器。通過DHT11溫濕度傳感器對室內溫濕度進行采集,傳送給單片機進行分析處理,得到一個比較準確的數值,單片機根據采集回來的數值做出開關降溫設備和加濕設備的指令。PM2.5模塊采集完的PM2.5數值經由單片機處理過后,經OLED顯示模塊顯示給用戶,讓用戶知道室內的空氣質量情況[2]。提供人機交互讓用戶能較好地操作系統,提供更好的服務。使用換氣扇將一種室內環境智能監控系統的設計文/葉帥謝德庚本作品使用溫濕度傳感器、PM2.5傳感器對室內環境的情況進行采樣,并傳輸給單片機進行處理分析,利用其精準性和時效性,最終對室內環境進行調整并反饋給用戶。溫濕度結合控制的思路對探索新型室內環境控制具有一定的參考價值。摘要室內的空氣吸入設備中,讓空氣經過冷端降溫后送出設備。由于制冷會產生一部分熱量,產生的熱量通過換氣扇與外界交換來實現對制冷設備的降溫。
軟件部分使用Keil MDK5.25編寫,使用C語言編程,使用庫函數版本為V3.5.0,采用模塊化編程的思路。根據系統設計,軟件部分分為初始化程序和主程序。溫濕度監控系統的程序流程如圖所示。

圖1 溫濕度監控系統的程序流程
初始化主要包括單片機時鐘、I/O口、串口程序、OLED屏幕、DHT11溫濕度傳感器。單片機芯片為STM32F103C8T6,主控板外部晶振為8M,通過芯片內PLL最高達72M,時鐘晶振為32768Hz。調用系統函數SystemInit對系統時鐘進行初始化。I/O口初始化,STM32F1系列單片機通用IO口有輸入輸出復用三大類功能。根據系統設計需要選擇輸出為推挽輸出,輸入為模擬輸入[3]。串口初始化程序包括串口初始化和串口中斷初始化。串口通訊波特率設定為9600bit/s,8位數據格式,一個停止位,無奇偶校驗位。串口中斷初始化主要是選擇NVIC中斷源、搶占優先級和次優先級,這里選擇NVIC_IRQChannel為USART1_IRQn中斷源、搶占優先級3、次優先級2。中斷處理采用查詢法,調用函數USART_GetITStatus查詢是否接受到USART1中斷,如果接收到中斷后存儲并處理數據。OLED屏幕初始化主要包括對OLED屏幕寄存器的操控,設定低位列地址、高位列地址、頁地址等。參考SSD1306芯片使用I2C通信對芯片寄存器進行配置。
整個主程序為一個死循環,系統通過初始化程序對每個部分進行初始化后進入主循環程序。循環主程序中包括顯示程序、按鍵程序,溫濕度數據的讀取由一個1分鐘的定時器處理。顯示程序包括溫度顯示、濕度顯示、PM2.5顯示、模式顯示,每個漢字高16寬16,數字和字符為高16寬8[4]。顯示程序中的漢字顯示必須由取模軟件進行取模后寫入程序才能顯示。根據OLED函數編寫的不同,選擇不同的取模方式。此處選擇行列式取模方式。按鍵程序采用掃描的方法,對IO口實時掃描讀取輸入的數值,如果檢測到輸出則會進行相應的開關操作。讀取DHT11數據時,將讀到的40bit數據放在一個5個Char型的數組中,首先驗證數據準確性,將數組前4位相加,為防止數據溢出將結果強制轉化符unsigned char型,與數組第5位進行比較。其次分別計算溫度和濕度,溫度數據為數組的前兩位,同樣為了防止數據溢出將結果強制轉化位unsigned char型[5]。
本系統采STM32F103C8T6作為主控芯片,結合DHT11溫濕度傳感器,PM2.5傳感器等組成整個系統。從室內溫濕度同時控制的理念出發,力圖解決室內空氣質量監控不足的問題,有較高的實用價值。