王小龍
(中國(guó)航空工業(yè)集團(tuán)公司北京長(zhǎng)城計(jì)量測(cè)試技術(shù)研究所,北京 100095)
溫濕度是測(cè)量方面非常關(guān)鍵的可測(cè)量因素。不管是人們賴以生存的基本居住條件,或是工農(nóng)業(yè)產(chǎn)品生產(chǎn)、軍事、氣象觀測(cè)等行業(yè),都必須對(duì)溫度與濕度實(shí)施檢測(cè)與管理。而由于電子、計(jì)算機(jī)科學(xué)、通信技術(shù)、傳感器設(shè)備和傳感技術(shù)等發(fā)展,檢測(cè)行業(yè)對(duì)溫度與濕度的測(cè)量能力已經(jīng)實(shí)現(xiàn)了跨越式的提升。在現(xiàn)代社會(huì),溫濕度測(cè)量可應(yīng)用的范圍非常大,例如,探究救災(zāi)機(jī)器人、醫(yī)院、工業(yè)控制和文物保護(hù)等領(lǐng)域都對(duì)溫濕度測(cè)量有著一定的需求?;诖?,研究開發(fā)出一款成本低、可靠性優(yōu)越的溫濕度系統(tǒng)便顯得尤為重要。此次設(shè)計(jì)中,將以STM32 為基礎(chǔ),展開多通道溫濕度測(cè)量?jī)x的硬件、軟件設(shè)計(jì)工作,并進(jìn)行相應(yīng)的調(diào)試,以便于獲得可用于實(shí)踐工作中的高可靠性測(cè)量?jī)x。
現(xiàn)代人要求的基本生活條件越來(lái)越嚴(yán)格,特別是溫濕度的問題直接關(guān)系到整個(gè)社會(huì),甚至威脅到人類和其他動(dòng)植物的生存條件。故而在農(nóng)業(yè)、林業(yè)、環(huán)境保護(hù)等工作中,往往要求獲取精確的環(huán)境溫濕度測(cè)量信息。鄧芳明等以射頻識(shí)別技術(shù)傳感標(biāo)簽為基礎(chǔ)研發(fā)出了一種農(nóng)田土壤環(huán)境監(jiān)測(cè)方式,并設(shè)計(jì)了一種無(wú)源射頻識(shí)別溫濕度傳感標(biāo)簽。張露荷等對(duì)環(huán)境的溫濕度傳感器信息予以提取,以探討溫濕度傳感器在高寒草原上土地氮礦化監(jiān)測(cè)中的作用。已有學(xué)者對(duì)不同類型的土壤溫度、濕度進(jìn)行了計(jì)算,并對(duì)不同類型的覆蓋方法進(jìn)行了研究。在工程施工中,土地的溫度、濕度都是采用電子儀器進(jìn)行監(jiān)測(cè)的。侯偉等采用虛擬儀器方法,用51 單片機(jī)建立了一個(gè)作用于農(nóng)田的土壤溫濕度系統(tǒng),完成了對(duì)單塊土地溫濕度的計(jì)算和顯示,但系統(tǒng)的測(cè)試通道數(shù)目較小,且并行處理功能較弱。將STM32 單片機(jī)和51 單片機(jī)以及DSP 處理器進(jìn)行相關(guān)比較,STM32 單片機(jī)在計(jì)算力、資源方面的優(yōu)勢(shì)更為顯著。王子權(quán)等曾經(jīng)研究借助PWM 輸出功能以便于完成調(diào)節(jié)LED 燈亮度的功能。黃琦等采用STM32,根據(jù)分布式光纖拉曼測(cè)溫系統(tǒng)中定標(biāo)光纖、雪崩光電二極管的溫度控制需要,特意設(shè)計(jì)了一個(gè)精密恒溫控制管理系統(tǒng)。
系統(tǒng)的整體構(gòu)成中重點(diǎn)涵蓋的內(nèi)容有8 對(duì)傳感器,即溫、濕度傳感器各有8 個(gè),溫度傳感器主要借助單總線從而實(shí)現(xiàn)和單片機(jī)的連接;PCF8591A 對(duì)應(yīng)的是濕度傳感器的前4 個(gè),PCF8591B 對(duì)應(yīng)的是濕度傳感器的后4 個(gè)。PCF8591 利用自身的IIC 總線實(shí)現(xiàn)和單片機(jī)的相連。
單片機(jī)在正常運(yùn)行期間,需要有基本電路進(jìn)行支撐,其中復(fù)位以及晶振電路均屬于基本電路的范疇,設(shè)置串口電路的原因主要有2 個(gè)方面:一方面是在程序編譯完成并制作為HEX/BIN 文件后,將程序存入單片機(jī)芯片中;另一方面是要和上位機(jī)進(jìn)行正常的通信交流。利用按鍵的形式對(duì)溫濕度的報(bào)警值進(jìn)行有效調(diào)控。針對(duì)裝置中的8 個(gè)傳感器組,都要為其增設(shè)LED 指示燈,當(dāng)燈亮起時(shí),則意味著相應(yīng)的傳感器組處于工作狀態(tài)。除此之外,還需要將報(bào)警信號(hào)的功率放大,這一工作的目的是促使報(bào)警信號(hào)能夠及時(shí)響起,以便于相關(guān)工作者可以盡快感知到異常情況。
2.2.1 SEN0114 土壤濕度傳感器
SEN0114 濕度傳感器,從本質(zhì)上來(lái)講屬于一種較為簡(jiǎn)單的水分傳感器,其作用是能夠測(cè)試土壤中的含水量。如果土壤出現(xiàn)缺水問題,傳感器輸出值將相應(yīng)降低,否則將增加。借助于四線制系統(tǒng),其中VCC 和GND 分別代表電源的高電平和低電平。若檢測(cè)的濕度參數(shù)值和設(shè)定值之間有出入,低于設(shè)定值,則DO 便會(huì)輸出高電平,反之則會(huì)輸出低電平。AO 相當(dāng)于濕度模擬量的輸出端,這一端口和PCF8591 有所連接,二者連接的目的在于完成模擬量向數(shù)字量變換。
2.2.2 PCF8591 轉(zhuǎn)換芯片
A/D 轉(zhuǎn)換模塊中包括2 個(gè)PCF8591 芯片,并且其芯片中有IIC 總線,總線占據(jù)了STM32 的GPIO 端口,故而2 個(gè)芯片都會(huì)用到IIC 總線。芯片中包含的A0、A1 以及A2 都是器件地址配置端口。如果PCF8591A配置為0×01 的情況下,則A0 便會(huì)輸出高電平,其余2個(gè)便會(huì)輸出低電平。對(duì)于PCF8591B 而言,當(dāng)其配置為0×00 的情況下,這幾個(gè)端口都會(huì)輸出低電平。STN32其能夠借助IIC 通信技術(shù)實(shí)現(xiàn)連接操作,轉(zhuǎn)換芯片的模擬量輸入端口是AIN0—AIN4,基于這一情況來(lái)看,PCF8591A 以及PCF8591B 都會(huì)和4 個(gè)濕度傳感器相連接。
2.2.3 DS18B20 溫度傳感器
這一傳感器的電路較為簡(jiǎn)單,并且在工作狀態(tài)下表現(xiàn)出的溫度測(cè)量精確性比較優(yōu)良,其按照單總線通信協(xié)議運(yùn)行工作,能夠借助STM32 的通用GPIO 引腳完成和該傳感器實(shí)現(xiàn)通信。該傳感器共包含8 個(gè)單總線引腳,分別為PB0、PB1、PC5、PC6、PA0、PA1、PE2 和PE3。
設(shè)計(jì)過程中,將觸摸屏的大小選定為4.3 英寸,類別為電容型,觸摸屏的分辨率參數(shù)為800×480 像素,該顯示屏在顯示信息時(shí),應(yīng)用的是16 位真彩。該觸摸屏和電阻類型的觸摸屏相比較來(lái)講,前者僅需工作人員輕微用手指觸碰便可以激活,多點(diǎn)觸摸的難度等級(jí)比較小,其應(yīng)用的是鋼化玻璃材料,硬度比較高,不易損壞,可以使用較長(zhǎng)一段時(shí)間。
在設(shè)計(jì)按鍵的過程中,一共設(shè)計(jì)了7 個(gè)按鍵,其中包括1 個(gè)復(fù)位按鍵、3 個(gè)濕度按鍵以及3 個(gè)溫度按鍵。每個(gè)按鍵代表的含義各不相同,復(fù)位按鍵是將原先設(shè)置的參數(shù)歸為初始設(shè)定值。3 個(gè)濕度按鍵分別為濕度×10、濕度×1、濕度×0.1,這3 個(gè)按鍵的含義分別代表的濕度變化率為1、0.1 以及0.01。3 個(gè)溫度按鍵的含義與濕度按鍵相似,在此不作過多闡述。
通過D2822A 的輔助,可以實(shí)現(xiàn)對(duì)單聲道音頻功率的放大,從而達(dá)到提高系統(tǒng)噪聲的目的。如圖1 所示,輸入端為Input,這一端口可以實(shí)現(xiàn)和音頻設(shè)備的連接。
圖1 音頻功率放大電路
系統(tǒng)的設(shè)計(jì)工作包括任務(wù)組態(tài)、人機(jī)界面設(shè)計(jì)等。
系統(tǒng)任務(wù)主要包括:任務(wù)創(chuàng)建功能的啟動(dòng)任務(wù)、觸摸屏任務(wù)的觸控任務(wù)、人機(jī)界面的顯示與刷新任務(wù)、報(bào)警任務(wù)boom_task、按鍵的檢測(cè)任務(wù)key_task、系統(tǒng)工作指示任務(wù)led_task、溫濕度測(cè)量任務(wù)THmer_task1—THmer_task8。
人機(jī)界面的設(shè)計(jì)工作十分重要,其設(shè)計(jì)質(zhì)量的高低直接關(guān)系到系統(tǒng)工作效率。在本設(shè)計(jì)中,主要設(shè)計(jì)了2 種界面,一種是報(bào)警值設(shè)置界面,另一種是參數(shù)值顯示界面,這2 個(gè)界面不僅是相互獨(dú)立的,而且也是互相關(guān)聯(lián)的,在設(shè)計(jì)期間,需要考慮到界面切換的問題,這樣做是為了更好地進(jìn)行參數(shù)設(shè)置以及參數(shù)觀察。
3.2.1 報(bào)警值設(shè)置界面
在設(shè)計(jì)人機(jī)界面時(shí),需要將溫濕度報(bào)警值設(shè)定為系統(tǒng)初始化界面,也就是在系統(tǒng)啟動(dòng)之初,便會(huì)首先進(jìn)入到這一界面中來(lái),不用工作人員進(jìn)行相應(yīng)的操作,只要啟動(dòng)系統(tǒng),該界面便會(huì)展現(xiàn)出來(lái)。
3.2.2 參數(shù)值顯示界面
這一界面的主要作用是能夠展現(xiàn)8 個(gè)通道中的溫濕度參數(shù)變化情況。如果監(jiān)測(cè)到數(shù)值后,顯示屏中對(duì)應(yīng)的位置便會(huì)顯現(xiàn)出這一參數(shù)值。若沒有檢測(cè)到相關(guān)數(shù)值,則顯示屏便會(huì)顯現(xiàn)“NULL”。
3.2.3 互斥信號(hào)量配置
對(duì)于PCF8591A 以及PCF8591B 來(lái)講,因?yàn)檫@2個(gè)芯片需要共同用到IIC 總線,但是總線只有1 個(gè),所以每次讀取數(shù)據(jù)時(shí),無(wú)法同時(shí)完成,單次只能讀取單個(gè)芯片上的數(shù)據(jù)信息。為了有效防止共享總線過程中出現(xiàn)數(shù)據(jù)串聯(lián)的異?,F(xiàn)象,需要設(shè)計(jì)互斥信號(hào)量,這樣做的目的是充分避免優(yōu)先級(jí)出現(xiàn)反轉(zhuǎn)的情況。與此同時(shí),還要確保單片機(jī)在每一個(gè)通信周期中,僅與其中1 個(gè)芯片進(jìn)行交流。
在程序設(shè)計(jì)過程中,還需要增加一個(gè)變量,即TASK-FLAG,這一變量設(shè)置的目的是對(duì)所有任務(wù)狀態(tài)加以記錄,以便于充分掌握每個(gè)任務(wù)的具體情況。變量位數(shù)為32。借助對(duì)其中部分位的邏輯功能配置處理,便能夠?qū)崿F(xiàn)對(duì)相關(guān)任務(wù)運(yùn)行狀態(tài)的標(biāo)志。
系統(tǒng)整體程序流程如圖2 所示。從圖2 中可以看出,程序開始,需要先進(jìn)行初始化,其中包括程序庫(kù)初始化、LED 初始化等諸多初始化內(nèi)容。當(dāng)UCOS 在實(shí)現(xiàn)初始化操作之后,接下來(lái)會(huì)開始start_task 任務(wù),并創(chuàng)建系統(tǒng)所要用到的其他任務(wù),在任務(wù)運(yùn)行過程完成之后,將之掛起。任務(wù)均放置在1 個(gè)任務(wù)池當(dāng)中。emwin_task 則需要實(shí)現(xiàn)人機(jī)界面的顯示工作。當(dāng)初始化操作結(jié)束之后,系統(tǒng)會(huì)自動(dòng)到達(dá)報(bào)警值界面。相關(guān)工作人員需要在該界面設(shè)定合理的參數(shù)值,并觸碰“START”按鈕開始工作,觸碰“ENTER”按鈕可以到達(dá)數(shù)值顯示界面。在該界面中觸碰“RETURN”,則可以返回原先的界面。
圖2 系統(tǒng)整體流程
溫濕度測(cè)量任務(wù)的重點(diǎn)工作是調(diào)用溫濕度測(cè)量有關(guān)的函數(shù),并獲取相關(guān)數(shù)據(jù)信息,再借助相應(yīng)的數(shù)據(jù)處理措施,確保溫濕度相關(guān)數(shù)值可以正常反映在觸摸屏界面上。在這一流程中,會(huì)涉及變量err,這是操作系統(tǒng)中必然會(huì)存在的,其作用是存放程序運(yùn)行有偏差的內(nèi)容,溫度測(cè)量函數(shù)確保共享數(shù)據(jù)總線,故而在進(jìn)行相關(guān)函數(shù)的調(diào)用時(shí),不用設(shè)計(jì)互斥信號(hào)量的判斷內(nèi)容。但是濕度測(cè)量函數(shù)必須進(jìn)行設(shè)計(jì),增加關(guān)于互斥信號(hào)量的判斷內(nèi)容。
實(shí)驗(yàn)中涉及了很多設(shè)備,包括溫濕度傳感器、發(fā)射機(jī)、PCF8591 芯片等諸多內(nèi)容。在這些內(nèi)容中,為了得到更精確的模擬信號(hào),發(fā)射機(jī)和溫度傳感器相互連接。
在此基礎(chǔ)上,利用該傳送器將模擬信號(hào)傳送給PCF8591,再進(jìn)行仿真變換,獲取土壤的相對(duì)濕度和溫度信息;界面顯示良好,按鍵操作正確,報(bào)警和數(shù)據(jù)顯示接口良好,檢測(cè)工作正常,溫度、濕度等性能良好;電源信號(hào)放大器工作得很好,當(dāng)溫濕度測(cè)量達(dá)到告警閾值后可以產(chǎn)生響度較大的報(bào)警信號(hào)。
單片機(jī)用到的電源電壓為3.3 V,要求供電電壓不可超過這一數(shù)值水平,否則將會(huì)對(duì)芯片造成一定程度的破壞。接上電之后,系統(tǒng)便會(huì)開啟,借助LED 燈來(lái)觀察各個(gè)溫濕度傳感器組的工作情況。系統(tǒng)需要檢測(cè)溫濕度傳感器是否正常工作,若正常,可以進(jìn)行溫濕度數(shù)值采集工作,并將相關(guān)數(shù)據(jù)顯示在屏幕上;若不正常,則會(huì)提示相關(guān)問題。溫度值與濕度值分別為30 ℃、33%,以100 ms 為時(shí)間間隔期,每隔一個(gè)間隔期便刷新一次數(shù)據(jù),以便于實(shí)時(shí)顯示動(dòng)態(tài)的數(shù)據(jù)值,若溫濕度傳感器出現(xiàn)異常情況,則會(huì)提示無(wú)設(shè)備等內(nèi)容。
從現(xiàn)場(chǎng)的檢查中,可以看到本次設(shè)計(jì),顯示的數(shù)字精確度較低,并且數(shù)字的刷新率比較慢,所以在數(shù)字的顯示上需要進(jìn)一步完善。
在此次研究中,以STM32F103ZET6 為基礎(chǔ),并聯(lián)合UCOS 操作系統(tǒng)展開了相關(guān)設(shè)計(jì)工作,嘗試設(shè)計(jì)出多通道并行檢測(cè)溫濕度的裝置。設(shè)計(jì)的檢測(cè)裝置儀器含有8 個(gè)通道,這些通道均能夠?qū)崿F(xiàn)并行工作目標(biāo)。這一裝置儀器除了能夠用來(lái)對(duì)土壤的溫度、濕度值進(jìn)行檢測(cè)之外,同樣也可以用來(lái)進(jìn)行環(huán)境信息的檢測(cè),同時(shí)也可以用于綠植等的檢測(cè)領(lǐng)域。結(jié)合對(duì)不同對(duì)象的檢測(cè),可以適當(dāng)?shù)卣{(diào)整通道數(shù)量,同時(shí)也可以將這一裝置儀器作為基礎(chǔ),展開優(yōu)化改造,增設(shè)其他檢測(cè)功能模塊,以便于更好地適應(yīng)實(shí)踐工作。