基于單片機和LabVIEW的溫濕度監(jiān)測系統(tǒng)設計
引言
隨著技術的發(fā)展,溫濕度測量應用到了工作和生活的方方面面,溫濕度監(jiān)測系統(tǒng)的應用也愈加廣泛。目前,基于虛擬儀器的監(jiān)控與數(shù)據(jù)采集系統(tǒng)的設計主要依賴于價格昂貴的數(shù)據(jù)采集卡,系統(tǒng)開發(fā)和應用成本高。LabVIEW是美國國家儀器(NI)公司研制開發(fā)的一款圖形化編程開發(fā)環(huán)境,本文基于單片機和LabVIEW平臺實現(xiàn)了溫濕度實時監(jiān)測系統(tǒng)的設計。單片機和溫濕度傳感器構成下位機系統(tǒng),以串口通信方式將采集的數(shù)據(jù)發(fā)送至上位機PC端LabVIEW平臺,實現(xiàn)溫濕度數(shù)據(jù)實時采集、溫濕度趨勢圖繪制、門限報警、歷史數(shù)據(jù)存儲,并對數(shù)據(jù)進行精細化管理。該監(jiān)測系統(tǒng)快速有效,開發(fā)成本低,非常適合日常使用。
1系統(tǒng)設計思路
該系統(tǒng)下位機控制核心為STC89C52,溫濕度傳感器DHT11采集溫濕度信號,液晶顯示屏LCD1602顯示系統(tǒng)信息。系統(tǒng)設置報警電路,用戶可自行設定報警閾值,當溫度或濕度超過設定值時則啟動報警。上位機采用LabVIEW編寫程序,單片機與其通過串口進行通信,實現(xiàn)系統(tǒng)溫濕度數(shù)據(jù)的實時測量、監(jiān)控、存儲及統(tǒng)計分析。LabVIEW圖形化編程人機交互界面友好,開發(fā)成本低,簡單易行,功能可靠。系統(tǒng)結構如圖1所示。
2硬件電路設計
2.1下位機硬件電路設計
下位機單片機控制系統(tǒng)硬件電路包括:溫濕度傳感器DHT11電路、LCD1602顯示電路、聲光報警電路和鍵盤電路,本文在此只闡述溫濕度傳感器DHT11的電路設計。DHT11只需要占用單片機一個I/O口即可完成連接。如圖2所示,DHT11的供電電壓為3.5~5.5V,其1腳接VCC,2腳接單片機的I/O口,3腳懸空,4腳接GND。上電后等待1s以越過不穩(wěn)定狀態(tài),在此期間不要發(fā)送任何指令。
2.2上位機串行通信電路設計
上位機通過串口通信獲取單片機采集的溫濕度數(shù)值。串行通信線路簡單,只需一對傳輸線即可實現(xiàn)通信,速度慢但成本低。在串行通信中,需要進行邏輯電平轉換,使其對信息的邏輯定義與TTL兼容,接口電路如圖3所示。
3系統(tǒng)軟件設計
3.1下位機單片機程序設計
下位機程序設計主要包括DHT11溫濕度讀取、LCD1602顯示、鍵盤、聲光報警以及單片機串口通信設計,圖4為下位機主程序流程圖。
下位機程序設計中的復雜部分是關于DHT11如何讀取溫濕度數(shù)據(jù)。DHT11采用單總線數(shù)據(jù)格式,一次通信時間要小于3ms,主機連續(xù)采樣間隔建議大于100ms,其讀取單總線上的1個字節(jié)數(shù)據(jù)程序設計如圖5所示。其溫濕度數(shù)據(jù)包由5Byte(40bit)組成:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和,可以據(jù)此讀出采集到的溫濕度數(shù)據(jù)。
3.2上位機LabVlEW程序設計
3.2.1LabVIEW上位機設計模式
由于下位機連續(xù)不斷地采集溫濕度數(shù)據(jù),為保證數(shù)據(jù)不丟失,上位機設計模式代碼框架采用生產(chǎn)者/消費者模式。利用消息隊列處理器,將用戶界面UI、數(shù)據(jù)采集、數(shù)據(jù)保存顯示、數(shù)據(jù)分析4個隊列多線并行運行,如圖6所示。用戶界面有任何動作,生產(chǎn)者均會在事件結構產(chǎn)生對應的事件消息,發(fā)送到隊列,消費者不斷取出隊列的事件消息進行處理,對所有動作做出反應。
3.2.2LabVIEW上位機串口發(fā)送程序
本程序運行前需要先配置串口,將命令(如55AA01)通過VIsA串口寫入,等待不少于0.02s,時間太短會導致讀取緩存失敗。通過串口屬性節(jié)點ByteatPort可判斷串口緩存的字符個數(shù),若單片機返回錯誤標志,則重新發(fā)送。由于DHT11是單總線器件,單片機正在執(zhí)行時序時不能被打斷,會錯過上位機命令,所以需要重復發(fā)送幾次,保證連接成功,不管成功與否最多發(fā)送5次。執(zhí)行部分程序框圖如圖7所示。
3.2.3LabVIEW上位機串口接收程序
為保證單片機發(fā)送過來的數(shù)據(jù)不會丟失,上位機將串口緩沖中的數(shù)據(jù)一一讀到隊列中,再建立另外一個線程來取出隊列中數(shù)據(jù)并進行分析,如圖8所示。
3.2.4數(shù)據(jù)文件存儲和調(diào)用
上位機存儲數(shù)據(jù)文件類型為TDMs(TechnicalDataManagementSTreaming)文件,它兼顧了存取方便、高速等優(yōu)勢。TDMS的邏輯結構分為三層:文件(Fi1e)、通道組(Channe1Groups)和通道(Channe1s),程序員可以非常方便地使用這三個邏輯層次定義測試數(shù)據(jù),數(shù)據(jù)檢索是有序的、方便存取的,如圖9所示。
4系統(tǒng)設計結果
系統(tǒng)測試結果如圖10~圖13所示。本系統(tǒng)實現(xiàn)了基于單片機和LabVIEW的溫濕度監(jiān)測,下位機實時監(jiān)測溫濕度數(shù)據(jù),上位機在LabVIEW前面板實現(xiàn)溫濕度數(shù)據(jù)和波形實時顯示,當溫濕度數(shù)值超出或低于預設值時,可通過下位機蜂鳴器和上位機指示燈進行報警,歷史數(shù)據(jù)能以TDMS文件形式保存,易于查詢和打印。
5結語
本文設計了基于單片機和LabVIEW的溫濕度監(jiān)測系統(tǒng),經(jīng)測試,該系統(tǒng)可實現(xiàn)溫濕度的實時監(jiān)測、報警、歷史數(shù)據(jù)存儲和查詢功能,且監(jiān)測界面美觀、操作便捷,系統(tǒng)成本低,功能易擴展,具有較好的使用和推廣價值。