占華林,陳亮亮,張配陽,諸麗芳,于子正
(江西科技師范大學(xué),江西 南昌330013)
在日常的生產(chǎn)生活當(dāng)中,對環(huán)境溫度的檢測變得日益重要。在較為早期的社會生產(chǎn)生活中,溫度的測量主要采用的是人工溫度計(jì)量法,這種獲取數(shù)據(jù)的方法主要是根據(jù)以往的經(jīng)驗(yàn)和常識,與測量人體體溫類似,在需要了解溫度的周圍環(huán)境時(shí),在附近安置溫度表,一段時(shí)間后,再通過人工取出之前放置的儀表,根據(jù)人為讀數(shù),進(jìn)而去了解倉庫的溫度狀況。在儲物倉庫的日常安全工作中監(jiān)測倉庫環(huán)境是至關(guān)重要的一個(gè)部分[1]。環(huán)境指標(biāo)中的溫度指標(biāo)是倉庫安全至關(guān)重要的一個(gè)指標(biāo),它可直接影響倉庫所存儲貨物的品質(zhì)。因此掌控倉庫實(shí)時(shí)溫度信息就變得尤為重要。傳統(tǒng)的溫度測量方法如干球溫度測量法、濕球溫度測量法、黑球溫度測量法步驟太過繁瑣[2-3],且耗費(fèi)時(shí)間長,不適合做日常環(huán)境溫度監(jiān)測。
我國作為發(fā)展中國家在對倉庫環(huán)境溫度監(jiān)測方面稍稍慢于一些發(fā)達(dá)國家,由于當(dāng)時(shí)的條件,廣大人民無法意識到倉庫存儲的意義。在上世紀(jì)80年代我國開始了對溫度監(jiān)測的研究。在技術(shù)上,以單一環(huán)境監(jiān)測為主,尚未結(jié)合化發(fā)展,與發(fā)達(dá)國家相比,還存在較大差距。具體體現(xiàn)在裝備設(shè)施不健全,產(chǎn)業(yè)化落后,環(huán)境控制水平不足。但是我國的技術(shù)人員學(xué)習(xí)能力強(qiáng),在國家政策的引領(lǐng)下積極實(shí)踐,我國倉庫環(huán)境溫度監(jiān)測的科技體系逐漸形成,雖然我國溫度監(jiān)測離工廠化還有很長一段路要走,在生產(chǎn)實(shí)際中依舊會出現(xiàn)許多問題,但這也只是暫時(shí)的,相信通過其他行業(yè)的發(fā)展,慢慢地能夠帶動該領(lǐng)域的發(fā)展,并逐步趕超發(fā)達(dá)國家。
基于以上背景,文章設(shè)計(jì)基于STM32單片機(jī)的倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)與控制。該系統(tǒng)可以顯示倉庫實(shí)時(shí)溫度,并且會在溫度高于設(shè)定值時(shí)發(fā)出警報(bào)并且啟動控制模塊降低環(huán)境溫度。
倉庫溫度監(jiān)測系統(tǒng)以STM32為主控制器[4],將數(shù)字溫度傳感器DS18B20采集的數(shù)據(jù)顯示在TFTLCD顯示屏界面,在溫度高于設(shè)定溫度時(shí),單片機(jī)控制L9110S驅(qū)動電機(jī)上葉片轉(zhuǎn)動達(dá)到加速空氣流通,達(dá)到降低環(huán)境溫度的效果,實(shí)現(xiàn)環(huán)境溫度的自動控制。
從圖1系統(tǒng)框圖中可得出如下子模塊:
圖1 系統(tǒng)方案框圖
(1)單片機(jī)最小系統(tǒng):由32位STM32構(gòu)成的單片機(jī)最小系統(tǒng)。
(2)溫度采集模塊:通過數(shù)字溫度感應(yīng)器DS18B20采集溫度數(shù)據(jù),將數(shù)據(jù)送入單片機(jī)最小系統(tǒng)。數(shù)字溫度傳感器省略ADC轉(zhuǎn)換過程,單片機(jī)發(fā)送相應(yīng)的命令進(jìn)行配置,讀取相關(guān)的寄存器,再對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,即可獲得溫度數(shù)據(jù)。
(3)蜂鳴器報(bào)警:當(dāng)溫度超過一定閾值時(shí),單片機(jī)發(fā)送信息驅(qū)動蜂鳴器[5]。
(4)電機(jī)驅(qū)動模塊:當(dāng)倉庫溫度超過一定閾值時(shí),單片機(jī)發(fā)送信息給L9110S控制模塊驅(qū)動電機(jī)轉(zhuǎn)動。
(5)LCD顯示模塊。
用戶可以根據(jù)實(shí)際需要(如,主頻、存儲器、IO引腳數(shù)),選擇不同系列STM32單片機(jī)。STM32單片機(jī)內(nèi)部含有閃存32-512KB和隨機(jī)存儲器6-64KB,可用于系統(tǒng)SoC運(yùn)行簡單的應(yīng)用程序,如果運(yùn)行復(fù)雜的任務(wù),可以擴(kuò)展片外Flash和RAM。選用STM32系列單片機(jī)作為最小系統(tǒng),如圖2所示。
圖2 STM32最小系統(tǒng)
3.1.1 晶體振蕩電路
晶體振蕩電路由晶振、無極性電容組成。晶體振蕩電路輔助STM32單片機(jī)片內(nèi)PLL模塊,在分頻器模塊的作用下產(chǎn)生片內(nèi)需要的各種時(shí)鐘信號。
3.1.2 復(fù)位電路
向STM32復(fù)位引腳持續(xù)輸入5個(gè)以上的振蕩周期,可以使STM32內(nèi)部寄存器恢復(fù)初始值。
3.1.3 電源供電
向STM32提供穩(wěn)定直流電壓。
3.1.4 外接串口電路
開發(fā)環(huán)境直接通過串口調(diào)試、下載數(shù)據(jù)、燒錄程序到STM32單片機(jī)。
溫度傳感器DS18B20采集倉庫環(huán)境的溫度,由于溫度的升降導(dǎo)致電阻發(fā)生變化,將這一變化相應(yīng)轉(zhuǎn)成電壓變化,經(jīng)A/D轉(zhuǎn)化器轉(zhuǎn)化后,傳輸?shù)絊TM32單片機(jī),再經(jīng)過校正、查表得到實(shí)際測量的溫度值[6]。DS18B20有三個(gè)引腳,GND(接地)、I/O(數(shù)據(jù)輸入/輸出)、VDD(電源),主要由溫度采集器、配置寄存器、ROM、溫度報(bào)警觸發(fā)器等四部分組成。數(shù)據(jù)信息傳輸只通過一根I/O線進(jìn)行,讀取溫度信息要經(jīng)歷三條指令,第一條發(fā)送復(fù)位指令,第二條發(fā)送ROM指令,第三條發(fā)送RAM指令。溫度寄存器的數(shù)據(jù)以補(bǔ)碼形式存放,補(bǔ)碼值乘以0.0625獲得實(shí)際溫度值。
采用晶體管Q9012作為開關(guān)管來驅(qū)動蜂鳴器發(fā)聲[7]。如圖3所示,當(dāng)外部環(huán)境變化映射至P10,引腳信號變成低電平,晶體管工作在“開”的工作狀態(tài),蜂鳴器發(fā)出聲音。
圖3 蜂鳴器報(bào)警電路原理
TFTLCD(薄膜晶體管顯示器)由于價(jià)格低廉、操作容易等特點(diǎn),被廣泛使用。本論文采用LCD1602液晶顯示屏來顯示倉庫溫度等信息。
LCD顯示器具體分為兩種:
(1)字段顯示:輸出相應(yīng)的電平信號至相應(yīng)的管腳處,以顯示相應(yīng)的數(shù)字或字母。
(2)字符顯示是根據(jù)需要顯示基本字符。
本文選用LCD1602作為顯示器件輸出信息,可以顯示2行16個(gè)字符,如圖4所示。
圖4 LCD1602液晶顯示電路原理
當(dāng)檢測倉庫環(huán)境溫度升高時(shí),電機(jī)驅(qū)動模塊L9110S驅(qū)動電機(jī)運(yùn)轉(zhuǎn),加速對流從而降低環(huán)境溫度。L9110S屬于兩通道推挽式對電機(jī)進(jìn)行控制和驅(qū)動專用集成電路,解決分散元件控制電機(jī)的干擾性,內(nèi)含鉗位二極管防止感性負(fù)載的反向電流,廣泛應(yīng)用于控制直流電機(jī)、步進(jìn)電機(jī)等。
軟件實(shí)現(xiàn)的主要功能有:
圖5 軟件設(shè)計(jì)流程圖
軟件設(shè)計(jì)溫度監(jiān)控的核心部分需通過循環(huán)的方式采集數(shù)據(jù),并進(jìn)行數(shù)據(jù)對比處理。然后對相應(yīng)狀況判斷處理。
文章提出基于STM32單片機(jī)的倉庫溫度監(jiān)測系統(tǒng)設(shè)計(jì)與控制,以STM32為核心控制器,將溫度傳感器采集到的信息在LCD屏上實(shí)時(shí)顯示,并且對溫度值進(jìn)行判斷,超過預(yù)設(shè)值將啟動報(bào)警和控制電路。當(dāng)溫度降低到小于設(shè)定值時(shí)報(bào)警電路和控制電路停止工作。