吳海濱(浙江大學(xué)臺州研究院汽摩配研究所,310027)
?
基于單片機(jī)控制的糧倉測溫及通風(fēng)系統(tǒng)設(shè)計
吳海濱
(浙江大學(xué)臺州研究院汽摩配研究所,310027)
摘要:本文介紹了以DS18B20,RF433無線模塊,單片機(jī)和上位機(jī)為核心的糧倉溫度,濕度檢測和自動控制系統(tǒng)。以STM32F103單片機(jī)為主控制芯片,DS18B20采用單總線通信方式,RF433模塊進(jìn)行無線通信,最大允許接5120個測溫點,上位機(jī)可以顯示所有點溫度,設(shè)置溫度報警閥值,超過閥值,自動報警,并根據(jù)設(shè)置打開對應(yīng)超溫部分的風(fēng)機(jī)或者窗戶。系統(tǒng)具有精度高,測點多,溫度性好等特點,可以應(yīng)用在其他需要多點測溫的環(huán)境中,通用性好。
關(guān)鍵詞:STM32F103單片機(jī);測溫機(jī);系統(tǒng)設(shè)計
我國是農(nóng)業(yè)大國,每年都有大量糧食收獲,加上部分舊糧積壓,大量糧食存儲在糧庫中,以往通常采用人工辦法對糧食進(jìn)入測溫,通風(fēng),浪費大量人力物力。本文所設(shè)計的糧倉測溫及通風(fēng)系統(tǒng),采用DS18B20作為溫度采集點,可以對糧倉進(jìn)行均勻布采集點,通過上位機(jī)顯示溫度和一些基本設(shè)置,通過單片機(jī)控制自動溫度采集和風(fēng)機(jī)的控制。
整個系統(tǒng)從結(jié)構(gòu)上可分三層:由控制室的PC機(jī)夠成的上位機(jī)--用戶監(jiān)控層,單片機(jī)構(gòu)成的測溫主機(jī)---控制層,每個糧倉里的測溫分機(jī)和遙控分機(jī)---溫度數(shù)據(jù)采集和處理層。系統(tǒng)組成結(jié)構(gòu)如圖1 所示,測溫主機(jī)與上位機(jī)通過RS-232 總線連接,測溫主機(jī)和測溫分機(jī)和遙控分機(jī)之間通過RFF433無線網(wǎng)絡(luò)連接,一臺主機(jī)最多可以管理10臺測溫分機(jī)和10臺遙控分機(jī),一臺測溫分機(jī)最多可以檢測512個溫度點,本設(shè)計適用一般中小型糧庫。
圖1 系統(tǒng)整體設(shè)計
2.1測溫主機(jī)
主控采用RF433無線模塊和STM32F103單片機(jī),和PC機(jī)之間通信通過232進(jìn)行通信。主要功能為1、通過RF433和下面測溫分機(jī)進(jìn)行通信,把測溫分機(jī)采到的數(shù)據(jù)集中處理,通過232送到PC機(jī),在上位機(jī)上顯示。2、通過RF433和遙控分機(jī)進(jìn)行通信,上位機(jī)自動發(fā)送遙控命令到遙控分機(jī),實現(xiàn)糧倉風(fēng)機(jī)和窗戶的自動和手動開關(guān)。
2.2測溫分機(jī)
測溫分機(jī)主要由RF433無線模塊,STM32F103單片機(jī),電源管理電路,flash存儲電路,485電路,和溫度采集等電路組成。測溫分機(jī)最多可以采集4路,每路128個點,總共512個測溫點。整個系統(tǒng)最多可以使用10個不同地址的測溫分機(jī),系統(tǒng)最大理論采集測溫點數(shù)為5120個。采集點的分布可以根據(jù)實際需求在上位機(jī)中設(shè)置,本文中以一個小型糧倉為例,設(shè)置為高度為5層,6行,10列共300個點。485電路用來外掛溫濕度采集模塊,原理框圖如圖2所示:
圖2 測溫分機(jī)原理框圖
2.3遙控分機(jī)
遙控分機(jī)主要由RF433無線模塊,ATMEGA8單片機(jī),電源管理電路,光耦隔離和繼電器驅(qū)動電路組成。主要功能為通過RF433無線模塊,接收主控板發(fā)出的控制信號,主要功能是包括自動開啟和關(guān)閉風(fēng)機(jī)和窗戶,使糧倉內(nèi)溫度保持在正常范圍。
2.4溫度數(shù)據(jù)采集模塊的設(shè)計
DS18B20是美國DALLAS公司的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強(qiáng)、使用方便等優(yōu)點。由于18B20芯片送出的溫度信號是數(shù)字信號,因此簡化了A/D轉(zhuǎn)換的設(shè)計,提高了測量效率和精度;并且芯片的ROM中存有其唯一標(biāo)識碼,即不存在相同標(biāo)識碼的DS18B20,特別適合與微處理芯片構(gòu)成多點溫度測控系統(tǒng)。每臺測溫分機(jī)的有4個口分別可接最多128 個DS18B20 傳感器。上位機(jī)控制每臺分機(jī)工作,實現(xiàn)多點測溫。采集到的溫度數(shù)據(jù)通過RF433無線網(wǎng)絡(luò)進(jìn)行傳輸,測溫分機(jī)接收到DS18B20 所傳送的溫度數(shù)據(jù),并將這些數(shù)據(jù)進(jìn)行簡單的處理發(fā)往上位機(jī)。測溫分機(jī)按照上位機(jī)的命令來完成溫度數(shù)據(jù)采集和發(fā)送工作。其先將采集的數(shù)據(jù)存放于內(nèi)部RAM中,當(dāng)收到上位機(jī)的上傳數(shù)據(jù)命令時,通過RF433無線模塊送出。在測溫主機(jī)的配合下,數(shù)據(jù)上傳到上位機(jī)并在上位機(jī)的監(jiān)控界面顯示給用戶。
2.5RF433MHZ無線通信在溫控系統(tǒng)中的設(shè)計
在系統(tǒng)中用STM32F103單片機(jī)構(gòu)成主從分布式測控系統(tǒng),具有價格低、控制功能強(qiáng)等許多特點。然而在應(yīng)用中,測溫主機(jī)與各糧倉相距較遠(yuǎn),距離從幾十米到幾千米不等。對此遠(yuǎn)程糧倉,系統(tǒng)采用RF433MHZ無線模塊,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。避免布線中的數(shù)據(jù)線過長,提高可操作性,降低布線難度,降低時間和經(jīng)濟(jì)成本。無線模塊功率最大1W,加上10DB增益天線,空曠地傳輸距離可以達(dá)到6KM以上,實際應(yīng)用中5KM以內(nèi)通信穩(wěn)定可靠。
3.1系統(tǒng)軟件的工作流程
DS18B20 以單總線協(xié)議工作,測溫分機(jī)首先發(fā)送復(fù)位脈沖命令,使信號線上所有的DS18B20 芯片都被復(fù)位,接著發(fā)送ROM 操作命令,使序列號編碼匹配的DS18B20 被激活進(jìn)入接收內(nèi)存訪問命令狀態(tài);內(nèi)存訪問命令完成溫度轉(zhuǎn)換、溫度讀取等工作。其對時序及電特性參數(shù)要求較高,必須嚴(yán)格按照它的時序要求去操作。DS18B20 的數(shù)據(jù)讀寫由測溫分機(jī)來完成,包括初始化、讀數(shù)據(jù)和寫數(shù)據(jù)。系統(tǒng)中有一個測溫主機(jī)和多臺分機(jī),分機(jī)通過撥碼設(shè)置地址且地址唯一,。初始化完成后各分機(jī)均處于監(jiān)聽狀態(tài),測溫分機(jī)接受上位機(jī)命令,向DS18B20發(fā)出地址匹配命令幀,進(jìn)入等待狀態(tài),每一幀數(shù)據(jù)位都對應(yīng)著不同意義,若地址匹配成功則進(jìn)行響應(yīng)分機(jī),或者等待超時而重發(fā)命令。
3.2DS18B20的讀寫時序及延時問題
為保證DS18B20的嚴(yán)格I/O時序,需要作較精確的延時。在DS18B20的操作中,寫一個標(biāo)準(zhǔn)1us延時的函數(shù),在C語言中插入若干個匯編NOP指令來精確達(dá)到1us時間,在操作中,調(diào)用這個函數(shù),可以實現(xiàn)任意us級時間的延時。讀寫時序都必須嚴(yán)格按照DS18B20數(shù)據(jù)手冊中要求。
3.3DS18B20應(yīng)用過程中遇到的問題及解決方法
在實際應(yīng)用過程中,由于1條總線上掛的DS18B20數(shù)量多,距離遠(yuǎn),且不是按照數(shù)據(jù)手冊中推薦使用的星型拓?fù)浠蛘呔€性拓?fù)浣Y(jié)構(gòu),造成searchrom的部分波形嚴(yán)重失真的情況。當(dāng)采用1k上拉電阻時,300米長雙絞線帶來的延時是:R*C=12n*1k=12u,這樣上升沿就是12u*2.2=27u,不滿足通信時序要求。因此,分析總線通信時序,要求的最小時間間隔是15us,單片機(jī)方面可以將上拉DQ時變成推挽來提高速度。但在實際使用用,由于波形失真嚴(yán)重,還是會造成ROM讀出來效驗是有錯誤的情況,經(jīng)常會有這條總線上有幾個點讀不出來情況,解決方法就是多讀幾次ROM,通過算法,把錯的數(shù)據(jù)過濾掉,組成一組對的ROM數(shù)據(jù),這樣處理以后就所有的ROM都能正確讀的出來。
本文論述了以DS18B20 為傳感器,STM32F103為核心單片機(jī)為控制核心組成的糧倉測溫及通風(fēng)系統(tǒng)。由于DS18B20 采用數(shù)字單總線技術(shù),使得系統(tǒng)電路簡單,易于擴(kuò)展,加上總線數(shù)字化,使得系統(tǒng)的抗干擾性能好,可靠性高,測溫范圍寬,與傳統(tǒng)的溫控系統(tǒng)相比還具有較高的性價比。此外,系統(tǒng)的應(yīng)用范圍不僅僅局限于糧倉領(lǐng)域,稍作改動還可作為其它自控領(lǐng)域的解決方案,如煙葉烘烤箱控制系統(tǒng)等。
參考文獻(xiàn)
[1]STM32嵌入式系統(tǒng)開發(fā)實戰(zhàn)指南.李志明,檀永,徐石明,丁孝華,桑林 機(jī)械工業(yè)出版社
[2]基于DS18B20的溫度測量模塊設(shè)計.周潤景等編著 機(jī)械工業(yè)出版社
Temperature measurement and ventilation system design based on single chip microcomputer
Wu Haibin
(Zhejiang University, Taizhou Institute of automobile and motorcycle Research Institute,310027)
Abstract:This paper introduces the DS18B20, RF433 wireless module,MCU and PC as the core the granary of the temperature, humidity detection and automatic control system.Mainly STM32F103 microcontroller to control chip,DS18B20 adopts single bus communication mode,RF433 module for wireless communication,maximum allowable 5120 temperature measurement points, PC can display all point temperature and setting temperature alarm threshold,more than the threshold, automatic alarm,and according to the set to open the corresponding overtemperature fan or parts of the window.System has high precision, the measuring point,good temperature etc.,can be applied in other need multi-point temperature measurement environment,excellent versatility.
Keywords:STM32F103 single chip microcomputer;temperature measuring machine;system design