何建新
基于AT89C52單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)
何建新
(黃岡職業(yè)技術(shù)學(xué)院電子信息學(xué)院,湖北 黃岡 438002)
提出一種基于AT89C52單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng),旨在實(shí)時監(jiān)測糧倉內(nèi)多個點(diǎn)位的溫度信息,為糧食儲存安全提供保障。系統(tǒng)采用AT89C52單片機(jī)作為核心控制器,結(jié)合4路DS18B20溫度檢測模塊進(jìn)行溫度采集。軟件設(shè)計(jì)中主程序負(fù)責(zé)系統(tǒng)的初始化、各子程序的調(diào)用和執(zhí)行順序控制。讀出溫度子程序負(fù)責(zé)從DS18B20中讀取溫度數(shù)據(jù),而計(jì)算溫度子程序負(fù)責(zé)對讀取到的溫度數(shù)據(jù)進(jìn)行處理,得到實(shí)際溫度值。為確保系統(tǒng)的穩(wěn)定性和準(zhǔn)確性,對系統(tǒng)進(jìn)行了功能測試、穩(wěn)定性測試和準(zhǔn)確性測試。測試結(jié)果表明,系統(tǒng)能夠順利讀取DS18B20溫度檢測模塊采集到的溫度數(shù)據(jù),具有良好的穩(wěn)定性和準(zhǔn)確性。同時,通過對系統(tǒng)延時進(jìn)行優(yōu)化,確保系統(tǒng)能夠?qū)崟r更新溫度數(shù)據(jù),滿足實(shí)際監(jiān)控需求。
AT89C52單片機(jī);糧食;溫度監(jiān)控;系統(tǒng)
糧食在糧倉存放過程中溫度的變化對于糧食的質(zhì)量影響較大。在傳統(tǒng)方法中對糧倉的溫度監(jiān)測通常是選擇一個統(tǒng)計(jì)溫度,但對于空間較大的糧倉來說,這種方法并不能準(zhǔn)確反映各點(diǎn)溫度的變化情況。如果不能及時發(fā)現(xiàn)糧倉內(nèi)的溫度變化,會在保管過程中出現(xiàn)各種糧食質(zhì)量問題[1]。
因此,設(shè)計(jì)一種基于單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng),能夠?qū)崟r監(jiān)測糧倉內(nèi)各點(diǎn)溫度變化并自動報(bào)警,能夠自動調(diào)節(jié)糧食的保鮮環(huán)境,可以提高糧食的質(zhì)量及維持糧倉內(nèi)穩(wěn)定的環(huán)境溫度,從而有助于減少糧食的損失和改善人們的生活質(zhì)量。
圖1 糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)的總體框圖
構(gòu)建一個多路溫度檢測的智能化監(jiān)測與控制系統(tǒng),如圖1所示,主要由以下幾個部分組成。
AT89C52單片機(jī):作為整個系統(tǒng)的數(shù)據(jù)處理和控制主單元,負(fù)責(zé)接收 DS18B20 溫度傳感器的數(shù)據(jù),處理數(shù)據(jù)并通過 NI-VISA 與其他設(shè)備進(jìn)行通信。同時,根據(jù)設(shè)定的溫度閾值,控制 LED 報(bào)警燈和蜂鳴器發(fā)出警報(bào)[2]。
DS18B20 溫度傳感器:多個 DS18B20 作為溫度采集設(shè)備,通過單片機(jī)與整個系統(tǒng)相連。每個傳感器可以進(jìn)行獨(dú)立的溫度采集,提高整個系統(tǒng)的監(jiān)測精度和實(shí)時性。
人機(jī)互動設(shè)置按鍵:通過設(shè)置按鍵,用戶可以根據(jù)需要對系統(tǒng)進(jìn)行配置,例如設(shè)定溫度閾值、選擇特定溫度傳感器等。這些設(shè)置將通過單片機(jī)實(shí)現(xiàn)對整個系統(tǒng)的控制。
LED 和蜂鳴器報(bào)警裝置:若干個 LED 和 1 個蜂鳴器作為報(bào)警裝置,當(dāng)某個 DS18B20 溫度傳感器檢測到的溫度超過設(shè)定閾值時,相應(yīng)的 LED 會亮起,蜂鳴器會發(fā)出警報(bào)。這樣可以及時提醒用戶注意潛在的溫度問題,防止事故的發(fā)生。
NI-VISA:作為硬件系統(tǒng)與其他設(shè)備的橋梁,實(shí)現(xiàn)單片機(jī)與上位機(jī)之間的通信,方便數(shù)據(jù)傳輸和遠(yuǎn)程控制。
Labview 上位機(jī)編程:通過 Labview 軟件對上位機(jī)進(jìn)行編程,實(shí)現(xiàn)對整個系統(tǒng)的遠(yuǎn)程監(jiān)控和控制。用戶可以通過上位機(jī)查看實(shí)時溫度數(shù)據(jù)、設(shè)定溫度閾值、選擇特定溫度傳感器等。同時,上位機(jī)還可以對溫度數(shù)據(jù)進(jìn)行分析和處理,生成報(bào)表以供用戶查看。
通過以上各個模塊的相互配合,可以實(shí)現(xiàn)對多路溫度檢測的智能化監(jiān)測與控制,實(shí)現(xiàn)了全面、實(shí)時、便捷的糧倉多點(diǎn)溫度監(jiān)控,為生產(chǎn)管理和決策提供了可靠的數(shù)據(jù)支持,保障了糧食的質(zhì)量和安全。同時,該系統(tǒng)具有簡單、易于維護(hù)和成本低等優(yōu)點(diǎn),使得它在農(nóng)業(yè)領(lǐng)域有很高的實(shí)用價值。在未來的發(fā)展中,可以結(jié)合新技術(shù)和新理念,進(jìn)一步提升系統(tǒng)的性能和功能,以更好地服務(wù)于農(nóng)業(yè)生產(chǎn)和糧食儲存管理。
圖2 糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)電路原理圖
根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo),在圖2右下角,采用四個人機(jī)互動設(shè)置按鍵[3]。這四個按鍵分別具有不同的功能,包括溫度點(diǎn)切換、頁面切換、加、減,以方便用戶對系統(tǒng)進(jìn)行設(shè)置和操作。
溫度點(diǎn)切換按鍵:通過此按鍵,用戶可以在不同的溫度采集點(diǎn)之間切換。這有助于用戶了解糧倉內(nèi)各個區(qū)域的溫度狀況,及時發(fā)現(xiàn)異常溫度變化。通過切換溫度點(diǎn),用戶能夠監(jiān)控糧倉內(nèi)每個采集點(diǎn)的實(shí)時溫度數(shù)據(jù)。
頁面切換按鍵:此按鍵用于在系統(tǒng)的不同頁面之間進(jìn)行切換,如實(shí)時溫度監(jiān)測頁面、歷史數(shù)據(jù)查詢頁面、系統(tǒng)設(shè)置頁面等。用戶可以根據(jù)需要輕松訪問和操作各個功能頁面,使得系統(tǒng)操作更加直觀和便捷。
加按鍵:用戶可以通過加按鍵對系統(tǒng)進(jìn)行相關(guān)設(shè)置的增加操作,例如在設(shè)定溫度閾值時,按下加按鍵可逐步增加閾值,或在選擇溫度采集點(diǎn)時,按下加按鍵可逐個向后切換。
減按鍵:與加按鍵相對應(yīng),減按鍵用于進(jìn)行相關(guān)設(shè)置的減少操作。如在設(shè)定溫度閾值時,按下減按鍵可逐步降低閾值;在選擇溫度采集點(diǎn)時,按下減按鍵可逐個向前切換。
通過這四個人機(jī)互動設(shè)置按鍵,用戶可以輕松地在溫度采集點(diǎn)之間切換,在功能頁面之間切換,以及對系統(tǒng)參數(shù)進(jìn)行加減操作。這使單片機(jī)糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)更加易用、高效,有助于管理員對糧倉內(nèi)的溫度狀況進(jìn)行實(shí)時監(jiān)控和管理,確保糧食安全儲存。
根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo),在圖2中,采用四路 DS18B20 溫度檢測模組,主要由U2、U3、U4、U5,四個DS18B20測溫器件構(gòu)成。這些測溫器件將糧倉內(nèi)不同位置的溫度信息實(shí)時傳輸給單片機(jī)進(jìn)行數(shù)據(jù)處理[4]。
DS18B20 傳感器特點(diǎn):DS18B20 是一款數(shù)字式溫度傳感器,具有較高的測溫精度和穩(wěn)定性。它可以在 -55℃ 至 +125℃ 的范圍內(nèi)測量溫度,分辨率可配置為 9 位至 12 位。其數(shù)字式輸出信號具有較強(qiáng)的抗干擾能力,適用于各種環(huán)境條件下的溫度檢測。
四路 DS18B20 溫度檢測模組:四個 DS18B20 傳感器分別位于糧倉的不同位置,用于實(shí)時監(jiān)測糧倉內(nèi)多個區(qū)域的溫度變化。通過這種多點(diǎn)溫度監(jiān)測方式,能夠更全面地了解糧倉內(nèi)的溫度狀況,為糧食安全儲存提供保障。
數(shù)據(jù)傳輸與處理:每個 DS18B20 傳感器通過與單片機(jī)相連,傳輸測量到的溫度信息。單片機(jī)接收到各個傳感器的溫度數(shù)據(jù)后,進(jìn)行數(shù)據(jù)處理和分析,如計(jì)算平均溫度、檢測溫度異常等。處理后的數(shù)據(jù)可以用于實(shí)時監(jiān)控、報(bào)警或進(jìn)行歷史數(shù)據(jù)分析。
系統(tǒng)擴(kuò)展性:采用 DS18B20 傳感器的多點(diǎn)溫度監(jiān)控系統(tǒng)具有較好的擴(kuò)展性。當(dāng)需要增加更多的溫度檢測點(diǎn)時,只需增加相應(yīng)數(shù)量的 DS18B20 傳感器并連接至單片機(jī)即可。這種靈活的擴(kuò)展方式使系統(tǒng)能夠適應(yīng)不同規(guī)模和需求的糧倉溫度監(jiān)測場景。
通過采用四路 DS18B20 溫度檢測模組,單片機(jī)糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)實(shí)現(xiàn)了糧倉內(nèi)多個區(qū)域的實(shí)時溫度監(jiān)測,有助于及時發(fā)現(xiàn)異常溫度變化,確保糧食的安全儲存。同時,系統(tǒng)具有良好的擴(kuò)展性,能夠滿足不同規(guī)模糧倉的溫度監(jiān)控需求。
采用 AT89C52單片機(jī)作為核心處理器,搭配 LCD1602 液晶顯示模塊、聲光報(bào)警模塊等構(gòu)成一個高效、穩(wěn)定的糧倉溫度監(jiān)控系統(tǒng)[5]。
AT89C52 單片機(jī):AT89C52 是一款8位單片機(jī),具有較高的性能和穩(wěn)定性,適合應(yīng)用于溫度監(jiān)控系統(tǒng)。在本系統(tǒng)中,單片機(jī)負(fù)責(zé)接收溫度傳感器采集的數(shù)據(jù),進(jìn)行數(shù)據(jù)處理和分析,并通過液晶顯示模塊實(shí)時顯示溫度信息。同時,單片機(jī)還負(fù)責(zé)根據(jù)設(shè)定的溫度閾值控制聲光報(bào)警模塊發(fā)出警報(bào)。
LCD1602 液晶顯示模塊:LCD1602 是一款16×2字符液晶顯示模塊,具有較高的顯示清晰度和穩(wěn)定性。在本系統(tǒng)中,LCD1602 用于實(shí)時顯示糧倉內(nèi)各個溫度檢測點(diǎn)的溫度數(shù)據(jù),方便用戶直觀地了解糧倉內(nèi)的溫度狀況。此外,LCD1602 還可以顯示系統(tǒng)設(shè)置菜單,便于用戶進(jìn)行參數(shù)設(shè)置和功能操作。
聲光報(bào)警模塊:聲光報(bào)警模塊主要由蜂鳴器和 LED 燈組成,用于向用戶發(fā)出溫度異常警報(bào)。當(dāng)某個溫度檢測點(diǎn)的溫度超過設(shè)定閾值時,單片機(jī)控制蜂鳴器發(fā)出聲音警報(bào),同時 LED 燈閃爍,以提醒用戶注意糧倉內(nèi)的溫度異常。聲光報(bào)警模塊的設(shè)置可根據(jù)用戶需求進(jìn)行自定義調(diào)整。
通信接口:本系統(tǒng)可以通過串口、USB 或者無線通信模塊與上位機(jī)或其他外部設(shè)備進(jìn)行數(shù)據(jù)交互。通過通信接口,用戶可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和控制,以及數(shù)據(jù)的導(dǎo)出和備份等功能。這大大提高了系統(tǒng)的實(shí)用性和靈活性。
基于AT89C52 單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)具有實(shí)時監(jiān)測、高精度測溫、聲光報(bào)警、人機(jī)交互等功能,能夠有效地預(yù)防因溫度異常導(dǎo)致的糧食安全問題。同時,系統(tǒng)具有良好的擴(kuò)展性和靈活性,可以根據(jù)不同規(guī)模和需求的糧倉進(jìn)行定制??梢詽M足現(xiàn)代農(nóng)業(yè)生產(chǎn)和糧食儲存的需求,具有廣泛的應(yīng)用前景。
主程序主要負(fù)責(zé)系統(tǒng)的初始化、各子程序的調(diào)用和執(zhí)行順序控制。見圖3,具體流程如下。
系統(tǒng)初始化:配置單片機(jī)的工作模式,包括定時器、中斷、串口通信等相關(guān)參數(shù);初始化液晶顯示屏(LCD);配置DS18B20的工作模式。程序進(jìn)行各個傳感器的初始化,包括DS18B20溫度傳感器的精度設(shè)置、開始溫度轉(zhuǎn)換等。然后進(jìn)入一個循環(huán)中,每1秒鐘進(jìn)行一次溫度測量。在循環(huán)中,程序通過多路復(fù)用器來選擇每個傳感器,并進(jìn)行溫度讀取和處理。
在循環(huán)中,程序首先選擇一個傳感器,通過延時等待完成溫度轉(zhuǎn)換,并讀取傳感器ROM碼,進(jìn)行CRC校驗(yàn),確保讀取的數(shù)據(jù)正確。然后,程序讀取傳感器測量的原始溫度值,并進(jìn)行一定的計(jì)算和處理,得到最終的溫度值。完成對該傳感器的溫度測量后,程序?qū)囟戎祪Υ嬖趦?nèi)存中,接著進(jìn)行下一個傳感器的溫度測量,以此類推,直至所有傳感器的溫度都測量完畢。
最后,程序?qū)⒏鱾€傳感器的溫度值實(shí)時顯示在液晶顯示屏上,包括當(dāng)前時間、溫度值以及一些其他的狀態(tài)信息。同時,程序會對超過設(shè)定閾值的溫度進(jìn)行報(bào)警,以提醒用戶及時采取措施。
圖3 主程序流程圖
圖4 讀出溫度子程序流程圖
讀出溫度子程序主要負(fù)責(zé)從DS18B20中讀取溫度數(shù)據(jù)。見圖4,具體流程如下。
子程序?qū)S18B20進(jìn)行初始化,包括設(shè)置傳感器的精度和開始溫度轉(zhuǎn)換。初始化完成后,子程序通過單總線協(xié)議與DS18B20通信,并向其發(fā)送讀溫度命令,等待傳感器返回溫度值。
接下來,子程序讀取傳感器ROM碼,以獲取傳感器的唯一標(biāo)識符,并進(jìn)行CRC校驗(yàn),確保讀取的數(shù)據(jù)正確。然后,子程序讀取傳感器測量的原始溫度值,并進(jìn)行一定的計(jì)算和處理,得到最終的溫度值。
最后,子程序?qū)囟戎捣祷亟o主程序,以便實(shí)時顯示和報(bào)警處理。在返回溫度值之前,子程序還可以進(jìn)行一些額外的處理,例如對超過設(shè)定閾值的溫度進(jìn)行報(bào)警等。
計(jì)算溫度子程序主要負(fù)責(zé)對從DS18B20讀取到的溫度數(shù)據(jù)進(jìn)行處理,得到實(shí)際的溫度值。見圖5,具體流程如下:將溫度高字節(jié)和低字節(jié)組合成一個16位數(shù)據(jù)。判斷溫度數(shù)據(jù)的正負(fù)號,如果是負(fù)數(shù),對數(shù)據(jù)進(jìn)行補(bǔ)碼處理。對16位數(shù)據(jù)進(jìn)行右移1位,得到12位有效數(shù)據(jù),表示溫度的整數(shù)部分和小數(shù)部分。計(jì)算溫度值:將12位有效數(shù)據(jù)轉(zhuǎn)換為實(shí)際溫度值。溫度值的整數(shù)部分可以通過將12位數(shù)據(jù)右移4位得到,而小數(shù)部分可以通過將整數(shù)部分移出后的8位數(shù)據(jù)乘以0.0625(即2的-4次方)得到。將計(jì)算得到的實(shí)際溫度值返回給主程序。
圖5 計(jì)算溫度子程序流程圖
為了實(shí)現(xiàn)對下位機(jī)采集到的溫度數(shù)據(jù)的實(shí)時顯示和監(jiān)控,使用Labview軟件對上位機(jī)進(jìn)行編程。具體流程:(1) 創(chuàng)建新的Labview項(xiàng)目,設(shè)置串口通信參數(shù),包括波特率、數(shù)據(jù)位、停止位等。(2) 設(shè)計(jì)用戶界面,包括溫度數(shù)據(jù)顯示、實(shí)時曲線繪制等模塊。(3) 編寫接收數(shù)據(jù)子程序:從串口接收來自下位機(jī)的溫度數(shù)據(jù),并進(jìn)行解析。(4) 編寫數(shù)據(jù)處理子程序:根據(jù)接收到的溫度數(shù)據(jù),進(jìn)行相應(yīng)的數(shù)據(jù)處理,包括實(shí)時曲線繪制、數(shù)據(jù)存儲等。(5) 編寫控制程序:實(shí)現(xiàn)對下位機(jī)的啟動、停止等控制操作。
為確保糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)的穩(wěn)定性和準(zhǔn)確性,對系統(tǒng)進(jìn)行了測試與優(yōu)化。
功能測試主要對系統(tǒng)的多點(diǎn)溫度采集、數(shù)據(jù)處理和上位機(jī)顯示功能進(jìn)行驗(yàn)證。系統(tǒng)能夠順利讀取DS18B20溫度檢測模塊采集到的溫度數(shù)據(jù),并通過計(jì)算子程序得到實(shí)際溫度值。同時,上位機(jī)能夠接收到下位機(jī)發(fā)送的溫度數(shù)據(jù),并在Labview編程的界面上實(shí)時顯示和繪制溫度曲線。
穩(wěn)定性測試主要評估系統(tǒng)在長時間連續(xù)運(yùn)行的條件下的性能。通過長時間運(yùn)行測試,驗(yàn)證了系統(tǒng)具有良好的穩(wěn)定性,能夠在實(shí)際應(yīng)用場景中正常工作。
準(zhǔn)確性測試主要通過對比實(shí)際溫度與系統(tǒng)顯示的溫度值,評估系統(tǒng)的精確度。經(jīng)過測試發(fā)現(xiàn),系統(tǒng)顯示的溫度值與實(shí)際溫度值的誤差較小,證明了DS18B20溫度檢測模塊具有較高的采集精度,滿足糧倉多點(diǎn)溫度監(jiān)控的需求。
根據(jù)實(shí)際應(yīng)用場景,對系統(tǒng)的采集與顯示延時進(jìn)行優(yōu)化。通過調(diào)整延時參數(shù),使系統(tǒng)能夠?qū)崟r更新溫度數(shù)據(jù),滿足實(shí)際監(jiān)控需求。
綜合以上測試,基于AT89C52單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)具有較高的穩(wěn)定性、準(zhǔn)確性和實(shí)時性。在糧食儲存環(huán)境中,能夠有效地監(jiān)測多個點(diǎn)位的溫度變化,為糧食安全提供有力保障。
基于AT89C52單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)經(jīng)過嚴(yán)格的測試及性能分析,證明了其在實(shí)際應(yīng)用中具有較高的可靠性和實(shí)用性。未來可以進(jìn)一步完善系統(tǒng)功能,如增加數(shù)據(jù)存儲、遠(yuǎn)程監(jiān)控等功能,為糧倉溫度監(jiān)控帶來更多便捷。
基于AT89C52單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)的軟件設(shè)計(jì),包括主程序、讀出溫度子程序和計(jì)算溫度子程序。系統(tǒng)采用AT89C52單片機(jī)作為核心控制器,結(jié)合四路DS18B20溫度檢測模塊進(jìn)行溫度采集。通過對系統(tǒng)的測試與優(yōu)化,實(shí)現(xiàn)了對糧倉內(nèi)多個點(diǎn)位的溫度信息的實(shí)時監(jiān)控和顯示,為糧食儲存的安全提供了有力保障。
[1]劉康靈,劉丹娟.基于單片機(jī)的糧倉多點(diǎn)溫度監(jiān)控系統(tǒng)的設(shè)計(jì)[J].新余學(xué)院學(xué)報(bào),2017,22(5):148-151.
[2]楊智霞.基于單片機(jī)的無線多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)[J].無線互聯(lián)科技,2022,19(16):86-88.
[3]劉鵬娟,楊斌.基于單片機(jī)的多路溫度測量系統(tǒng)的設(shè)計(jì)[J].電子制作,2022,30(20):39-41+82.
[4]朱高中.基于單片機(jī)的糧倉溫濕度遠(yuǎn)程監(jiān)控系統(tǒng)的 設(shè)計(jì)[J].湖北農(nóng)業(yè)科學(xué),2013,52(3):677-681.
[5]馮鵬飛.ZigBee在糧倉溫濕度遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)[D].河北工程大學(xué),2015.
[6]王文成.基于單片機(jī)的糧倉多點(diǎn)溫度監(jiān)測系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2010,32(7):90-92+96.
TH811
A
1672-1047(2023)05-0136-04
10.3969/j.issn.1672-1047.2023.05.35
2023-09-18
何建新,男,湖北英山人,副教授。研究方向:電子技術(shù)應(yīng)用研究。
[責(zé)任編輯:劉良瑞]