(湖北大學(xué) 物理與電子科學(xué)學(xué)院,武漢 430062)
隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,私家車的擁有量在快速增長(zhǎng),人們對(duì)汽車出行的依賴感逐漸增加,汽車的清潔和保養(yǎng)也越來越受到重視[1]。洗車作為汽車清潔的主要組成部分,越來越為人們所需。然而傳統(tǒng)洗車行業(yè)卻存在著較大的弊端,首先傳統(tǒng)洗車無法靈活的進(jìn)入社區(qū)、停車場(chǎng)等車流量高的場(chǎng)所,居民洗車往往需要去專門的店面,所以無法實(shí)現(xiàn)靈活洗車;其次,傳統(tǒng)的洗車方式會(huì)浪費(fèi)大量的水資源,不利于建設(shè)資源節(jié)約型社會(huì)。
針對(duì)上述傳統(tǒng)洗車行業(yè)所出現(xiàn)的問題,本文設(shè)計(jì)了一套自助洗車系統(tǒng),能根據(jù)用戶的需求實(shí)現(xiàn)自助洗車,并對(duì)洗車用水按流量或者按時(shí)間計(jì)費(fèi),真正做到即來即用、即用即走。同時(shí),本系統(tǒng)可以將洗車機(jī)的相關(guān)信息通過網(wǎng)絡(luò)發(fā)送至遠(yuǎn)程服務(wù)器端,實(shí)現(xiàn)洗車機(jī)聯(lián)網(wǎng),從而利于管理人員對(duì)洗車機(jī)進(jìn)行管理,以及對(duì)洗車行業(yè)的大數(shù)據(jù)統(tǒng)計(jì)與分析。
自助洗車系統(tǒng)由終端洗車機(jī)和云端管理系統(tǒng)組成,其整體框圖如圖1所示。終端洗車機(jī)由單片機(jī)主控板、LCD顯示屏、GPRS網(wǎng)絡(luò)通信模塊、支付模塊、傳感器組和水泵組成。主控芯片通過水流量計(jì)反饋的信息來控制水泵開關(guān)和計(jì)費(fèi),從而實(shí)現(xiàn)按流量計(jì)費(fèi)的洗車方式,并通過GPRS模塊將洗車機(jī)信息打包發(fā)送到遠(yuǎn)程服務(wù)器端。云端管理系統(tǒng)主要由UDP服務(wù)器、MySQL數(shù)據(jù)庫和Web服務(wù)器組成。UDP服務(wù)器接收從洗車機(jī)終端發(fā)送的數(shù)據(jù)信息,并將數(shù)據(jù)信息存入數(shù)據(jù)庫,Web服務(wù)器通過網(wǎng)頁將數(shù)據(jù)庫中的信息展現(xiàn)出來。
洗車機(jī)設(shè)計(jì)分為洗車機(jī)硬件設(shè)計(jì)和洗車機(jī)軟件設(shè)計(jì)。洗車機(jī)硬件由洗車機(jī)外殼、主控板、LCD顯示屏、水桶、泡沫桶、水泵和水流量計(jì)等組成。洗車機(jī)硬件結(jié)構(gòu)示意圖如圖2所示。
圖2 洗車機(jī)結(jié)構(gòu)示意圖
洗車機(jī)軟件程序設(shè)計(jì)主要為GPRS網(wǎng)絡(luò)通信模塊和支付模塊的配置和使用[2]。洗車機(jī)終端運(yùn)行程序流程圖如圖3所示。
圖3 主控程序流程圖
2.1.1 主控板設(shè)計(jì)
本系統(tǒng)的主控板選用基于Cortex-M3內(nèi)核的STM32F103VET6作為主控芯片,并且集成了USB電源輸出接口、溫度和水位傳感器接口、水流量計(jì)的OUT輸出接口、投幣器接口、閃付串口接口、以及11個(gè)繼電器接口和按鍵若干。如圖4所示,為主控板的三維PCB圖。
圖4 三維PCD圖
2.1.2 主要模塊的應(yīng)用
1)水流量計(jì):本系統(tǒng)選用霍爾流量傳感器檢測(cè)水流量[3]。水流量傳感器主要由塑料閥體、水流轉(zhuǎn)子組件和霍爾傳感器組成。當(dāng)水通過水流轉(zhuǎn)子組件時(shí),磁性轉(zhuǎn)子轉(zhuǎn)動(dòng)并且轉(zhuǎn)速隨流量變化而變化。隨著磁鐵和霍爾開關(guān)的距離改變,通過霍爾開關(guān)的磁通量也發(fā)生變化。當(dāng)電流垂直于外磁場(chǎng)通過導(dǎo)體時(shí),磁通量最大,在導(dǎo)體的垂直于磁場(chǎng)和電流方向的兩個(gè)端面之間會(huì)出現(xiàn)電勢(shì)差,進(jìn)而霍爾開關(guān)就會(huì)產(chǎn)生差動(dòng)脈沖信號(hào)并輸出。通過檢測(cè)脈沖信號(hào)的數(shù)量,并根據(jù)脈沖數(shù)量和水流量之間的對(duì)應(yīng)關(guān)系就可以得出脈沖數(shù)量對(duì)應(yīng)的水流量。因此,水流量的測(cè)量主要是依靠對(duì)傳感器輸出脈沖的頻率進(jìn)行處理,由流量計(jì)在一段時(shí)間下產(chǎn)生的高電平數(shù)決定,即Q(流量)=F(頻率)/R(商家設(shè)定值),對(duì)于不同的流量計(jì)其R(商家設(shè)定值)不同。本系統(tǒng)選用直徑為20 mm,流完1 L水輸出2400個(gè)脈沖的水流量計(jì)。
2)LCD顯示屏:本系統(tǒng)選用2.8寸的ALIENTEK TFT-LCD模塊作為顯示屏。該模塊支持65 K色顯示,顯示分辨率為320*240,接口為16位的80并口。LCD的驅(qū)動(dòng)程序步驟為:設(shè)置STM32與TETLCD模塊的管腳連接,初始化TFTLCD模塊以及通過函數(shù)將字符和自定義漢字顯示到TFTLCD模塊中。
3)溫度傳感器:本系統(tǒng)選用DS18B20數(shù)字溫度計(jì)模塊測(cè)量水的溫度[4]。該模塊將周圍環(huán)境的溫度信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并將轉(zhuǎn)換結(jié)果存放到Scratchpad中。Scratchpad一共有9個(gè)字節(jié)(BYTE0-BYTE8),其中轉(zhuǎn)換的數(shù)字信息就存放在BYTE0和BYTE1中。所以,DS18B20的使用程序就是讀取Scratchpad中BYTE0和BYTE1的值,并通過溫度-數(shù)據(jù)對(duì)應(yīng)表得出相應(yīng)的溫度數(shù)據(jù)。溫度傳感器開發(fā)使用的程序流程如下:
1)Initial(DS18B20初始化命令)
2)ROM Command(與功能命令相匹配的ROM命令)
3)Convert T(功能命令:讓DS18B20開始工作,采集周圍溫度)
4)等待DS18B20采集完成
5)Initial(DS18B20初始化命令)
6)ROM Command(與功能命令相匹配的ROM命令)
7)Read Scratchpad(功能命令:讀取Scratchpad的BYTE0和BYTE1字節(jié))
8)對(duì)照溫度-數(shù)據(jù)表計(jì)算出當(dāng)前周圍環(huán)境溫度值,并將數(shù)據(jù)結(jié)果反饋給主控芯片。
溫度-數(shù)據(jù)對(duì)照如表1所示。
表1 溫度-數(shù)據(jù)對(duì)照表
4)水位傳感器:本系統(tǒng)選用基于紅外光學(xué)原理的液位傳感器套件測(cè)量水位。傳感器套件實(shí)物如圖5所示。該套件利用紅外光學(xué)原理,將檢測(cè)的液位信號(hào)通過光學(xué)傳遞轉(zhuǎn)換成電壓信號(hào),從而判別液位情況。該套件的輸出方式有兩種,方式1:A管腳模擬輸出0~4.5 V,單片機(jī)通過對(duì)其模擬輸出量進(jìn)行AD轉(zhuǎn)換后可以得出具體的液位數(shù)據(jù);方式2:D管腳電平信號(hào)輸出,單片機(jī)通過檢測(cè)輸出端的高低電平可以判斷液位是否低于所設(shè)定閾值。本系統(tǒng)采用第二種輸出方式來測(cè)量當(dāng)前水位,當(dāng)水位低于設(shè)定閾值時(shí),傳感器套件D管腳輸出低電平。單片機(jī)采集水位不足信號(hào)后,通過通信模塊發(fā)送信息到遠(yuǎn)程服務(wù)器端,通知后臺(tái)工作人員加水。
圖5 水位傳感器實(shí)物圖
2.2.1 GPRS通信模塊
自助洗車系統(tǒng)最重要的部分就是數(shù)據(jù)的遠(yuǎn)程通信。本系統(tǒng)通過單片機(jī)采集各個(gè)傳感器的數(shù)據(jù)信息,并利用GPRS模塊將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器。GPRS模塊的通信流程為GPRS模塊通過基站將本地信息發(fā)送到移動(dòng)公司的服務(wù)器,移動(dòng)公司服務(wù)器再通過互聯(lián)網(wǎng)將信息轉(zhuǎn)發(fā)到具有公網(wǎng)IP的服務(wù)器中。基站、移動(dòng)服務(wù)器都由通信公司來提供,所以本系統(tǒng)只需要對(duì)GPRS模塊進(jìn)行編程[5]。
GPRS模塊有多種型號(hào)可供選擇,本系統(tǒng)選用SIM868來實(shí)現(xiàn)面向無連接的UDP通信,SIM868作為socket客戶端,遠(yuǎn)程數(shù)據(jù)接收服務(wù)器作為socket服務(wù)器端。SIM868模塊編程主要步驟為:時(shí)鐘初始化、串口初始化、串口接收和發(fā)送函數(shù)編寫,以及通過串口通信對(duì)SIM868進(jìn)行初始化。單片機(jī)和SIM868通信波特率數(shù)值設(shè)置為9600,并通過串口發(fā)送“AT+指令”對(duì)SIM868實(shí)現(xiàn)模塊上電、檢測(cè)SIM卡是否在位、查看是否注冊(cè)GPRS網(wǎng)絡(luò)等初始化設(shè)置。如表2所示,為SIM868主要指令信息表。其中指令“AT+CIPSTART”后需要寫入傳輸協(xié)議類型、服務(wù)器IP地址和相應(yīng)的端口號(hào)。本系統(tǒng)選用UDP面向無連接協(xié)議進(jìn)行網(wǎng)絡(luò)通信,所以傳輸協(xié)議類型應(yīng)為UDP;服務(wù)器IP地址為可訪問的公網(wǎng)IP;端口號(hào)綁定為19999。當(dāng)數(shù)據(jù)發(fā)送完成后,通過指令查詢服務(wù)端是否將信息接收完成,并等待下一次數(shù)據(jù)的寫入。
表2 SIM868初始化命令表
2.2.2 支付系統(tǒng)模塊
支付系統(tǒng)模塊主要分為3種支付方式:投幣器支付、RFID射頻卡支付和銀聯(lián)閃付。
1)投幣器支付:本系統(tǒng)選用“港都007”款投幣器模塊,該投幣器接口主要有9個(gè)接線管腳,分別標(biāo)注為“COUNTER, GND, COIN, DC+12 V,F(xiàn)AST, MIDDLE, SLOW,NO,NC”。其中“GND、DC+12 V”分別接地和直流電12 V電源;“ COIN”為信號(hào)輸出線,其本身是沒有電壓輸出的,需要在外部上拉一個(gè)電阻才能輸出對(duì)投幣完成的識(shí)別脈沖;“FAST, MIDDLE, SLOW”3個(gè)接線引腳用于控制輸出信號(hào)線的高低電平脈沖時(shí)間,為了防止誤差,讓單片機(jī)好捕捉到脈沖信號(hào),所以本系統(tǒng)選擇的是SLOW-60 ms的脈沖時(shí)間;最后“NC,NO”分別表示正常情況下投幣器信號(hào)端為低電平,有投幣時(shí)輸出為高電平和正常情況下投幣器信號(hào)端為高電平,有投幣時(shí)輸出為低電平(前提是信號(hào)輸出端已經(jīng)有了上拉電阻),本系統(tǒng)選擇NC常開,NO常閉。根據(jù)以上的接口信息,我們可以利用單片機(jī)對(duì)投幣器進(jìn)行控制。當(dāng)投幣器正常工作時(shí)COIN信號(hào)輸出口為低電平;當(dāng)有硬幣進(jìn)入時(shí),COIN口輸出60 ms的高電平信號(hào),單片機(jī)接收信號(hào)后將硬件計(jì)數(shù)量加1,完成一次投幣。當(dāng)投幣數(shù)量滿足洗車要求時(shí),進(jìn)入洗車模式選擇,并根據(jù)用戶的選擇計(jì)算出洗車的時(shí)間或者洗車的用水量
2)RFID卡支付:一套完整的RFID硬件系統(tǒng)由Reader和Transponder兩部分組成,其動(dòng)作原理為由Reader發(fā)射特定頻率的無線電波能量給Transponder,用以驅(qū)動(dòng)Transponder電路將內(nèi)部的ID CODE送出[6]。本系統(tǒng)選用MF-RC522射頻模塊作為Reader,標(biāo)準(zhǔn)S50空白卡作為Transponder。MF-RC522射頻模塊向S50卡發(fā)一組固定頻率的電磁波,卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路,其頻率與讀寫器的發(fā)射頻率相同,在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,向電容充電,當(dāng)電荷達(dá)到2 V時(shí),此電容可作為電源為其電路提供工作電壓,將片內(nèi)的數(shù)據(jù)發(fā)射出去或讀取讀卡器的數(shù)據(jù)。
對(duì)于本系統(tǒng)而言,MF-RC522射頻模塊主要用于對(duì)射頻卡的充值操作和扣費(fèi)操作。其中充值操作由后臺(tái)人員在固定操作點(diǎn)進(jìn)行充值操作,扣費(fèi)操作由洗車終端程序進(jìn)行自動(dòng)扣費(fèi)。本系統(tǒng)由單片機(jī)利用SPI接口對(duì)RC522模塊進(jìn)行編程,編程流程為模塊初始化、尋卡、防沖突、選卡、操作卡(讀卡或者寫卡)。MF-RC522射頻模塊的初始化命令如圖7所示,尋卡操作主要由單片機(jī)向射頻卡發(fā)送命令進(jìn)行尋卡,完成尋卡操作并成功尋到卡后程序?qū)⑦M(jìn)入防沖突操作,在防碰撞正確讀到卡的序列號(hào)后,使用select命令與卡建立通信,選卡成功后進(jìn)入認(rèn)證操作,認(rèn)證完成之后就能進(jìn)入讀寫操作了。洗車機(jī)終端主要根據(jù)水流量計(jì)或者定時(shí)器來計(jì)算消費(fèi)金額,消費(fèi)完成后停止出水,并將余額信息寫回射頻卡中。
圖6 MF-RC522初始化命令表
3)銀聯(lián)閃付:銀聯(lián)閃付需要在銀行辦理具有閃付支付模塊功能的POS〗機(jī),然后設(shè)定好所需要支付的金額,并等待用戶完成付款。閃付完成后,由閃付串口向單片機(jī)發(fā)送支付完成信息,單片機(jī)接收信息后開始進(jìn)行洗車操作。
云管理系統(tǒng)設(shè)計(jì)主要分為UDP服務(wù)器設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和Web服務(wù)器設(shè)計(jì),其中UDP服務(wù)器通過Python語言調(diào)用socket庫進(jìn)行網(wǎng)絡(luò)編程,負(fù)責(zé)將洗車機(jī)硬件端發(fā)送過來的信息進(jìn)行切片處理并連接數(shù)據(jù)庫,將信息導(dǎo)入數(shù)據(jù)庫[7]。數(shù)據(jù)庫采用MySQL關(guān)系型數(shù)據(jù)庫,存放洗車機(jī)終端的相關(guān)信息和運(yùn)行狀態(tài)。Web服務(wù)器采用Tomcat服務(wù)器,通過連接數(shù)據(jù)庫將洗車機(jī)相關(guān)信息顯示到前端。UDP服務(wù)器和Web服務(wù)器為同一具有公網(wǎng)IP地址的主機(jī),但是兩個(gè)服務(wù)器端口號(hào)不同,UDP服務(wù)器端口號(hào)與洗車機(jī)終端GPRS模塊綁定端口號(hào)一致為19 999,而Web服務(wù)器端口號(hào)為8080。兩個(gè)服務(wù)器共享一個(gè)數(shù)據(jù)庫,通過數(shù)據(jù)庫將兩個(gè)服務(wù)器聯(lián)系起來。
網(wǎng)絡(luò)通信運(yùn)輸層協(xié)議主要有面向連接的傳輸控制協(xié)議TCP和面向無連接的用戶數(shù)據(jù)報(bào)協(xié)議UDP。本系統(tǒng)選用UDP協(xié)議進(jìn)行遠(yuǎn)程通信,UDP服務(wù)器端采用循環(huán)的方式處理來自多個(gè)客戶端的請(qǐng)求。由于采用的是UDP方式來通信,使得沒有一個(gè)客戶端可以總是占據(jù)著服務(wù)器,因此服務(wù)器在設(shè)計(jì)、編程、排錯(cuò)和修改等工作都比較簡(jiǎn)單[7]。
3.1.1 UDP數(shù)據(jù)包格式
基于UDP協(xié)議的數(shù)據(jù)包由UDP首部和數(shù)據(jù)兩部分組成[8]。其中UDP的首部格式固定,所以本系統(tǒng)需要對(duì)數(shù)據(jù)部分的格式進(jìn)行規(guī)定,數(shù)據(jù)部分的格式可以理解為應(yīng)用層協(xié)議[9]。具體數(shù)據(jù)的通信協(xié)議如表3所示。通信協(xié)議中具體的數(shù)據(jù)內(nèi)容如表4所示。
洗車機(jī)啟動(dòng)后首先向服務(wù)器發(fā)送開機(jī)成功包通知服務(wù)器,之后每隔1分鐘向服務(wù)器發(fā)送心跳包保持在線,并定期向服務(wù)器報(bào)告各個(gè)傳感器的數(shù)值。由于溫度傳感器讀取數(shù)據(jù)的取值范圍為-55~+125 ℃,所以協(xié)議中溫度數(shù)據(jù)內(nèi)容從0x00到0xB4依次表示-55~+125 ℃。在交易狀態(tài)中,由0x00和0x01分別表示當(dāng)前是否有交易;由0x00和0x01分別表示客戶選擇的交易類型為按照時(shí)間扣費(fèi)還是按照流量扣費(fèi);由0x00、0x01和0x02分別表示客戶的付款方式為水卡支付、POS閃付還是投幣支付;另外使用3個(gè)字節(jié)表示預(yù)付費(fèi)金額,其中整數(shù)部分兩個(gè)字節(jié),小數(shù)部分一個(gè)字節(jié),表示范圍為0.0~999.9。
3.1.2 服務(wù)端程序設(shè)計(jì)
UDP服務(wù)器端由Python語言進(jìn)行開發(fā),需要導(dǎo)入的第三方庫為socket庫和MySQLdb庫。通過socket庫函數(shù)進(jìn)行網(wǎng)絡(luò)編程,接收洗車機(jī)終端發(fā)送的信息,并通過MySQLdb庫函數(shù)將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫。在將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫之前,需要完成數(shù)據(jù)庫創(chuàng)建,并根據(jù)洗車機(jī)運(yùn)行狀態(tài)等數(shù)據(jù)信息,完成了相關(guān)表的創(chuàng)建。服務(wù)器程序流程如圖7所示。
表3 UDP數(shù)據(jù)包數(shù)據(jù)部分格式
表4 具體數(shù)據(jù)內(nèi)容
圖7 UDP服務(wù)器程序流程圖
首先創(chuàng)建一個(gè)被動(dòng)套接字,綁定好IP地址和端口號(hào),與TCP服務(wù)器不同,UDP服務(wù)器不需要與客戶端進(jìn)行三次握手連接,可以直接進(jìn)入循環(huán)接收。通過調(diào)用socket庫recvfrom()方法就可以獲取客戶端的IP地址和端口號(hào)以及洗車機(jī)的相關(guān)信息。接收到信息以后,需要對(duì)信息進(jìn)行一個(gè)簡(jiǎn)單的校驗(yàn)來判斷數(shù)據(jù)的準(zhǔn)確性,如果數(shù)據(jù)準(zhǔn)確就對(duì)信息進(jìn)行切片處理,然后將信息通過調(diào)用MySQLdb庫cursor.execute(sql)方法執(zhí)行相應(yīng)的SQL語句,最后通過調(diào)用db.commit()方法將數(shù)據(jù)提交到數(shù)據(jù)庫,完成一次數(shù)據(jù)的處理。
洗車機(jī)信息管理平臺(tái)需要實(shí)時(shí)顯示洗車機(jī)終端的相關(guān)數(shù)據(jù),而且對(duì)于不同地區(qū)的管理人員需要負(fù)責(zé)的洗車機(jī)終端也不盡相同,所以本系統(tǒng)的Web前端需要使用動(dòng)態(tài)頁面。本系統(tǒng)選用Java語言進(jìn)行Web開發(fā),并選用Tomcat作為Servlet容器,采用JSP+Servlet+MySQL體系開發(fā)。通過Servlet連接并訪問數(shù)據(jù)庫MySQL,最后將數(shù)據(jù)庫信息回傳給JSP,通過JSP顯示洗車機(jī)相關(guān)信息的頁面[10]。
3.2.1 后臺(tái)程序設(shè)計(jì)
服務(wù)器后臺(tái)程序主要是Servlet對(duì)數(shù)據(jù)庫的連接和信息處理。其主要步驟為,通過加載JDBC驅(qū)動(dòng)實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫的連接,數(shù)據(jù)庫連接完成之后創(chuàng)建一個(gè)對(duì)象用來執(zhí)行SQL語句。由于本系統(tǒng)只需要對(duì)數(shù)據(jù)庫信息進(jìn)行查詢,所以僅需要通過SQL語句查詢所需的數(shù)據(jù),同時(shí)利用JavaBean定義數(shù)組對(duì)象接收查詢結(jié)果,最后將結(jié)果返回給前端。
圖8 信息管理網(wǎng)站頁面
圖9 測(cè)試結(jié)果
3.2.2 數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)選用MySQL關(guān)系型數(shù)據(jù)庫實(shí)現(xiàn)對(duì)數(shù)據(jù)的存取[11]。根據(jù)UDP協(xié)議數(shù)據(jù)部分,以及后臺(tái)管理人員的相關(guān)信息,所以數(shù)據(jù)庫需要建立多張表。主要是設(shè)備信息、交易記錄、統(tǒng)計(jì)查詢、管理員注冊(cè)信息和UDP監(jiān)控。設(shè)備信息中包含設(shè)備編號(hào)、設(shè)備名稱、設(shè)備放置地點(diǎn)、負(fù)責(zé)人姓名、設(shè)備是否處于工作狀態(tài)以及是否有水等信息;交易記錄中包含設(shè)備編號(hào)、名稱型號(hào)和付款方式等信息;統(tǒng)計(jì)查詢中包括收益情況等;管理員信息包括賬號(hào)身份信息和創(chuàng)建日期等信息;UDP監(jiān)控中包含目的地址、設(shè)備編號(hào)和數(shù)據(jù)類型等信息。
3.2.3 前端設(shè)計(jì)
前端頁面主要由傳統(tǒng)網(wǎng)頁HTML中插入Java程序段形成JSP文件,并通過JSP技術(shù)進(jìn)行動(dòng)態(tài)頁面顯示。信息管理網(wǎng)站包含設(shè)備信息管理、UDP數(shù)據(jù)管理和系統(tǒng)管理。其中設(shè)備信息管理包含設(shè)備信息(用于實(shí)時(shí)顯示設(shè)備編號(hào)、名稱、型號(hào)等信息)、交易記錄(用于實(shí)時(shí)顯示客戶交易方式、消費(fèi)金額、交易時(shí)間等信息)和統(tǒng)計(jì)查詢(用于統(tǒng)計(jì)歸納并實(shí)時(shí)顯示每臺(tái)設(shè)備月季收入)三項(xiàng)基本功能。UDP數(shù)據(jù)管理包含接收數(shù)據(jù)(顯示設(shè)備目的地址、設(shè)備編號(hào)、數(shù)據(jù)類型)和UDP監(jiān)控(用于顯示設(shè)備IP地址、目標(biāo)端口號(hào)等信息)兩個(gè)基本功能。系統(tǒng)管理包含系統(tǒng)菜單、初始化、數(shù)據(jù)備份、后臺(tái)管理、信息提醒、系統(tǒng)配置、操作日志、計(jì)劃任務(wù)等基本功能列表。網(wǎng)站頁面如圖8所示。
完成對(duì)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)之后,進(jìn)行系統(tǒng)測(cè)試工作。測(cè)試內(nèi)容包括洗車機(jī)的正常運(yùn)作狀態(tài)、各項(xiàng)數(shù)據(jù)傳感器的采集精度、GPRS通信模塊的數(shù)據(jù)傳輸準(zhǔn)確性、以及后臺(tái)管理系統(tǒng)的運(yùn)作情況。測(cè)試中,我們?cè)趯W(xué)校附近設(shè)置了自助洗車點(diǎn),測(cè)試時(shí)間為一周。各項(xiàng)傳感器采集的數(shù)據(jù)通過GPRS模塊發(fā)送到實(shí)驗(yàn)室租借的云服務(wù)器上,并存儲(chǔ)到MySQL數(shù)據(jù)庫中,實(shí)現(xiàn)了對(duì)洗車機(jī)的遠(yuǎn)程監(jiān)控,圖9為信息管理系統(tǒng)Web服務(wù)器連接到MySQL數(shù)據(jù)庫對(duì)洗車機(jī)終端發(fā)送的數(shù)據(jù)進(jìn)行顯示的界面。
基于物聯(lián)網(wǎng)技術(shù)的自助洗車系統(tǒng)中,通過STM32對(duì)多種傳感器的實(shí)時(shí)信息采集,可以更加準(zhǔn)確的獲取洗車機(jī)終端的詳細(xì)運(yùn)行信息,并利用霍爾流量傳感器實(shí)現(xiàn)可以按照流量計(jì)費(fèi)的新型計(jì)費(fèi)方式。同時(shí),將網(wǎng)絡(luò)編程技術(shù)、數(shù)據(jù)庫技術(shù)和Web開發(fā)技術(shù)相結(jié)合,能有效的搭建一個(gè)針對(duì)智能終端的信息管理系統(tǒng)。相比于傳統(tǒng)洗車方式,自助洗車機(jī)能具有更高的效率,更少的時(shí)間以及更少的水資源浪費(fèi),相信在物聯(lián)網(wǎng)技術(shù)快速發(fā)展的今天,基于物聯(lián)網(wǎng)的自助洗車系統(tǒng)能得到一個(gè)更好的應(yīng)用。