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