葉帥 謝德庚


摘要:本作品使用溫濕度傳感器、PM2.5傳感器對室內(nèi)環(huán)境的情況進行采樣,并傳輸給單片機進行處理分析,利用其精準性和時效性,最終對室內(nèi)環(huán)境進行調(diào)整并反饋給用戶。溫濕度結合控制的思路對探索新型室內(nèi)環(huán)境控制具有一定的參考價值。
[關鍵詞]室內(nèi)溫控 濕度控制 PM2.5 STM32
隨著科技的發(fā)展和生活水平提高,人們對居家環(huán)境的舒適度的需求愈加強烈。為了將科技和生活更加完美的融合在一起,智能家居技術就應運而生。各種控制芯片和傳感器的運用使得生活變得方便和舒適。根據(jù)GBT1883-2002標準中規(guī)定,夏季溫度22-28C,相對濕度在40%-80%,可吸入顆粒物應小于0.15mg/m3為適宜環(huán)境。而IAQ一室內(nèi)空氣品質(zhì)中,適宜環(huán)境為溫度20-26°C,相對濕度40%-60%之間。目前市面上的調(diào)溫設備只能調(diào)整溫度而不能改善空氣濕度,尤其在夏天濕度低的環(huán)境下,會造成人頭暈的現(xiàn)象,影響人的身體健康。針對以上局限性,我們提出一種集溫度濕度控制及可吸入顆粒物濃度監(jiān)測為一體的新型環(huán)境監(jiān)控系統(tǒng),
1 設計思路及目的
為了滿足能控制溫度和濕度的目的,監(jiān)控系統(tǒng)分為溫濕度采集器、顯示模塊、PM2.5傳感器、鍵盤系統(tǒng)。溫濕度采集器。通過DHT11溫濕度傳感器對室內(nèi)溫濕度進行采集,傳送給單片機進行分析處理,得到一個比較準確的數(shù)值,單片機根據(jù)采集回來的數(shù)值做出開關降溫設備和加濕設備的指令。PM2.5模塊采集完的PM2.5數(shù)值經(jīng)由單片機處理過后,經(jīng)OLED顯示模塊顯示給用戶,讓用戶知道室內(nèi)的空氣質(zhì)量情況。提供人機交互讓用戶能較好地操作系統(tǒng),提供更好的服務。使用換氣扇將室內(nèi)的空氣吸入設備中,讓空氣經(jīng)過冷端降溫后送出設備。由于制冷會產(chǎn)生一部分熱量,產(chǎn)生的熱量通過換氣扇與外界交換來實現(xiàn)對制冷設備的降溫。
2 系統(tǒng)硬件模塊分析
(1)顯示模塊采用芯片為SSD1306的0.96寸OLED顯示屏,能顯示126x64的點陣。OLED是一種同時具備自發(fā)光、不需要背光源、對比度高、視角廣、反應速度快等優(yōu)點的顯示技術。工作電壓為直流3.3-5V,使用I2C通信連接于主控芯片I2C接口。OLED與單片機連接如圖1所示。
(2)PM2.5。采用的ZPH01粉塵傳感器,使用激光散射測量方法,能檢測最小粒子為1μm,最大識別范圍為15000個/283ml,使用5V的工作電壓。PM2.5傳感器必須垂直安裝,且不能安放在風扇前方和后方,可任選外殼一側(cè)安裝,但必須保證外部空氣流動。PM2.5傳感器需要預熱5min,前5min的數(shù)據(jù)不準確。通過UART通訊協(xié)議和主控芯片通訊,PM2.5每秒發(fā)出一個完整的數(shù)據(jù)包,由單片機完成接受和處理。
(3)溫濕度傳感器。采用DHT11傳感器,包括一個電阻式感濕元件和一個NTC測溫元件,通過一個高性能的8為單片機相連,.能檢測周圍環(huán)境的濕度和溫度,其工作電壓為3.3-5V,濕度測量范圍為20%-95%,誤差范圍+5%,溫度測量范圍為0-50°C,誤差范圍+2°C。DHT11采用單線數(shù)字信號傳輸,DHT11-次完成的數(shù)據(jù)傳輸包括40bit,8bit濕度數(shù)據(jù)、8bit濕度小數(shù)數(shù)據(jù)、8bit溫度整數(shù)數(shù)據(jù)、8bit溫度小數(shù)數(shù)據(jù)和8bit校驗和。與單片機連接的引腳為PA8。DHT11與STM32連接如圖2所示。
(4)主控芯片。采用ST公司的STM32F103C8T6,該芯片支持72MHz工作頻率,64k字節(jié)的閃存程序儲存器,能夠應對大部分控制情況。主控芯片負責對溫濕度傳感器數(shù)據(jù)的采集和處理,PM2.5數(shù)據(jù)的讀出以及人機交互的控制。
根據(jù)前文對各個部分模塊的簡介,設計選擇制作了相應的電源和外殼。硬件電路由OLED顯示模塊、電源部分、DHT11溫濕度傳感器、12V轉(zhuǎn)5V電源模塊、PM2.5傳感器以及主控芯片STM32F103組成。
3 系統(tǒng)軟件模塊設計
軟件部分使用KeilMDK5.25編寫,使用C語言編程,使用庫函數(shù)版本為V3.5.0,采用模塊化編程的思路。根據(jù)系統(tǒng)設計,軟件部分分為初始化程序和主程序。
溫濕度監(jiān)控系統(tǒng)的程序流程如圖3所示。
3.1 初始化程序設計
系統(tǒng)初始化主要包括單片機時鐘、I/O口、串口程序、OLED屏幕、DHT11溫濕度傳感器。
單片機芯片為STM32F103C8T6,主控板外部晶振為8M,通過芯片內(nèi)PLL最高達72M,時鐘晶振為32768Hz。調(diào)用系統(tǒng)函數(shù)SystemInit()對系統(tǒng)時鐘進行初始化。
I/O口初始化,STM32F1系列單片機通用IO口有輸入輸出復用三大類功能。根據(jù)系統(tǒng)設計需要選擇輸出為推挽輸出,輸入為模擬輸入。
串口初始化程序包括串口初始化和串口中斷初始化。串口通訊波特率設定為9600bit/s,8位數(shù)據(jù)格式,一個停止位,無奇偶校驗位。串口中斷初始化主要是選擇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屏幕寄存器的操控,設定低位列地址、高位列地址、頁地址等。參考SSD1306芯片使用I2C通信對芯片寄存器進行配置。
DHT11初始化包括兩部分。第一部分對I/O進行配置,使用GPIO初始化結構體GPOIOInitTypeDef定義一個結構體,對結構體成員Mode配置為GPIO_Mode_Out_OD。第二部分為對DHT11初始化,當主機發(fā)送一個至少18ms的低電平,等待DHT11完成AD轉(zhuǎn)換操作。當主機拉高后,在20-40us內(nèi),主機完成輸入輸出切換,讀取數(shù)據(jù)。DHT11初始化會占用接近1秒的初始化時間,所以在對DHT11初始化時會預留較長的時間等待初始化完成。
3.2 主程序設計思路
整個主程序為一個死循環(huán),系統(tǒng)通過初始化程序?qū)γ總€部分進行初始化后進入主循環(huán)程序。循環(huán)主程序中包括顯示程序、按鍵程序,溫濕度數(shù)據(jù)的讀取由一個1分鐘的定時器處理。
顯示程序包括溫度顯示、濕度顯示、PM2.5顯示、模式顯示,每個漢字高16寬16,數(shù)字和字符為高16寬8。顯示程序中的漢字顯示必須由取模軟件進行取模后寫入程序才能顯示。根據(jù)OLED函數(shù)編寫的不同,選擇不同的取模方式。此處選擇行列式取模方式。按鍵程序采用掃描的方法,對I0口實時掃描讀取輸入的數(shù)值,如果檢測到輸出則會進行相應的開關操作。
讀取DHT11數(shù)據(jù)時,將讀到的40bit數(shù)據(jù)放在一個5個Char型的數(shù)組中,首先驗證數(shù)據(jù)準確性,將數(shù)組前4位相加,為防止數(shù)據(jù)溢出將結果強制轉(zhuǎn)化符unsignedchar型,與數(shù)組第5位進行比較。其次分別計算溫度和濕度,溫度數(shù)據(jù)為數(shù)組的前兩位,同樣為了防止數(shù)據(jù)溢出將結果強制轉(zhuǎn)化位unsignedchar型。
4 總結
本系統(tǒng)采STM32F103C8T6作為主控芯片,結合DHT11溫濕度傳感器,PM2.5傳感器等組成整個系統(tǒng)。從室內(nèi)溫濕度同時控制的理念出發(fā),力圖解決室內(nèi)空氣質(zhì)量監(jiān)控不足的問題,有較高的實用價值。
參考文獻
[1]朱蘊璞。傳感器原理及應用[J].國防工業(yè)出版社,2005.
[2]劉火良,楊森.STM32庫開發(fā)指南[J].機械工業(yè)出版社,2013.