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