李 丹
(韶關(guān)學(xué)院 計(jì)算機(jī)科學(xué)學(xué)院,廣東 韶關(guān)512005)
隨著我國(guó)經(jīng)濟(jì)的發(fā)展和居民收入水平的不斷提高,機(jī)動(dòng)車(chē)保有量逐年增加.車(chē)輛與車(chē)位的配置比例嚴(yán)重失調(diào),車(chē)多車(chē)位少、停車(chē)難的問(wèn)題日益嚴(yán)重.解決這一問(wèn)題,除了增加車(chē)位的規(guī)劃與建設(shè)外,通過(guò)提高現(xiàn)有停車(chē)場(chǎng)的智能化水平、設(shè)計(jì)車(chē)位引導(dǎo)系統(tǒng)來(lái)提高現(xiàn)有車(chē)位的利用率也是一個(gè)有效途徑.
車(chē)位引導(dǎo)系統(tǒng)是應(yīng)用于停車(chē)場(chǎng),通過(guò)車(chē)位檢測(cè)模塊檢測(cè)數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)處理與傳輸在引導(dǎo)指示模塊顯示信息從而引導(dǎo)車(chē)輛順利進(jìn)入目的車(chē)位的智能化系統(tǒng)[1].現(xiàn)有智能停車(chē)場(chǎng)的車(chē)位引導(dǎo)系統(tǒng)具有車(chē)位占用情況動(dòng)態(tài)檢測(cè)與提示、車(chē)位使用率統(tǒng)計(jì)、車(chē)位進(jìn)出指示等功能,引導(dǎo)車(chē)主找到空位.但上述功能只有當(dāng)車(chē)主進(jìn)入停車(chē)場(chǎng)內(nèi)才能通過(guò)車(chē)場(chǎng)內(nèi)的公共車(chē)位引導(dǎo)系統(tǒng)獲得[1-3],無(wú)法滿足人們?cè)诔霭l(fā)前或在途中時(shí)根據(jù)多個(gè)可選目的停車(chē)場(chǎng)的當(dāng)前車(chē)位信息自由自主的選擇車(chē)位,甚至更換目的地以及在出入車(chē)之前或當(dāng)時(shí)隨時(shí)隨地的獲得所選車(chē)位的最佳進(jìn)出路線指示等需求.本文提出一種智能停車(chē)場(chǎng)Web車(chē)位引導(dǎo)系統(tǒng),用戶可通過(guò)手機(jī)、計(jì)算機(jī)等終端通過(guò)Web瀏覽器獲得目的地停車(chē)場(chǎng)的實(shí)時(shí)車(chē)位信息,以Flash動(dòng)畫(huà)頁(yè)面的形式為用戶顯示停車(chē)場(chǎng)的車(chē)位平面布局、當(dāng)前車(chē)位占用率、空余車(chē)位數(shù)量、位置、大小以及進(jìn)出各車(chē)位的動(dòng)態(tài)路線提示等信息,幫助車(chē)主對(duì)不同停車(chē)場(chǎng)的不同車(chē)位做出合理選擇,從而避免到了目的地才發(fā)現(xiàn)沒(méi)有合適的車(chē)位或者由于對(duì)停車(chē)場(chǎng)內(nèi)環(huán)境不熟悉造成的停車(chē)不便等問(wèn)題.
系統(tǒng)主要由車(chē)位信息檢測(cè)模塊、下位機(jī)接收控制模塊、上位機(jī)控制模塊、車(chē)位引導(dǎo)顯示模塊四大部分組成.其中,車(chē)位檢測(cè)模塊與下位機(jī)接收控制模塊統(tǒng)稱下位機(jī)模塊.
圖1 智能停車(chē)場(chǎng)在線車(chē)位引導(dǎo)系統(tǒng)框圖
如圖1所示,每個(gè)車(chē)位上均裝有一個(gè)車(chē)位信息檢測(cè)模塊,用于檢測(cè)停車(chē)場(chǎng)每個(gè)車(chē)位的狀態(tài),并將采集的數(shù)據(jù)通過(guò)無(wú)線發(fā)射裝置發(fā)送至下位機(jī)接收控制模塊.下位機(jī)接收控制模塊將接收到的所有車(chē)位信息通過(guò)串口發(fā)送至上位機(jī),由上位機(jī)控制模塊將串口傳來(lái)的數(shù)據(jù)存入數(shù)據(jù)庫(kù).當(dāng)用戶利用手機(jī)、平板計(jì)算機(jī)等終端設(shè)備通過(guò)Web瀏覽器訪問(wèn)該系統(tǒng)域名時(shí),服務(wù)器中的車(chē)位引導(dǎo)顯示模塊負(fù)責(zé)讀取數(shù)據(jù)庫(kù)中的停車(chē)場(chǎng)信息并通過(guò)網(wǎng)絡(luò)傳輸至客戶的Web瀏覽器并以Flash動(dòng)畫(huà)形式顯示.用戶通過(guò)Web訪問(wèn)可隨時(shí)隨地直觀的讀取停車(chē)場(chǎng)內(nèi)當(dāng)前的車(chē)位信息,并可以由針對(duì)性的獲取車(chē)位路線指示.
對(duì)比現(xiàn)有系統(tǒng)[1-3],本系統(tǒng)的主要特點(diǎn)在于:(1)停車(chē)場(chǎng)內(nèi)各車(chē)位信息檢測(cè)模塊采用無(wú)線收發(fā)數(shù)據(jù),省去了布線的麻煩.(2)車(chē)位引導(dǎo)顯示模塊不只限于本地指示屏等的引導(dǎo),而是可以利用計(jì)算機(jī)等終端設(shè)備通過(guò)Web瀏覽器隨時(shí)隨地獲得停車(chē)場(chǎng)的車(chē)位引導(dǎo)信息.(3)顯示方式突破了本地顯示屏只能顯示某區(qū)域空余車(chē)位數(shù)、或車(chē)場(chǎng)布局的局限,采用Flash動(dòng)畫(huà)用戶不僅對(duì)停車(chē)場(chǎng)的車(chē)位布局、可用車(chē)位信息一目了然,還可以通過(guò)人機(jī)交互動(dòng)態(tài)的呈現(xiàn)所需車(chē)位的進(jìn)出路線指示等信息,服務(wù)更具人性化.
該系統(tǒng)主要可分為兩大部分,下位機(jī)及上位機(jī).下位機(jī)由單片機(jī)控制電路實(shí)現(xiàn),上位機(jī)在PC機(jī)中通過(guò)軟件實(shí)現(xiàn).下位機(jī)又分為車(chē)位信息檢測(cè)模塊、下位機(jī)接收控制模塊兩部分.系統(tǒng)硬件電路設(shè)計(jì)如下.
車(chē)位信息檢測(cè)模塊固定于在各車(chē)位上方天花板上,用于檢測(cè)并無(wú)線發(fā)送車(chē)位信息至下位機(jī)控制模塊,其電路組成框圖如圖2所示.由單片機(jī)控制模塊、超聲測(cè)距傳感模塊、電平轉(zhuǎn)換模塊、無(wú)線模塊四大部分組成.其中,STC89C52單片機(jī)為主控制器,其標(biāo)準(zhǔn)供電電壓5 V,系統(tǒng)時(shí)鐘晶振為11.059 2 MHz.采用HCSR04超聲波測(cè)距傳感器通過(guò)距離探測(cè)判斷是否有車(chē),其工作電壓5 V.采用nrf905無(wú)線收發(fā)器對(duì)數(shù)據(jù)進(jìn)行收發(fā),其工作在433 Mhz開(kāi)放頻段,工作電壓范圍:1.9 V~3.6 V,支持50 kbps傳輸速率,傳輸距離平均可達(dá)150 m,完全可以滿足停車(chē)場(chǎng)范圍內(nèi)的無(wú)線信號(hào)傳輸.AMS1117芯片把5 V電源轉(zhuǎn)化成3.3 V電源,給nrf905無(wú)線收發(fā)器供電.
圖2 車(chē)位信息檢測(cè)模塊組成框圖
圖3 車(chē)位信息檢測(cè)模塊電路圖
圖3為各模塊引腳連接的電路設(shè)計(jì)圖.其中,HCSR04超聲波測(cè)距傳感器除了電源和地外還有兩個(gè)引腳,一個(gè)是觸發(fā)引腳,與單片機(jī)的P1.1腳相連,為其提供10 us以上的高電平脈沖觸發(fā)信號(hào).另一引腳為回送信號(hào),與單片機(jī)的P1.0腳相連.當(dāng)傳感器被觸發(fā),通過(guò)P1.0檢測(cè)回送引腳的高電平脈沖寬度可計(jì)算得出測(cè)量距離.P3.7腳接LED燈,用于指示車(chē)位有無(wú).控制nrf905模塊的引腳中除電源與地外,PWR_UP,TRX_CE,TX_EN,3個(gè)引腳用于控制其工作模式.工作模式可處于接收、發(fā)送、空閑、關(guān)機(jī)四種狀態(tài).MISO,MOSI,SCK,CSN四個(gè)引腳用于SPI(Serial Peripheral Interface--串行外設(shè)接口)的數(shù)據(jù)收發(fā).其余,uCPLK晶振分頻輸出、CD載波檢測(cè)指示、AM地址匹配指示在發(fā)送端暫未用到.AMS1117點(diǎn)電平轉(zhuǎn)換模塊中P2為排線,方便電路測(cè)試與連接.
下位機(jī)接收控制模塊放置在停車(chē)場(chǎng)控制中心與中心控制計(jì)算機(jī)通過(guò)USB接口相連,用于接收各車(chē)位上方車(chē)位檢測(cè)信息模塊發(fā)送的信息并將其通過(guò)串口發(fā)給中心控制計(jì)算機(jī).由單片機(jī)控制模塊、RS232-USB轉(zhuǎn)換模塊、電平轉(zhuǎn)換模塊、無(wú)線模塊四大部分組成.RS232-USB轉(zhuǎn)換模塊模塊采用PL2303HX芯片,可實(shí)現(xiàn)RS232串口通信數(shù)據(jù)格式與USB數(shù)據(jù)格式的雙向轉(zhuǎn)換,并利用USB口為單片機(jī)提供5 V供電,通過(guò)USB接口實(shí)現(xiàn)下位機(jī)控制模塊與計(jì)算機(jī)的串口通信.電路接口為PL2303HX的RXD,TXD分別接單片機(jī)的TXD,RXD.nrf905模塊的CD、AM引腳分別接P1.2,P1.3,用于接收信號(hào)的檢測(cè).其余模塊電路與圖3相同.
下位機(jī)車(chē)位信息檢測(cè)模塊及接收控制模塊的程序流程圖如圖4(a)、(b)所示.檢測(cè)模塊程序開(kāi)始首先是對(duì)超聲波距離傳感器所要用到的定時(shí)器T0及超聲測(cè)距傳感器進(jìn)行初始化:將定時(shí)器寄存器初值設(shè)為T(mén)MOD=0x21,使其工作在方式1,初值TH0=TL0=0,并令TR0=1開(kāi)啟定時(shí)器.之后,將無(wú)線模塊nrf905上電后設(shè)為空閑模式并將其功能設(shè)置為:(1)不重發(fā),頻率433.2 MHz,發(fā)射功率6 dBm,正常模式;(2)收發(fā)各4字節(jié)地址寬度;(3)收發(fā)有效數(shù)據(jù)寬度2位;(4)16位CRC校驗(yàn),允許校驗(yàn),晶振16 MHz,沒(méi)有外部時(shí)鐘;(5)確定其接收機(jī)地址.
圖4 下位機(jī)控制程序流程圖
初始化之后啟動(dòng)傳感器,令TX(單片機(jī)P1.1腳)為1,持續(xù)10 us后置0.當(dāng)傳感器回送信號(hào)RX(單片機(jī)P1.0腳)為1時(shí)啟動(dòng)定時(shí)器令TR0=1,直至RX=0停止定時(shí)令TR0=0.根據(jù)傳感器給定公式:測(cè)試距離=(高電平時(shí)間×聲速(340 m/s))/2計(jì)算得到探測(cè)距離.系統(tǒng)設(shè)定車(chē)位地面距天花板高度3 m,車(chē)體高度大于1 m.根據(jù)探測(cè)距離可以判斷,當(dāng)測(cè)得距離小于2 m時(shí)說(shuō)明車(chē)位有車(chē)停放,車(chē)位上停車(chē)指示燈亮,反之無(wú)車(chē),停車(chē)指示燈滅.當(dāng)車(chē)位狀態(tài)發(fā)生變化:即由有車(chē)變成沒(méi)車(chē)或由沒(méi)車(chē)變成有車(chē)的時(shí)候,單片機(jī)控制啟動(dòng)無(wú)線nrf905,將其設(shè)為發(fā)送狀態(tài)并發(fā)送數(shù)據(jù).之后一直循環(huán)執(zhí)行上述步驟.
接收控制模塊進(jìn)入程序首先對(duì)串口進(jìn)行初始化和對(duì)無(wú)線模塊進(jìn)行功能設(shè)置,使接收端無(wú)線模塊的功能和發(fā)送端的功能一樣,這樣才能保證無(wú)線模塊之間的正常通信.之后進(jìn)入循環(huán)接收流程:當(dāng)接收端的無(wú)線模塊nrf905在指定頻率檢測(cè)到信號(hào)并地址匹配后就開(kāi)始接收數(shù)據(jù),單片機(jī)將接收到的數(shù)據(jù)存入發(fā)送寄存器通過(guò)USB接口以串口通信的格式發(fā)送到上位機(jī).
通過(guò)上述流程,下位機(jī)控制模塊將無(wú)線接收的數(shù)據(jù)經(jīng)串口Com4發(fā)送給上位機(jī).串口通信協(xié)議設(shè)定如下:采用10位異步通信方式,單片機(jī)的串行口控制寄存器SCON工作在方式1,初值設(shè)為SCON=0x50,每次發(fā)送或接收一幀信息為10位:1位起始位(0)、8位數(shù)據(jù)位和1位停止位(1),無(wú)校驗(yàn)位.采用定時(shí)器1工作方式2為波特率發(fā)生器,定時(shí)器寄存器初值設(shè)為T(mén)MOD=0x20.根據(jù)設(shè)定通信波特率9 600 bps,將電源控制寄存器初值設(shè)為PCON=0x00,定時(shí)器初值為T(mén)H1=TL1=0xFD.設(shè)定下位機(jī)發(fā)給串口的車(chē)位信息格式為:2個(gè)8位的16進(jìn)制數(shù),第一個(gè)8位表示車(chē)位號(hào),第二位表示車(chē)位狀態(tài).比如發(fā)送{0x0A,0x00}表示10號(hào)車(chē)位沒(méi)車(chē),{0x0A,0x01}表示10號(hào)車(chē)位有車(chē).
本設(shè)計(jì)數(shù)據(jù)庫(kù)采用SQL Server 2005以支持多用戶Web訪問(wèn).建立一個(gè)名為carInfarmation的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中建立carStatus表用于存儲(chǔ)車(chē)輛信息.表中設(shè)置四個(gè)變量:car_num,car_on,car_sta,car_end,car_time分別表示車(chē)位號(hào)碼,是否有車(chē),進(jìn)入車(chē)位時(shí)間,離開(kāi)車(chē)位的時(shí)間,停車(chē)總時(shí)間.
上位機(jī)接收控制模塊是在以PC機(jī)Windows平臺(tái)的上位機(jī)中利用VB進(jìn)行開(kāi)發(fā)設(shè)計(jì)的功能模塊,其功能是將下位機(jī)發(fā)來(lái)的串口數(shù)據(jù)接收并存入數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)下位機(jī)與前臺(tái)車(chē)位引導(dǎo)顯示模塊的信息交互.設(shè)計(jì)通過(guò)MSComm控件實(shí)現(xiàn)串口數(shù)據(jù)收發(fā),工作流程為:首先利用ADO的connection對(duì)象的Open方法連接名為carInfarmation數(shù)據(jù)庫(kù),之后選擇串口號(hào)并打開(kāi)串口,當(dāng)有數(shù)據(jù)來(lái)時(shí)觸發(fā)接收數(shù)據(jù)事件,將數(shù)據(jù)以字節(jié)為單位讀入.第一字節(jié)代表車(chē)位號(hào),第二字節(jié)為是否有車(chē).當(dāng)某車(chē)位號(hào)從無(wú)車(chē)變?yōu)橛熊?chē)時(shí),更新數(shù)據(jù)庫(kù)中表carStatus中相應(yīng)車(chē)位的車(chē)位狀態(tài)car_on并記錄入車(chē)時(shí)間car_sta.當(dāng)某車(chē)位從有車(chē)變?yōu)闊o(wú)車(chē)時(shí),更新相應(yīng)車(chē)位的車(chē)位狀態(tài)car_on并記錄出車(chē)時(shí)間car_end,同時(shí)計(jì)算出入車(chē)的時(shí)間差即停車(chē)時(shí)間car_time.
車(chē)位引導(dǎo)顯示是整個(gè)系統(tǒng)的前臺(tái),是一個(gè)供用戶通過(guò)Web瀏覽器訪問(wèn)的站點(diǎn).用戶訪問(wèn)頁(yè)面采用Flash動(dòng)畫(huà)實(shí)現(xiàn)車(chē)位引導(dǎo)顯示.由于Flash不能直接操作數(shù)據(jù)庫(kù),需通過(guò)ASP.net執(zhí)行與數(shù)據(jù)庫(kù)的交互.因此,設(shè)計(jì)前臺(tái)Flash采用Flash CS4,Action Script3.0語(yǔ)言,與數(shù)據(jù)庫(kù)的交互采用VisualStudio 2008,C#語(yǔ)言.首先通過(guò)Visual studio 2008新建一個(gè)ASP站點(diǎn),用OdbcConnection連接carInfarmation數(shù)據(jù)庫(kù)對(duì)應(yīng)的ODBC數(shù)據(jù)源.ASP通過(guò)DataAdapter讀取數(shù)據(jù)庫(kù)中表的信息存在DataSet中,并用Response.Write()語(yǔ)句將信息輸出在一個(gè)指定頁(yè)面.而Flash定時(shí)通過(guò)URLRequest()方法向該頁(yè)面的唯一資源定位符(URL)建立請(qǐng)求對(duì)象,通過(guò)URLLoader()方法建立一個(gè)urlLoader對(duì)象,利用urlLoader.load(URLRequest對(duì)象)向URL指定頁(yè)面請(qǐng)求加載ASP輸出的數(shù)據(jù),通過(guò)urlLoader.addEventListener(Event.COMPLETE,ec)對(duì)該事件進(jìn)行偵聽(tīng),當(dāng)完成響應(yīng)結(jié)果就觸發(fā)COMPLETE事件同時(shí)調(diào)用ec函數(shù)將數(shù)據(jù)更新到Flash界面上實(shí)現(xiàn)動(dòng)態(tài)的車(chē)位信息引導(dǎo)顯示.
圖5 前臺(tái)用戶Web訪問(wèn)車(chē)位引導(dǎo)顯示界面
用戶通過(guò)Web訪問(wèn)看到的Flash車(chē)位引導(dǎo)顯示界面效果如圖5所示.該界面是韶關(guān)學(xué)院教師公寓停車(chē)位的簡(jiǎn)單模擬.每個(gè)方框表示一個(gè)車(chē)位,分別編號(hào)1~21,總計(jì)21個(gè)車(chē)位.方框中為紅色的表示已有車(chē).對(duì)于有車(chē)車(chē)位,車(chē)主在出車(chē)前點(diǎn)擊旁邊灰色圓形按鈕并點(diǎn)擊確定按鈕可顯示該車(chē)為的最佳出車(chē)路線動(dòng)畫(huà),引導(dǎo)出車(chē).當(dāng)車(chē)主出車(chē)完畢或不需引導(dǎo)時(shí),點(diǎn)擊取消按鈕結(jié)束顯示.對(duì)于無(wú)車(chē)車(chē)位,車(chē)主可以點(diǎn)擊旁邊的灰色圓形按鈕并選擇確定按鈕,系統(tǒng)會(huì)顯示進(jìn)入相應(yīng)車(chē)位的最佳路線動(dòng)畫(huà).如圖5中8號(hào)車(chē)位的入車(chē)路線動(dòng)態(tài)指示動(dòng)畫(huà)截圖.當(dāng)不需要指示時(shí),點(diǎn)擊取消按鈕將結(jié)束動(dòng)畫(huà)顯示.界面左上方實(shí)時(shí)顯示剩余車(chē)位總數(shù),圖5中當(dāng)前剩余數(shù)為17.
Web車(chē)位引導(dǎo)系統(tǒng)突破了現(xiàn)有車(chē)位引導(dǎo)系統(tǒng)只能在停車(chē)場(chǎng)內(nèi)通過(guò)固有設(shè)施在本地獲得引導(dǎo)的局限,車(chē)主在出發(fā)前及停車(chē)場(chǎng)內(nèi)可利用手機(jī)、計(jì)算機(jī)、筆記本、平板電腦等通信終端通過(guò)Web瀏覽獲得停車(chē)場(chǎng)內(nèi)的車(chē)位的實(shí)時(shí)狀態(tài),并根據(jù)車(chē)主的選擇以動(dòng)畫(huà)形式顯示出入車(chē)的最佳路線,隨時(shí)隨地為車(chē)主提供車(chē)位引導(dǎo).能夠有效降低車(chē)主在出行時(shí)尋找車(chē)位及進(jìn)出車(chē)位所需的時(shí)間,提高車(chē)場(chǎng)的智能化管理水平及車(chē)位的綜合利用率,給用戶帶來(lái)高效、舒適的停車(chē)體驗(yàn).
[1]郭娟黎.大型停車(chē)場(chǎng)綜合管理系統(tǒng)方案設(shè)計(jì)[J].建筑智能化,2012,31(6):105-108.
[2]譚娟.四川職業(yè)技術(shù)學(xué)院智能停車(chē)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[3]黃紅花,熊江,王海升.太原南站項(xiàng)目地下車(chē)庫(kù)停車(chē)自動(dòng)引導(dǎo)系統(tǒng)方案介紹[J].智能建筑電氣技術(shù),2007,1(5):30-33.
[4]王萍,陳長(zhǎng)青,龔睿等.基于 nrf905 的無(wú)線串口通信系統(tǒng)[J].微計(jì)算機(jī)信息,2007,23(11):281-283.
[5]伍守意.FLASH項(xiàng)目與數(shù)據(jù)庫(kù)通信的研究——基于ASP.NET技術(shù)[J].電腦科知識(shí)與技術(shù),2010,6(26),7383-7389.