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