劉 剛 王立香 任魯涌
(山東理工大學計算機科學與技術學院,山東 淄博 255000)
溫度和濕度的監控在冷庫、圖書館、博物館、醫藥、電子等領域具有重要的應用。溫濕度的測量一般通過傳統的儀器來測量,這些儀器與外部設備連接不方便,界面設計不夠靈活,擴展性不好。隨著智能儀器、虛擬儀器的發展和應用,數據的測量變得越來越方便和靈活。本文以AT89C51單片機為下位機控制核心,利用溫濕度傳感器SHT10完成溫濕度的數據采集。單片機將采集的溫濕度數據通過串行通信接口上傳到上位機,上位機應用軟件采用虛擬儀器開發軟件LabVIEW 2017進行開發設計。上位機的功能是采用數字和量表的形式實時顯示采集的溫、濕度數據;根據設置的溫、濕度范圍,當采集的數據超出設置范圍時,報警提示用戶。系統具有良好的人機交互特點,靈活性強,采集數據易于觀測,具有一定的應用價值和推廣價值。
系統設計原理框圖如圖1所示,其下位機硬件系統設計框圖如圖1中虛線框內部分所示。系統硬件主要由溫、濕度傳感器、AT89C51單片機、串行通信電平轉換接口、電源模塊等電路構成。

圖1 系統原理框圖
為了方便采集溫度和濕數據,滿足系統為了方便采集溫度和濕數據,滿足系統需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器需求。要選擇合適溫、濕度傳感器的作用是將環境溫、濕度轉換成的作用是將環境溫、濕度轉換成便于分析處理的電信號。為了簡化。為了簡化系設計,本文采用瑞士,本文采用瑞士Sensirion公司生產的單片式溫、濕度傳感器溫、濕度傳感器 SHT10,該傳感器,該傳感器將溫、濕度變換器,將溫、濕度變換器,放大電路,A/D變換等電路在一個芯片中[1],具有較高的穩定性和可靠。同時,芯同時,芯片內部集成了兩線制的串行通信接口,與外圍系統連電路設計簡單制的串行通信接口,與外圍系統連電路設計簡單。SHT10的濕度測量范圍為0~100%RH,分辨率典型值為0.05%RH。在25℃下,濕度范圍為20~80%RH范圍內,濕度的測量精為范圍內,濕度的測量精為±4.5%RH。該傳感器的溫度測量范圍為.40~123.8℃,分辨率的典型值為,分辨率的典型值為0.01℃,其測量精,其測量精度在25℃時達到±0.5℃[2]。SHT10有 4個引腳,分別是電源正和地串行數據個引腳,分別是電源正和地串行數據個引腳,分別是電源正和地串行數據(DATA)和串行時鐘引腳(DATA)和串行時鐘引腳(SCK)和串行時鐘引腳 (SCK),芯片施加的電壓必須在2.4~5.5V之間。SHT10與單片機的連接較為簡單,如圖2所示。
為了得到真實的溫度和濕度信息,需要將采集的數據轉換為實際的物理量,在實際應用中,可以設置不同的溫度和濕度分辨率。本系統中,設置濕度的分辨率為,溫度的分辨率為。為了使得到的溫度和濕度更加精確,需要對從傳感器讀取的數值進行補償,溫度補償方法如下:

式中,T 為待測溫度值,d1=-40.1,d2=0.04,SQT為從傳感器讀出的溫度值。

圖2 傳感器與51單片機連接
濕度補償方法如下:

式中,RH為待測環境的相對濕度,SORH為從傳感器讀出的濕度值,t1=0.01,t2=0.00128,c1=-2.0468,c2=0.05872,c3=-0.00041。
系統MCU采用AT89C51單片機,為了將傳感器采集的數據上傳到上位機進行分析,本文采用了串行通行的方式進行數據的上傳,為此,需要在單片機外部加電平轉換芯片,電路如圖3所示:

圖3 單片機串行通信接口電路
本文采用異步串行通信(UART)方式,將采集溫度和濕度信息通過串口實時上傳到計算機,由上位機軟件對采集的溫度和濕度信息進行顯示和分析等操作。
除了傳感器電路和串口電平轉換電路,單片機外圍電路和還包括復位電路、電源供電電路、時鐘電路等電路。
上位機軟件采用虛擬儀器開發軟件LabVIEW 2017進行開發,LabVIEW采用圖形化的設計語言,支持多種硬件接口,具有編程方便,任務開發周期短等特點[3]。上位機應用軟件的主要任務是分別用波形圖和數字及儀表的形式,對采集的溫度和濕度進行顯示,并設有報警提示。用戶通過應用軟件設計溫度和濕度的上限和下限,當溫度和濕度不在設置的范圍內時,報警提示用戶。
本文利用LabVIEW的VISA串口通信模塊,通過計算機的串口和下位機連接,本系統采用異步串行通信模式、通信波特率為 9600bps、8位數據位數,無校驗、1位停止位的方式進行通信。在實際應用中,上位機可以根據下位機設置的UART通信模式對通信速率等串行通信參數進行設置。
為了保證上位機與下位機的可靠通信,采用生產者/消費者模式進行應用軟件的程序設計。對從計算機串口接收的數據通過隊列數據結構進行接收和讀取。為了對采集的溫度和濕度數據正確區分,下位機對傳送溫度和濕度信息加幀頭(0×AA0×55)處理。因此,上位機軟件需要對幀頭進行對準處理。對接收到的數據流,判斷幀頭位置,從而正確的讀取溫度和濕度的數值。
系統的運行界面如圖4所示,從圖中可以看出,采集的溫度低于設置的低溫報警閾值,因此,用戶程序中,低溫報警燈被點亮;同樣,采集的濕度值高于設置的高濕度報警閾值,高濕度報警燈也被點亮。

圖4 系統運行界面
本文設計了一個基于AT89C51和虛擬儀器開發軟件LabVIEW 2017的溫、濕度檢測系統。上位機和下位機之間通過串口進行通信,上位機軟件設計采用生產者/消費者模式。上位機通過串行通信接收單片機上傳的數據并以不同方式進行顯示,通過應用界面設置溫度和濕度的正常范圍,當超出范圍時,會進行高/低溫或高/低濕度報警。系統性能穩定,具有較好的實用價值和推廣價值。