□黃 鶯
隨著城市現(xiàn)代化進(jìn)程的快速發(fā)展,電梯已成為一種不可或缺的工具,同時(shí),對(duì)電梯性能的要求也不斷增加。電梯在運(yùn)行過程中,必須要做到安全、可靠和高效。但是,電梯使用過程由于缺少經(jīng)常維護(hù)保養(yǎng)、缺少運(yùn)行狀態(tài)監(jiān)控等原因,時(shí)常會(huì)發(fā)生電梯事故,對(duì)人們生命財(cái)產(chǎn)安全造成了不可挽回的損失。為了保證電梯安全、可靠地運(yùn)行,維修人員必須實(shí)時(shí)地掌握電梯運(yùn)行的運(yùn)行狀態(tài)和數(shù)據(jù)?;诖四康?,本文利用智能手機(jī)設(shè)計(jì)了電梯數(shù)據(jù)采集處理系統(tǒng),用于實(shí)時(shí)監(jiān)控電梯運(yùn)行的狀態(tài)數(shù)據(jù)。
(一)系統(tǒng)框架。單片機(jī)采集傳感器的數(shù)據(jù),經(jīng)處理后通過GSM 模塊以數(shù)據(jù)的形式發(fā)送到遠(yuǎn)程服務(wù)器,智能手機(jī)可以WIFI 或GPRS 的網(wǎng)絡(luò)從遠(yuǎn)程服務(wù)器獲取相關(guān)數(shù)據(jù),并進(jìn)行顯示,具體見圖1 所示。
圖1 系統(tǒng)框架圖
(二)硬件設(shè)計(jì)。系統(tǒng)的硬件包括單片機(jī)處理模塊、傳感器模塊、GSM 模塊。傳感器模塊用來采集電梯運(yùn)行過程中的環(huán)境參數(shù),如煙霧、火焰、有毒氣體等,單片機(jī)處理模塊用于處理傳感器采集的數(shù)據(jù),并通過GSM 模塊把數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器上。針對(duì)電梯運(yùn)行過程中的電壓和電流,采用具有RS485 通信協(xié)議的智能儀表,單片機(jī)通過RS485 通信協(xié)議與智能儀表實(shí)現(xiàn)電壓、電流參數(shù)的采集。單片機(jī)采用STC89C52RC 單片機(jī),GSM 模塊采用SIM900A GSM/GPRS 模塊,智能儀表采用的是邁特的交流電壓表和交流電流表。
(三)軟件設(shè)計(jì)。系統(tǒng)采用的是模塊化設(shè)計(jì),程序編程采用C 語(yǔ)言設(shè)計(jì)。軟件主要包括完成初始化程序、數(shù)據(jù)采集程序、預(yù)警判斷程序和數(shù)據(jù)發(fā)送程序。初始化程序主要完成串口和GPRS 模塊的初始化工作;數(shù)據(jù)采集程序主要是完成各種傳感器數(shù)據(jù)的采集;預(yù)警判斷程序完成數(shù)據(jù)處理的判斷,如果數(shù)據(jù)超過設(shè)定值,就進(jìn)行報(bào)警;數(shù)據(jù)發(fā)送程序則完成把數(shù)據(jù)向遠(yuǎn)程服務(wù)器發(fā)送的功能,以便手機(jī)能正確接收數(shù)據(jù)。
(一)系統(tǒng)功能。手機(jī)端監(jiān)測(cè)軟件主要有數(shù)據(jù)顯示功能、數(shù)據(jù)曲線繪制功能、數(shù)據(jù)保存和遠(yuǎn)程控制機(jī)電設(shè)備等功能。系統(tǒng)中定義了三個(gè)按鈕,分別用于“數(shù)據(jù)接收/停止”、“發(fā)送”和“關(guān)閉”?!皵?shù)據(jù)接收/停止”用于接收或停止遠(yuǎn)程服務(wù)器的數(shù)據(jù)讀取,“發(fā)送”向指定的手機(jī)號(hào)發(fā)送短信信息或者打開相應(yīng)的機(jī)電設(shè)備,而“關(guān)閉”則用來關(guān)閉機(jī)電設(shè)備。
(二)數(shù)據(jù)處理。手機(jī)客戶端通過Socket 來實(shí)現(xiàn)數(shù)據(jù)的接發(fā)并處理,通信的具體步驟主要有:
Step1:獲取IP 地址或域名和端口,定義socket_init()函數(shù),發(fā)送連接請(qǐng)求,直到連接成功。
Step2:使用getOutputStream()命令和getInputStream()命令得到socket 的數(shù)據(jù)流。
Step3:讀寫Socket,進(jìn)行數(shù)據(jù)處理。
Step4:關(guān)閉打開的數(shù)據(jù)流。
1.數(shù)據(jù)顯示。首先定義InputStream in = socket.getInputStream()獲取數(shù)據(jù)流,并定義一個(gè)buffer 變量,使用in.read(buffer)讀取數(shù)據(jù)到緩沖區(qū)再進(jìn)行處理,在顯示前先把數(shù)據(jù)轉(zhuǎn)換成字符型。具體實(shí)現(xiàn)源碼如下:
2.繪制曲線。為了更好地觀察采集的數(shù)據(jù)變化情況,對(duì)溫度、濕度、電壓等參數(shù)進(jìn)行曲線繪制,更加直觀。
定義了imageview_init()函數(shù)和DrawCG(Context context,int width,int height)函數(shù)來繪制圖片和曲線。在imageview_init()函數(shù)獲取手機(jī)屏幕的寬和高,并進(jìn)行繪制圖片。由于不同的變量顯示的圖片刻度也是不同的,因此定義了Bitmap draw_shidu(int xianshi_bianliang[])、Bitmap draw_dianya(int xianshi_bianliang[])等繪制不同的圖片底圖,然后再在底圖上面繪制曲線。在獲取數(shù)據(jù)時(shí),把數(shù)據(jù)先保存到一個(gè)長(zhǎng)度為50 的數(shù)組中,然后循環(huán)讀取數(shù)組中的數(shù)值在圖片上顯示。為了能切換到不同參數(shù)的曲線顯示,使用了數(shù)組形式操作,通過下拉菜單選取不同參數(shù),圖片上的顯示內(nèi)容也跟著變化。
按照設(shè)計(jì)電路圖連接好電路,接通電源,等GSM 網(wǎng)絡(luò)注冊(cè)成功后,下位機(jī)可以正常采集收據(jù)并通過GSM 模塊進(jìn)行發(fā)送。在手機(jī)上安裝編寫好的apk 程序,運(yùn)行程序,就可以正確接收到數(shù)據(jù),具體見圖2 所示。圖2 是溫度采集的曲線情況圖,曲線下面是采集的數(shù)值的顯示??梢酝ㄟ^“請(qǐng)選擇顯示的波形”菜單選取其它的顯示圖形。系統(tǒng)工作穩(wěn)定,正確接收數(shù)據(jù),運(yùn)行良好。
圖2 系統(tǒng)運(yùn)行效果圖
[1]徐航,趙國(guó)軍.基于Android 的電梯遠(yuǎn)程監(jiān)控系統(tǒng)[J].機(jī)電工程,2012
[2]朱建軍.基于PLC 的電梯監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)與軟件工程,2015
[3]汪丹鳳,章國(guó)寶.電梯安全運(yùn)行監(jiān)控系統(tǒng)現(xiàn)場(chǎng)檢測(cè)系統(tǒng)的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2015
[4]李斌.智能建筑中電梯遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2015