王小龍
(中國航空工業(yè)集團公司北京長城計量測試技術(shù)研究所,北京 100095)
溫濕度是測量方面非常關(guān)鍵的可測量因素。不管是人們賴以生存的基本居住條件,或是工農(nóng)業(yè)產(chǎn)品生產(chǎn)、軍事、氣象觀測等行業(yè),都必須對溫度與濕度實施檢測與管理。而由于電子、計算機科學、通信技術(shù)、傳感器設備和傳感技術(shù)等發(fā)展,檢測行業(yè)對溫度與濕度的測量能力已經(jīng)實現(xiàn)了跨越式的提升。在現(xiàn)代社會,溫濕度測量可應用的范圍非常大,例如,探究救災機器人、醫(yī)院、工業(yè)控制和文物保護等領(lǐng)域都對溫濕度測量有著一定的需求。基于此,研究開發(fā)出一款成本低、可靠性優(yōu)越的溫濕度系統(tǒng)便顯得尤為重要。此次設計中,將以STM32 為基礎,展開多通道溫濕度測量儀的硬件、軟件設計工作,并進行相應的調(diào)試,以便于獲得可用于實踐工作中的高可靠性測量儀。
現(xiàn)代人要求的基本生活條件越來越嚴格,特別是溫濕度的問題直接關(guān)系到整個社會,甚至威脅到人類和其他動植物的生存條件。故而在農(nóng)業(yè)、林業(yè)、環(huán)境保護等工作中,往往要求獲取精確的環(huán)境溫濕度測量信息。鄧芳明等以射頻識別技術(shù)傳感標簽為基礎研發(fā)出了一種農(nóng)田土壤環(huán)境監(jiān)測方式,并設計了一種無源射頻識別溫濕度傳感標簽。張露荷等對環(huán)境的溫濕度傳感器信息予以提取,以探討溫濕度傳感器在高寒草原上土地氮礦化監(jiān)測中的作用。已有學者對不同類型的土壤溫度、濕度進行了計算,并對不同類型的覆蓋方法進行了研究。在工程施工中,土地的溫度、濕度都是采用電子儀器進行監(jiān)測的。侯偉等采用虛擬儀器方法,用51 單片機建立了一個作用于農(nóng)田的土壤溫濕度系統(tǒng),完成了對單塊土地溫濕度的計算和顯示,但系統(tǒng)的測試通道數(shù)目較小,且并行處理功能較弱。將STM32 單片機和51 單片機以及DSP 處理器進行相關(guān)比較,STM32 單片機在計算力、資源方面的優(yōu)勢更為顯著。王子權(quán)等曾經(jīng)研究借助PWM 輸出功能以便于完成調(diào)節(jié)LED 燈亮度的功能。黃琦等采用STM32,根據(jù)分布式光纖拉曼測溫系統(tǒng)中定標光纖、雪崩光電二極管的溫度控制需要,特意設計了一個精密恒溫控制管理系統(tǒng)。
系統(tǒng)的整體構(gòu)成中重點涵蓋的內(nèi)容有8 對傳感器,即溫、濕度傳感器各有8 個,溫度傳感器主要借助單總線從而實現(xiàn)和單片機的連接;PCF8591A 對應的是濕度傳感器的前4 個,PCF8591B 對應的是濕度傳感器的后4 個。PCF8591 利用自身的IIC 總線實現(xiàn)和單片機的相連。
單片機在正常運行期間,需要有基本電路進行支撐,其中復位以及晶振電路均屬于基本電路的范疇,設置串口電路的原因主要有2 個方面:一方面是在程序編譯完成并制作為HEX/BIN 文件后,將程序存入單片機芯片中;另一方面是要和上位機進行正常的通信交流。利用按鍵的形式對溫濕度的報警值進行有效調(diào)控。針對裝置中的8 個傳感器組,都要為其增設LED 指示燈,當燈亮起時,則意味著相應的傳感器組處于工作狀態(tài)。除此之外,還需要將報警信號的功率放大,這一工作的目的是促使報警信號能夠及時響起,以便于相關(guān)工作者可以盡快感知到異常情況。
2.2.1 SEN0114 土壤濕度傳感器
SEN0114 濕度傳感器,從本質(zhì)上來講屬于一種較為簡單的水分傳感器,其作用是能夠測試土壤中的含水量。如果土壤出現(xiàn)缺水問題,傳感器輸出值將相應降低,否則將增加。借助于四線制系統(tǒng),其中VCC 和GND 分別代表電源的高電平和低電平。若檢測的濕度參數(shù)值和設定值之間有出入,低于設定值,則DO 便會輸出高電平,反之則會輸出低電平。AO 相當于濕度模擬量的輸出端,這一端口和PCF8591 有所連接,二者連接的目的在于完成模擬量向數(shù)字量變換。
2.2.2 PCF8591 轉(zhuǎn)換芯片
A/D 轉(zhuǎn)換模塊中包括2 個PCF8591 芯片,并且其芯片中有IIC 總線,總線占據(jù)了STM32 的GPIO 端口,故而2 個芯片都會用到IIC 總線。芯片中包含的A0、A1 以及A2 都是器件地址配置端口。如果PCF8591A配置為0×01 的情況下,則A0 便會輸出高電平,其余2個便會輸出低電平。對于PCF8591B 而言,當其配置為0×00 的情況下,這幾個端口都會輸出低電平。STN32其能夠借助IIC 通信技術(shù)實現(xiàn)連接操作,轉(zhuǎn)換芯片的模擬量輸入端口是AIN0—AIN4,基于這一情況來看,PCF8591A 以及PCF8591B 都會和4 個濕度傳感器相連接。
2.2.3 DS18B20 溫度傳感器
這一傳感器的電路較為簡單,并且在工作狀態(tài)下表現(xiàn)出的溫度測量精確性比較優(yōu)良,其按照單總線通信協(xié)議運行工作,能夠借助STM32 的通用GPIO 引腳完成和該傳感器實現(xiàn)通信。該傳感器共包含8 個單總線引腳,分別為PB0、PB1、PC5、PC6、PA0、PA1、PE2 和PE3。
設計過程中,將觸摸屏的大小選定為4.3 英寸,類別為電容型,觸摸屏的分辨率參數(shù)為800×480 像素,該顯示屏在顯示信息時,應用的是16 位真彩。該觸摸屏和電阻類型的觸摸屏相比較來講,前者僅需工作人員輕微用手指觸碰便可以激活,多點觸摸的難度等級比較小,其應用的是鋼化玻璃材料,硬度比較高,不易損壞,可以使用較長一段時間。
在設計按鍵的過程中,一共設計了7 個按鍵,其中包括1 個復位按鍵、3 個濕度按鍵以及3 個溫度按鍵。每個按鍵代表的含義各不相同,復位按鍵是將原先設置的參數(shù)歸為初始設定值。3 個濕度按鍵分別為濕度×10、濕度×1、濕度×0.1,這3 個按鍵的含義分別代表的濕度變化率為1、0.1 以及0.01。3 個溫度按鍵的含義與濕度按鍵相似,在此不作過多闡述。
通過D2822A 的輔助,可以實現(xiàn)對單聲道音頻功率的放大,從而達到提高系統(tǒng)噪聲的目的。如圖1 所示,輸入端為Input,這一端口可以實現(xiàn)和音頻設備的連接。

圖1 音頻功率放大電路
系統(tǒng)的設計工作包括任務組態(tài)、人機界面設計等。
系統(tǒng)任務主要包括:任務創(chuàng)建功能的啟動任務、觸摸屏任務的觸控任務、人機界面的顯示與刷新任務、報警任務boom_task、按鍵的檢測任務key_task、系統(tǒng)工作指示任務led_task、溫濕度測量任務THmer_task1—THmer_task8。
人機界面的設計工作十分重要,其設計質(zhì)量的高低直接關(guān)系到系統(tǒng)工作效率。在本設計中,主要設計了2 種界面,一種是報警值設置界面,另一種是參數(shù)值顯示界面,這2 個界面不僅是相互獨立的,而且也是互相關(guān)聯(lián)的,在設計期間,需要考慮到界面切換的問題,這樣做是為了更好地進行參數(shù)設置以及參數(shù)觀察。
3.2.1 報警值設置界面
在設計人機界面時,需要將溫濕度報警值設定為系統(tǒng)初始化界面,也就是在系統(tǒng)啟動之初,便會首先進入到這一界面中來,不用工作人員進行相應的操作,只要啟動系統(tǒng),該界面便會展現(xiàn)出來。
3.2.2 參數(shù)值顯示界面
這一界面的主要作用是能夠展現(xiàn)8 個通道中的溫濕度參數(shù)變化情況。如果監(jiān)測到數(shù)值后,顯示屏中對應的位置便會顯現(xiàn)出這一參數(shù)值。若沒有檢測到相關(guān)數(shù)值,則顯示屏便會顯現(xiàn)“NULL”。
3.2.3 互斥信號量配置
對于PCF8591A 以及PCF8591B 來講,因為這2個芯片需要共同用到IIC 總線,但是總線只有1 個,所以每次讀取數(shù)據(jù)時,無法同時完成,單次只能讀取單個芯片上的數(shù)據(jù)信息。為了有效防止共享總線過程中出現(xiàn)數(shù)據(jù)串聯(lián)的異常現(xiàn)象,需要設計互斥信號量,這樣做的目的是充分避免優(yōu)先級出現(xiàn)反轉(zhuǎn)的情況。與此同時,還要確保單片機在每一個通信周期中,僅與其中1 個芯片進行交流。
在程序設計過程中,還需要增加一個變量,即TASK-FLAG,這一變量設置的目的是對所有任務狀態(tài)加以記錄,以便于充分掌握每個任務的具體情況。變量位數(shù)為32。借助對其中部分位的邏輯功能配置處理,便能夠?qū)崿F(xiàn)對相關(guān)任務運行狀態(tài)的標志。
系統(tǒng)整體程序流程如圖2 所示。從圖2 中可以看出,程序開始,需要先進行初始化,其中包括程序庫初始化、LED 初始化等諸多初始化內(nèi)容。當UCOS 在實現(xiàn)初始化操作之后,接下來會開始start_task 任務,并創(chuàng)建系統(tǒng)所要用到的其他任務,在任務運行過程完成之后,將之掛起。任務均放置在1 個任務池當中。emwin_task 則需要實現(xiàn)人機界面的顯示工作。當初始化操作結(jié)束之后,系統(tǒng)會自動到達報警值界面。相關(guān)工作人員需要在該界面設定合理的參數(shù)值,并觸碰“START”按鈕開始工作,觸碰“ENTER”按鈕可以到達數(shù)值顯示界面。在該界面中觸碰“RETURN”,則可以返回原先的界面。

圖2 系統(tǒng)整體流程
溫濕度測量任務的重點工作是調(diào)用溫濕度測量有關(guān)的函數(shù),并獲取相關(guān)數(shù)據(jù)信息,再借助相應的數(shù)據(jù)處理措施,確保溫濕度相關(guān)數(shù)值可以正常反映在觸摸屏界面上。在這一流程中,會涉及變量err,這是操作系統(tǒng)中必然會存在的,其作用是存放程序運行有偏差的內(nèi)容,溫度測量函數(shù)確保共享數(shù)據(jù)總線,故而在進行相關(guān)函數(shù)的調(diào)用時,不用設計互斥信號量的判斷內(nèi)容。但是濕度測量函數(shù)必須進行設計,增加關(guān)于互斥信號量的判斷內(nèi)容。
實驗中涉及了很多設備,包括溫濕度傳感器、發(fā)射機、PCF8591 芯片等諸多內(nèi)容。在這些內(nèi)容中,為了得到更精確的模擬信號,發(fā)射機和溫度傳感器相互連接。
在此基礎上,利用該傳送器將模擬信號傳送給PCF8591,再進行仿真變換,獲取土壤的相對濕度和溫度信息;界面顯示良好,按鍵操作正確,報警和數(shù)據(jù)顯示接口良好,檢測工作正常,溫度、濕度等性能良好;電源信號放大器工作得很好,當溫濕度測量達到告警閾值后可以產(chǎn)生響度較大的報警信號。
單片機用到的電源電壓為3.3 V,要求供電電壓不可超過這一數(shù)值水平,否則將會對芯片造成一定程度的破壞。接上電之后,系統(tǒng)便會開啟,借助LED 燈來觀察各個溫濕度傳感器組的工作情況。系統(tǒng)需要檢測溫濕度傳感器是否正常工作,若正常,可以進行溫濕度數(shù)值采集工作,并將相關(guān)數(shù)據(jù)顯示在屏幕上;若不正常,則會提示相關(guān)問題。溫度值與濕度值分別為30 ℃、33%,以100 ms 為時間間隔期,每隔一個間隔期便刷新一次數(shù)據(jù),以便于實時顯示動態(tài)的數(shù)據(jù)值,若溫濕度傳感器出現(xiàn)異常情況,則會提示無設備等內(nèi)容。
從現(xiàn)場的檢查中,可以看到本次設計,顯示的數(shù)字精確度較低,并且數(shù)字的刷新率比較慢,所以在數(shù)字的顯示上需要進一步完善。
在此次研究中,以STM32F103ZET6 為基礎,并聯(lián)合UCOS 操作系統(tǒng)展開了相關(guān)設計工作,嘗試設計出多通道并行檢測溫濕度的裝置。設計的檢測裝置儀器含有8 個通道,這些通道均能夠?qū)崿F(xiàn)并行工作目標。這一裝置儀器除了能夠用來對土壤的溫度、濕度值進行檢測之外,同樣也可以用來進行環(huán)境信息的檢測,同時也可以用于綠植等的檢測領(lǐng)域。結(jié)合對不同對象的檢測,可以適當?shù)卣{(diào)整通道數(shù)量,同時也可以將這一裝置儀器作為基礎,展開優(yōu)化改造,增設其他檢測功能模塊,以便于更好地適應實踐工作。