摘要:利用單片機(jī)和虛擬儀器LabVIEW在PC端設(shè)計(jì)了溫濕度測(cè)量及控制系統(tǒng),用于溫濕度數(shù)據(jù)監(jiān)測(cè)。該系統(tǒng)上位機(jī)為PC端監(jiān)控界面,下位機(jī)為單片機(jī),單片機(jī)采集溫濕度數(shù)據(jù),并將采集到的數(shù)據(jù)通過(guò)串口發(fā)送給監(jiān)控界面進(jìn)行監(jiān)測(cè)和管理。該監(jiān)測(cè)系統(tǒng)具有開(kāi)發(fā)成本低、功耗低、性能穩(wěn)、電路簡(jiǎn)單等優(yōu)點(diǎn)。
關(guān)鍵詞:溫濕度采集;DHT11;LabVIEW;單片機(jī)
中圖分類(lèi)號(hào):TP393.0 " "文獻(xiàn)標(biāo)志碼:A " "文章編號(hào):1671-0797(2023)02-0033-05
DOI:10.19514/j.cnki.cn32-1628/tm.2023.02.010
0 " "引言
隨著技術(shù)的發(fā)展,溫濕度測(cè)量應(yīng)用到了工作和生活的方方面面,溫濕度監(jiān)測(cè)系統(tǒng)的應(yīng)用也愈加廣泛。目前,基于虛擬儀器的監(jiān)控與數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)主要依賴(lài)于價(jià)格昂貴的數(shù)據(jù)采集卡,系統(tǒng)開(kāi)發(fā)和應(yīng)用成本高[1]。LabVIEW是美國(guó)國(guó)家儀器(NI)公司研制開(kāi)發(fā)的一款圖形化編程開(kāi)發(fā)環(huán)境,本文基于單片機(jī)和LabVIEW平臺(tái)實(shí)現(xiàn)了溫濕度實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)。單片機(jī)和溫濕度傳感器構(gòu)成下位機(jī)系統(tǒng),以串口通信方式將采集的數(shù)據(jù)發(fā)送至上位機(jī)PC端LabVIEW平臺(tái),實(shí)現(xiàn)溫濕度數(shù)據(jù)實(shí)時(shí)采集、溫濕度趨勢(shì)圖繪制、門(mén)限報(bào)警、歷史數(shù)據(jù)存儲(chǔ),并對(duì)數(shù)據(jù)進(jìn)行精細(xì)化管理。該監(jiān)測(cè)系統(tǒng)快速有效,開(kāi)發(fā)成本低,非常適合日常使用。
1 " "系統(tǒng)設(shè)計(jì)思路
該系統(tǒng)下位機(jī)控制核心為STC89C52,溫濕度傳感器DHT11采集溫濕度信號(hào),液晶顯示屏LCD1602顯示系統(tǒng)信息。系統(tǒng)設(shè)置報(bào)警電路,用戶(hù)可自行設(shè)定報(bào)警閾值,當(dāng)溫度或濕度超過(guò)設(shè)定值時(shí)則啟動(dòng)報(bào)警。上位機(jī)采用LabVIEW編寫(xiě)程序,單片機(jī)與其通過(guò)串口進(jìn)行通信,實(shí)現(xiàn)系統(tǒng)溫濕度數(shù)據(jù)的實(shí)時(shí)測(cè)量、監(jiān)控、存儲(chǔ)及統(tǒng)計(jì)分析。LabVIEW圖形化編程人機(jī)交互界面友好,開(kāi)發(fā)成本低,簡(jiǎn)單易行,功能可靠。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 " "硬件電路設(shè)計(jì)
2.1 " "下位機(jī)硬件電路設(shè)計(jì)
下位機(jī)單片機(jī)控制系統(tǒng)硬件電路包括:溫濕度傳感器DHT11電路、LCD1602顯示電路、聲光報(bào)警電路和鍵盤(pán)電路,本文在此只闡述溫濕度傳感器DHT11的電路設(shè)計(jì)。DHT11只需要占用單片機(jī)一個(gè)I/O口即可完成連接。如圖2所示,DHT11的供電電壓為3.5~5.5 V,其1腳接VCC,2腳接單片機(jī)的I/O口,3腳懸空,4腳接GND。上電后等待1 s以越過(guò)不穩(wěn)定狀態(tài),在此期間不要發(fā)送任何指令。
2.2 " "上位機(jī)串行通信電路設(shè)計(jì)
上位機(jī)通過(guò)串口通信獲取單片機(jī)采集的溫濕度數(shù)值。串行通信線(xiàn)路簡(jiǎn)單,只需一對(duì)傳輸線(xiàn)即可實(shí)現(xiàn)通信,速度慢但成本低。在串行通信中,需要進(jìn)行邏輯電平轉(zhuǎn)換,使其對(duì)信息的邏輯定義與TTL兼容,接口電路如圖3所示。
3 " "系統(tǒng)軟件設(shè)計(jì)
3.1 " "下位機(jī)單片機(jī)程序設(shè)計(jì)
下位機(jī)程序設(shè)計(jì)主要包括DHT11溫濕度讀取、LCD1602顯示、鍵盤(pán)、聲光報(bào)警以及單片機(jī)串口通信設(shè)計(jì),圖4為下位機(jī)主程序流程圖。
下位機(jī)程序設(shè)計(jì)中的復(fù)雜部分是關(guān)于DHT11如何讀取溫濕度數(shù)據(jù)。DHT11采用單總線(xiàn)數(shù)據(jù)格式,一次通信時(shí)間要小于3 ms,主機(jī)連續(xù)采樣間隔建議大于100 ms,其讀取單總線(xiàn)上的1個(gè)字節(jié)數(shù)據(jù)程序設(shè)計(jì)如圖5所示。其溫濕度數(shù)據(jù)包由5 Byte(40 bit)組成:8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗(yàn)和[2],可以據(jù)此讀出采集到的溫濕度數(shù)據(jù)。
3.2 " "上位機(jī)LabVIEW程序設(shè)計(jì)
3.2.1 " "LabVIEW上位機(jī)設(shè)計(jì)模式
由于下位機(jī)連續(xù)不斷地采集溫濕度數(shù)據(jù),為保證數(shù)據(jù)不丟失,上位機(jī)設(shè)計(jì)模式代碼框架采用生產(chǎn)者/消費(fèi)者模式。利用消息隊(duì)列處理器,將用戶(hù)界面UI、數(shù)據(jù)采集、數(shù)據(jù)保存顯示、數(shù)據(jù)分析4個(gè)隊(duì)列多線(xiàn)并行運(yùn)行,如圖6所示。用戶(hù)界面有任何動(dòng)作,生產(chǎn)者均會(huì)在事件結(jié)構(gòu)產(chǎn)生對(duì)應(yīng)的事件消息,發(fā)送到隊(duì)列,消費(fèi)者不斷取出隊(duì)列的事件消息進(jìn)行處理[3],對(duì)所有動(dòng)作做出反應(yīng)。
3.2.2 " "LabVIEW上位機(jī)串口發(fā)送程序
本程序運(yùn)行前需要先配置串口,將命令(如55 AA 01)通過(guò)VISA串口寫(xiě)入,等待不少于0.02 s,時(shí)間太短會(huì)導(dǎo)致讀取緩存失敗。通過(guò)串口屬性節(jié)點(diǎn)Byte at Port可判斷串口緩存的字符個(gè)數(shù),若單片機(jī)返回錯(cuò)誤標(biāo)志,則重新發(fā)送[3]。由于DHT11是單總線(xiàn)器件,單片機(jī)正在執(zhí)行時(shí)序時(shí)不能被打斷,會(huì)錯(cuò)過(guò)上位機(jī)命令,所以需要重復(fù)發(fā)送幾次,保證連接成功,不管成功與否最多發(fā)送5次。執(zhí)行部分程序框圖如圖7所示。
3.2.3 " "LabVIEW上位機(jī)串口接收程序
為保證單片機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)不會(huì)丟失,上位機(jī)將串口緩沖中的數(shù)據(jù)一一讀到隊(duì)列中,再建立另外一個(gè)線(xiàn)程來(lái)取出隊(duì)列中數(shù)據(jù)并進(jìn)行分析,如圖8所示。
3.2.4 " "數(shù)據(jù)文件存儲(chǔ)和調(diào)用
上位機(jī)存儲(chǔ)數(shù)據(jù)文件類(lèi)型為T(mén)DMS(Technical Data Management Streaming)文件,它兼顧了存取方便、高速等優(yōu)勢(shì)。TDMS的邏輯結(jié)構(gòu)分為三層:文件(File)、通道組(Channel Groups)和通道(Channels)[4],程序員可以非常方便地使用這三個(gè)邏輯層次定義測(cè)試數(shù)據(jù),數(shù)據(jù)檢索是有序的、方便存取的,如圖9所示。
4 " "系統(tǒng)設(shè)計(jì)結(jié)果
系統(tǒng)測(cè)試結(jié)果如圖10~圖13所示。本系統(tǒng)實(shí)現(xiàn)了基于單片機(jī)和LabVIEW的溫濕度監(jiān)測(cè),下位機(jī)實(shí)時(shí)監(jiān)測(cè)溫濕度數(shù)據(jù),上位機(jī)在LabVIEW前面板實(shí)現(xiàn)溫濕度數(shù)據(jù)和波形實(shí)時(shí)顯示,當(dāng)溫濕度數(shù)值超出或低于預(yù)設(shè)值時(shí),可通過(guò)下位機(jī)蜂鳴器和上位機(jī)指示燈進(jìn)行報(bào)警,歷史數(shù)據(jù)能以TDMS文件形式保存,易于查詢(xún)和打印。
5 " "結(jié)語(yǔ)
本文設(shè)計(jì)了基于單片機(jī)和LabVIEW的溫濕度監(jiān)測(cè)系統(tǒng),經(jīng)測(cè)試,該系統(tǒng)可實(shí)現(xiàn)溫濕度的實(shí)時(shí)監(jiān)測(cè)、報(bào)警、歷史數(shù)據(jù)存儲(chǔ)和查詢(xún)功能,且監(jiān)測(cè)界面美觀(guān)、操作便捷,系統(tǒng)成本低,功能易擴(kuò)展,具有較好的使用和推廣價(jià)值。
[參考文獻(xiàn)]
[1] 林園勝,許鋼,江娟娟,等.基于LabVIEW的溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,31(6):63-67.
[2] 管融雪,于喜志,郭永強(qiáng).低功耗智能家居控制系統(tǒng)的應(yīng)用設(shè)計(jì)[J].電子世界,2021(10):162-163.
[3] 張哲,劉廣朋.基于變配電設(shè)備的無(wú)線(xiàn)無(wú)源在線(xiàn)溫度監(jiān)測(cè)系統(tǒng)的研究[J].能源與環(huán)保,2017,39(8):12-18.
[4] 姚建江.基于腦體模的顱腦選擇性制冷方式的實(shí)驗(yàn)評(píng)價(jià)[D].杭州:浙江大學(xué),2014.
收稿日期:2022-09-29
作者簡(jiǎn)介:孫文靜(1981—),女,山東淄博人,碩士,講師,研究方向:電子信息技術(shù)。