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

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

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