劉 剛 王立香 任魯涌
(山東理工大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000)
溫度和濕度的監(jiān)控在冷庫、圖書館、博物館、醫(yī)藥、電子等領(lǐng)域具有重要的應(yīng)用。溫濕度的測量一般通過傳統(tǒng)的儀器來測量,這些儀器與外部設(shè)備連接不方便,界面設(shè)計不夠靈活,擴(kuò)展性不好。隨著智能儀器、虛擬儀器的發(fā)展和應(yīng)用,數(shù)據(jù)的測量變得越來越方便和靈活。本文以AT89C51單片機(jī)為下位機(jī)控制核心,利用溫濕度傳感器SHT10完成溫濕度的數(shù)據(jù)采集。單片機(jī)將采集的溫濕度數(shù)據(jù)通過串行通信接口上傳到上位機(jī),上位機(jī)應(yīng)用軟件采用虛擬儀器開發(fā)軟件LabVIEW 2017進(jìn)行開發(fā)設(shè)計。上位機(jī)的功能是采用數(shù)字和量表的形式實時顯示采集的溫、濕度數(shù)據(jù);根據(jù)設(shè)置的溫、濕度范圍,當(dāng)采集的數(shù)據(jù)超出設(shè)置范圍時,報警提示用戶。系統(tǒng)具有良好的人機(jī)交互特點(diǎn),靈活性強(qiáng),采集數(shù)據(jù)易于觀測,具有一定的應(yīng)用價值和推廣價值。
系統(tǒng)設(shè)計原理框圖如圖1所示,其下位機(jī)硬件系統(tǒng)設(shè)計框圖如圖1中虛線框內(nèi)部分所示。系統(tǒng)硬件主要由溫、濕度傳感器、AT89C51單片機(jī)、串行通信電平轉(zhuǎn)換接口、電源模塊等電路構(gòu)成。
圖1 系統(tǒng)原理框圖
為了方便采集溫度和濕數(shù)據(jù),滿足系統(tǒng)為了方便采集溫度和濕數(shù)據(jù),滿足系統(tǒng)需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器的作用是將環(huán)境溫、濕度轉(zhuǎn)換成的作用是將環(huán)境溫、濕度轉(zhuǎn)換成便于分析處理的電信號。為了簡化。為了簡化系設(shè)計,本文采用瑞士,本文采用瑞士Sensirion公司生產(chǎn)的單片式溫、濕度傳感器溫、濕度傳感器 SHT10,該傳感器,該傳感器將溫、濕度變換器,將溫、濕度變換器,放大電路,A/D變換等電路在一個芯片中[1],具有較高的穩(wěn)定性和可靠。同時,芯同時,芯片內(nèi)部集成了兩線制的串行通信接口,與外圍系統(tǒng)連電路設(shè)計簡單制的串行通信接口,與外圍系統(tǒng)連電路設(shè)計簡單。SHT10的濕度測量范圍為0~100%RH,分辨率典型值為0.05%RH。在25℃下,濕度范圍為20~80%RH范圍內(nèi),濕度的測量精為范圍內(nèi),濕度的測量精為±4.5%RH。該傳感器的溫度測量范圍為.40~123.8℃,分辨率的典型值為,分辨率的典型值為0.01℃,其測量精,其測量精度在25℃時達(dá)到±0.5℃[2]。SHT10有 4個引腳,分別是電源正和地串行數(shù)據(jù)個引腳,分別是電源正和地串行數(shù)據(jù)個引腳,分別是電源正和地串行數(shù)據(jù)(DATA)和串行時鐘引腳(DATA)和串行時鐘引腳(SCK)和串行時鐘引腳 (SCK),芯片施加的電壓必須在2.4~5.5V之間。SHT10與單片機(jī)的連接較為簡單,如圖2所示。
為了得到真實的溫度和濕度信息,需要將采集的數(shù)據(jù)轉(zhuǎn)換為實際的物理量,在實際應(yīng)用中,可以設(shè)置不同的溫度和濕度分辨率。本系統(tǒng)中,設(shè)置濕度的分辨率為,溫度的分辨率為。為了使得到的溫度和濕度更加精確,需要對從傳感器讀取的數(shù)值進(jìn)行補(bǔ)償,溫度補(bǔ)償方法如下:
式中,T 為待測溫度值,d1=-40.1,d2=0.04,SQT為從傳感器讀出的溫度值。
圖2 傳感器與51單片機(jī)連接
濕度補(bǔ)償方法如下:
式中,RH為待測環(huán)境的相對濕度,SORH為從傳感器讀出的濕度值,t1=0.01,t2=0.00128,c1=-2.0468,c2=0.05872,c3=-0.00041。
系統(tǒng)MCU采用AT89C51單片機(jī),為了將傳感器采集的數(shù)據(jù)上傳到上位機(jī)進(jìn)行分析,本文采用了串行通行的方式進(jìn)行數(shù)據(jù)的上傳,為此,需要在單片機(jī)外部加電平轉(zhuǎn)換芯片,電路如圖3所示:
圖3 單片機(jī)串行通信接口電路
本文采用異步串行通信(UART)方式,將采集溫度和濕度信息通過串口實時上傳到計算機(jī),由上位機(jī)軟件對采集的溫度和濕度信息進(jìn)行顯示和分析等操作。
除了傳感器電路和串口電平轉(zhuǎn)換電路,單片機(jī)外圍電路和還包括復(fù)位電路、電源供電電路、時鐘電路等電路。
上位機(jī)軟件采用虛擬儀器開發(fā)軟件LabVIEW 2017進(jìn)行開發(fā),LabVIEW采用圖形化的設(shè)計語言,支持多種硬件接口,具有編程方便,任務(wù)開發(fā)周期短等特點(diǎn)[3]。上位機(jī)應(yīng)用軟件的主要任務(wù)是分別用波形圖和數(shù)字及儀表的形式,對采集的溫度和濕度進(jìn)行顯示,并設(shè)有報警提示。用戶通過應(yīng)用軟件設(shè)計溫度和濕度的上限和下限,當(dāng)溫度和濕度不在設(shè)置的范圍內(nèi)時,報警提示用戶。
本文利用LabVIEW的VISA串口通信模塊,通過計算機(jī)的串口和下位機(jī)連接,本系統(tǒng)采用異步串行通信模式、通信波特率為 9600bps、8位數(shù)據(jù)位數(shù),無校驗、1位停止位的方式進(jìn)行通信。在實際應(yīng)用中,上位機(jī)可以根據(jù)下位機(jī)設(shè)置的UART通信模式對通信速率等串行通信參數(shù)進(jìn)行設(shè)置。
為了保證上位機(jī)與下位機(jī)的可靠通信,采用生產(chǎn)者/消費(fèi)者模式進(jìn)行應(yīng)用軟件的程序設(shè)計。對從計算機(jī)串口接收的數(shù)據(jù)通過隊列數(shù)據(jù)結(jié)構(gòu)進(jìn)行接收和讀取。為了對采集的溫度和濕度數(shù)據(jù)正確區(qū)分,下位機(jī)對傳送溫度和濕度信息加幀頭(0×AA0×55)處理。因此,上位機(jī)軟件需要對幀頭進(jìn)行對準(zhǔn)處理。對接收到的數(shù)據(jù)流,判斷幀頭位置,從而正確的讀取溫度和濕度的數(shù)值。
系統(tǒng)的運(yùn)行界面如圖4所示,從圖中可以看出,采集的溫度低于設(shè)置的低溫報警閾值,因此,用戶程序中,低溫報警燈被點(diǎn)亮;同樣,采集的濕度值高于設(shè)置的高濕度報警閾值,高濕度報警燈也被點(diǎn)亮。
圖4 系統(tǒng)運(yùn)行界面
本文設(shè)計了一個基于AT89C51和虛擬儀器開發(fā)軟件LabVIEW 2017的溫、濕度檢測系統(tǒng)。上位機(jī)和下位機(jī)之間通過串口進(jìn)行通信,上位機(jī)軟件設(shè)計采用生產(chǎn)者/消費(fèi)者模式。上位機(jī)通過串行通信接收單片機(jī)上傳的數(shù)據(jù)并以不同方式進(jìn)行顯示,通過應(yīng)用界面設(shè)置溫度和濕度的正常范圍,當(dāng)超出范圍時,會進(jìn)行高/低溫或高/低濕度報警。系統(tǒng)性能穩(wěn)定,具有較好的實用價值和推廣價值。