何德伍
DOI:10.16661/j.cnki.1672-3791.2016.27.025
摘 要:該液位監(jiān)測控制系統(tǒng)主要是通過傳感器將液位的高度測量出來,然后發(fā)送到上位機,通過靜態(tài)和動態(tài)圖形顯示的方法來對液位進行監(jiān)測;上位機上面設定相應的按鈕可以對下位機進行控制,讓下位機去完成指定的動作。上位機和下位機采用藍牙進行通信。上位機是在PC端運行的應用程序,下位機是由單片機組成的執(zhí)行和反饋系統(tǒng)。
關鍵詞:單片機 藍牙 上位機
中圖分類號:TP273 文獻標識碼:A 文章編號:1672-3791(2016)09(c)-0025-02
液位監(jiān)控技術是近幾年才發(fā)展起來的一項新技術。它的誕生標志著科學技術又向前邁進了一大步。此技術主要用來監(jiān)測一些如高壓,易爆的特殊液體。
該系統(tǒng)使用STC89C51單片機作為下位機的主控芯片。通過它來讀取液位值,接收和處理上位機的命令,以及對外部電路的控制。
1 硬件以及電路
該系統(tǒng)硬件主要由單片機最小系統(tǒng)、繼電器電路、DS18B20電路構成。使用到的模塊有:藍牙模塊HC-06、超聲波模塊HC-SR04以及USB轉TTL模塊。
1.1 下位機控制電路
下位機控制電路是以單片機作為控制核心,通過使用繼電器來控制液體進出開關的打開與關閉。其電路原理圖如圖1所示。
單片機通過拉低自身與繼電器相連的引腳,使繼電器內部的線圈產(chǎn)生磁力來帶動銜鐵的吸合,繼而讓液體進出開關打開或者關閉。繼電器是一種常用的弱電控制強電元件。該次使用的是5 V的直流電控制220 V的交流電,使用它最大的好處就是能讓人安全的控制設備,不會造成事故。
1.2 指示燈電路
指示燈電路主要用來體現(xiàn)整個硬件的工作狀態(tài)。他由LED和電阻串聯(lián)在一起構成,其中電阻起到一個限流的作用,用來保護指示燈不被損壞。當它們所指示的電器電路沒有工作時,就不會發(fā)光,反之就會發(fā)光。
1.3 液位測量電路
液位的測量主要使用超聲波模塊HC-SR04來測量。此模塊共有4個引腳,除了兩個正負極引腳外,另外兩個分別是TRIG、ECHO。這種模塊在配合單片機進行測距時,首先給與TRIG引腳1個10us的高電平,然后等待ECHO引腳拉高,一旦拉高就開啟單片機的定時器進行計時。最后測量出來的距離就等于聲速乘以時間最后除以2。
上面所做的只是粗略的測量,大家知道聲速受到溫度的影響很大,所以要進行溫度補償,并要使用溫度傳感器。最后聲速的大小修改為:聲速=334.1+0.61×溫度。
1.4 上位機下位機的通信
上位機與下位機的通信實際是串口通信。上位機和下位機實時的數(shù)據(jù)交換就是通過串口實現(xiàn)。下位機向上發(fā)數(shù)據(jù)時,先把液位值發(fā)送到緩沖區(qū)然后上位機會識別此數(shù)據(jù),最后進行處理。上位機向下發(fā)數(shù)據(jù)也是發(fā)送到緩沖區(qū),下位機檢測到上位機發(fā)下來的數(shù)據(jù)就進行判斷,然后進行相關的控制動作。
2 軟件設計
2.1 下位機程序流程
下位機中只要一打開電源開關,整個下位機就開始測距然后一直向上位機發(fā)送液位的距離。當上位機有數(shù)據(jù)發(fā)下來時,下位機就產(chǎn)生中斷,在中斷里匹配此數(shù)據(jù)對應的程序命令,進而執(zhí)行上位機的命令,直到中斷結束,最后又重復進行測距和發(fā)送液位數(shù)據(jù)的步驟(如圖2)。
2.2 上位機制作
上位機采用軟件visual studio進行開發(fā),開發(fā)所用到的語言是C Sharp。其界面如圖3所示。
由于電腦的串口有很多,所以要使用一個comboBox(下拉框)選擇通信的串口,當串口選擇后要對串口進行控制,因此使用button(按鈕)來打開或者關閉串口。上位機的第一個功能是對液位進行監(jiān)測。理所當然要能夠動態(tài)的顯示液位的高度值。實現(xiàn)此功能是則需要一個標簽來顯示液位的高度值,但光是一個標簽顯示還不夠,最好還要加上一個圖形來動態(tài)顯示,所以內嵌一個了progressBar。progressBar來顯示液位的變化趨勢。而上位機實現(xiàn)控制下位機硬件是通過button來實現(xiàn)的,上位機中總共設計了4組開關,其中兩個是液體進入和液體排出開關。另外兩個是留著擴展的,方便以后進一步的升級。
上位機只要沒有打開串口或者是串口打開錯誤時就一直等待,直到打開串口就開始工作。串口只要一打開馬上顯示串口數(shù)據(jù),然后就等待是否有相關的按鈕被點擊,如果有就發(fā)送與此按鈕相關的命令到串口上。
3 系統(tǒng)測試
測試采用上位機和下位機先分開測試,再合起來測試的思路看該系統(tǒng)是否符合要求。其測試方法與結果如表1所示。
4 結語
進過測試該系統(tǒng)完全符合要求。上位機可以顯示液位高度值以及液位的變化趨勢,同時還可以通過點擊上位機的相關按鈕來控制下位機中的硬件。下位機能實時發(fā)送液位值到上位機中,當接收到上位機命令時,下位機也能執(zhí)行此命令。
參考文獻
[1] 甘勇,尚展壘.C#程序設計[M].北京:人民郵電出版社,2016.
[2] 郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009.
[3] Robin Heydon.低功耗藍牙開發(fā)權威指南[M].北京:機械工業(yè)出版社,2014.
[4] 明日科技.C#入門到精通[M].3版.北京:清華大學出版社,2012.
[5] 黃杰勇.Alrium Designer實戰(zhàn)攻略與高速PCB設計[M].北京:電子工業(yè)出版社,2015.