李 丹
(韶關學院 計算機科學學院,廣東 韶關512005)
隨著我國經濟的發展和居民收入水平的不斷提高,機動車保有量逐年增加.車輛與車位的配置比例嚴重失調,車多車位少、停車難的問題日益嚴重.解決這一問題,除了增加車位的規劃與建設外,通過提高現有停車場的智能化水平、設計車位引導系統來提高現有車位的利用率也是一個有效途徑.
車位引導系統是應用于停車場,通過車位檢測模塊檢測數據,經過數據處理與傳輸在引導指示模塊顯示信息從而引導車輛順利進入目的車位的智能化系統[1].現有智能停車場的車位引導系統具有車位占用情況動態檢測與提示、車位使用率統計、車位進出指示等功能,引導車主找到空位.但上述功能只有當車主進入停車場內才能通過車場內的公共車位引導系統獲得[1-3],無法滿足人們在出發前或在途中時根據多個可選目的停車場的當前車位信息自由自主的選擇車位,甚至更換目的地以及在出入車之前或當時隨時隨地的獲得所選車位的最佳進出路線指示等需求.本文提出一種智能停車場Web車位引導系統,用戶可通過手機、計算機等終端通過Web瀏覽器獲得目的地停車場的實時車位信息,以Flash動畫頁面的形式為用戶顯示停車場的車位平面布局、當前車位占用率、空余車位數量、位置、大小以及進出各車位的動態路線提示等信息,幫助車主對不同停車場的不同車位做出合理選擇,從而避免到了目的地才發現沒有合適的車位或者由于對停車場內環境不熟悉造成的停車不便等問題.
系統主要由車位信息檢測模塊、下位機接收控制模塊、上位機控制模塊、車位引導顯示模塊四大部分組成.其中,車位檢測模塊與下位機接收控制模塊統稱下位機模塊.

圖1 智能停車場在線車位引導系統框圖
如圖1所示,每個車位上均裝有一個車位信息檢測模塊,用于檢測停車場每個車位的狀態,并將采集的數據通過無線發射裝置發送至下位機接收控制模塊.下位機接收控制模塊將接收到的所有車位信息通過串口發送至上位機,由上位機控制模塊將串口傳來的數據存入數據庫.當用戶利用手機、平板計算機等終端設備通過Web瀏覽器訪問該系統域名時,服務器中的車位引導顯示模塊負責讀取數據庫中的停車場信息并通過網絡傳輸至客戶的Web瀏覽器并以Flash動畫形式顯示.用戶通過Web訪問可隨時隨地直觀的讀取停車場內當前的車位信息,并可以由針對性的獲取車位路線指示.
對比現有系統[1-3],本系統的主要特點在于:(1)停車場內各車位信息檢測模塊采用無線收發數據,省去了布線的麻煩.(2)車位引導顯示模塊不只限于本地指示屏等的引導,而是可以利用計算機等終端設備通過Web瀏覽器隨時隨地獲得停車場的車位引導信息.(3)顯示方式突破了本地顯示屏只能顯示某區域空余車位數、或車場布局的局限,采用Flash動畫用戶不僅對停車場的車位布局、可用車位信息一目了然,還可以通過人機交互動態的呈現所需車位的進出路線指示等信息,服務更具人性化.
該系統主要可分為兩大部分,下位機及上位機.下位機由單片機控制電路實現,上位機在PC機中通過軟件實現.下位機又分為車位信息檢測模塊、下位機接收控制模塊兩部分.系統硬件電路設計如下.
車位信息檢測模塊固定于在各車位上方天花板上,用于檢測并無線發送車位信息至下位機控制模塊,其電路組成框圖如圖2所示.由單片機控制模塊、超聲測距傳感模塊、電平轉換模塊、無線模塊四大部分組成.其中,STC89C52單片機為主控制器,其標準供電電壓5 V,系統時鐘晶振為11.059 2 MHz.采用HCSR04超聲波測距傳感器通過距離探測判斷是否有車,其工作電壓5 V.采用nrf905無線收發器對數據進行收發,其工作在433 Mhz開放頻段,工作電壓范圍:1.9 V~3.6 V,支持50 kbps傳輸速率,傳輸距離平均可達150 m,完全可以滿足停車場范圍內的無線信號傳輸.AMS1117芯片把5 V電源轉化成3.3 V電源,給nrf905無線收發器供電.

圖2 車位信息檢測模塊組成框圖

圖3 車位信息檢測模塊電路圖
圖3為各模塊引腳連接的電路設計圖.其中,HCSR04超聲波測距傳感器除了電源和地外還有兩個引腳,一個是觸發引腳,與單片機的P1.1腳相連,為其提供10 us以上的高電平脈沖觸發信號.另一引腳為回送信號,與單片機的P1.0腳相連.當傳感器被觸發,通過P1.0檢測回送引腳的高電平脈沖寬度可計算得出測量距離.P3.7腳接LED燈,用于指示車位有無.控制nrf905模塊的引腳中除電源與地外,PWR_UP,TRX_CE,TX_EN,3個引腳用于控制其工作模式.工作模式可處于接收、發送、空閑、關機四種狀態.MISO,MOSI,SCK,CSN四個引腳用于SPI(Serial Peripheral Interface--串行外設接口)的數據收發.其余,uCPLK晶振分頻輸出、CD載波檢測指示、AM地址匹配指示在發送端暫未用到.AMS1117點電平轉換模塊中P2為排線,方便電路測試與連接.
下位機接收控制模塊放置在停車場控制中心與中心控制計算機通過USB接口相連,用于接收各車位上方車位檢測信息模塊發送的信息并將其通過串口發給中心控制計算機.由單片機控制模塊、RS232-USB轉換模塊、電平轉換模塊、無線模塊四大部分組成.RS232-USB轉換模塊模塊采用PL2303HX芯片,可實現RS232串口通信數據格式與USB數據格式的雙向轉換,并利用USB口為單片機提供5 V供電,通過USB接口實現下位機控制模塊與計算機的串口通信.電路接口為PL2303HX的RXD,TXD分別接單片機的TXD,RXD.nrf905模塊的CD、AM引腳分別接P1.2,P1.3,用于接收信號的檢測.其余模塊電路與圖3相同.
下位機車位信息檢測模塊及接收控制模塊的程序流程圖如圖4(a)、(b)所示.檢測模塊程序開始首先是對超聲波距離傳感器所要用到的定時器T0及超聲測距傳感器進行初始化:將定時器寄存器初值設為TMOD=0x21,使其工作在方式1,初值TH0=TL0=0,并令TR0=1開啟定時器.之后,將無線模塊nrf905上電后設為空閑模式并將其功能設置為:(1)不重發,頻率433.2 MHz,發射功率6 dBm,正常模式;(2)收發各4字節地址寬度;(3)收發有效數據寬度2位;(4)16位CRC校驗,允許校驗,晶振16 MHz,沒有外部時鐘;(5)確定其接收機地址.

圖4 下位機控制程序流程圖
初始化之后啟動傳感器,令TX(單片機P1.1腳)為1,持續10 us后置0.當傳感器回送信號RX(單片機P1.0腳)為1時啟動定時器令TR0=1,直至RX=0停止定時令TR0=0.根據傳感器給定公式:測試距離=(高電平時間×聲速(340 m/s))/2計算得到探測距離.系統設定車位地面距天花板高度3 m,車體高度大于1 m.根據探測距離可以判斷,當測得距離小于2 m時說明車位有車停放,車位上停車指示燈亮,反之無車,停車指示燈滅.當車位狀態發生變化:即由有車變成沒車或由沒車變成有車的時候,單片機控制啟動無線nrf905,將其設為發送狀態并發送數據.之后一直循環執行上述步驟.
接收控制模塊進入程序首先對串口進行初始化和對無線模塊進行功能設置,使接收端無線模塊的功能和發送端的功能一樣,這樣才能保證無線模塊之間的正常通信.之后進入循環接收流程:當接收端的無線模塊nrf905在指定頻率檢測到信號并地址匹配后就開始接收數據,單片機將接收到的數據存入發送寄存器通過USB接口以串口通信的格式發送到上位機.
通過上述流程,下位機控制模塊將無線接收的數據經串口Com4發送給上位機.串口通信協議設定如下:采用10位異步通信方式,單片機的串行口控制寄存器SCON工作在方式1,初值設為SCON=0x50,每次發送或接收一幀信息為10位:1位起始位(0)、8位數據位和1位停止位(1),無校驗位.采用定時器1工作方式2為波特率發生器,定時器寄存器初值設為TMOD=0x20.根據設定通信波特率9 600 bps,將電源控制寄存器初值設為PCON=0x00,定時器初值為TH1=TL1=0xFD.設定下位機發給串口的車位信息格式為:2個8位的16進制數,第一個8位表示車位號,第二位表示車位狀態.比如發送{0x0A,0x00}表示10號車位沒車,{0x0A,0x01}表示10號車位有車.
本設計數據庫采用SQL Server 2005以支持多用戶Web訪問.建立一個名為carInfarmation的數據庫,在數據庫中建立carStatus表用于存儲車輛信息.表中設置四個變量:car_num,car_on,car_sta,car_end,car_time分別表示車位號碼,是否有車,進入車位時間,離開車位的時間,停車總時間.
上位機接收控制模塊是在以PC機Windows平臺的上位機中利用VB進行開發設計的功能模塊,其功能是將下位機發來的串口數據接收并存入數據庫,從而實現下位機與前臺車位引導顯示模塊的信息交互.設計通過MSComm控件實現串口數據收發,工作流程為:首先利用ADO的connection對象的Open方法連接名為carInfarmation數據庫,之后選擇串口號并打開串口,當有數據來時觸發接收數據事件,將數據以字節為單位讀入.第一字節代表車位號,第二字節為是否有車.當某車位號從無車變為有車時,更新數據庫中表carStatus中相應車位的車位狀態car_on并記錄入車時間car_sta.當某車位從有車變為無車時,更新相應車位的車位狀態car_on并記錄出車時間car_end,同時計算出入車的時間差即停車時間car_time.
車位引導顯示是整個系統的前臺,是一個供用戶通過Web瀏覽器訪問的站點.用戶訪問頁面采用Flash動畫實現車位引導顯示.由于Flash不能直接操作數據庫,需通過ASP.net執行與數據庫的交互.因此,設計前臺Flash采用Flash CS4,Action Script3.0語言,與數據庫的交互采用VisualStudio 2008,C#語言.首先通過Visual studio 2008新建一個ASP站點,用OdbcConnection連接carInfarmation數據庫對應的ODBC數據源.ASP通過DataAdapter讀取數據庫中表的信息存在DataSet中,并用Response.Write()語句將信息輸出在一個指定頁面.而Flash定時通過URLRequest()方法向該頁面的唯一資源定位符(URL)建立請求對象,通過URLLoader()方法建立一個urlLoader對象,利用urlLoader.load(URLRequest對象)向URL指定頁面請求加載ASP輸出的數據,通過urlLoader.addEventListener(Event.COMPLETE,ec)對該事件進行偵聽,當完成響應結果就觸發COMPLETE事件同時調用ec函數將數據更新到Flash界面上實現動態的車位信息引導顯示.

圖5 前臺用戶Web訪問車位引導顯示界面
用戶通過Web訪問看到的Flash車位引導顯示界面效果如圖5所示.該界面是韶關學院教師公寓停車位的簡單模擬.每個方框表示一個車位,分別編號1~21,總計21個車位.方框中為紅色的表示已有車.對于有車車位,車主在出車前點擊旁邊灰色圓形按鈕并點擊確定按鈕可顯示該車為的最佳出車路線動畫,引導出車.當車主出車完畢或不需引導時,點擊取消按鈕結束顯示.對于無車車位,車主可以點擊旁邊的灰色圓形按鈕并選擇確定按鈕,系統會顯示進入相應車位的最佳路線動畫.如圖5中8號車位的入車路線動態指示動畫截圖.當不需要指示時,點擊取消按鈕將結束動畫顯示.界面左上方實時顯示剩余車位總數,圖5中當前剩余數為17.
Web車位引導系統突破了現有車位引導系統只能在停車場內通過固有設施在本地獲得引導的局限,車主在出發前及停車場內可利用手機、計算機、筆記本、平板電腦等通信終端通過Web瀏覽獲得停車場內的車位的實時狀態,并根據車主的選擇以動畫形式顯示出入車的最佳路線,隨時隨地為車主提供車位引導.能夠有效降低車主在出行時尋找車位及進出車位所需的時間,提高車場的智能化管理水平及車位的綜合利用率,給用戶帶來高效、舒適的停車體驗.
[1]郭娟黎.大型停車場綜合管理系統方案設計[J].建筑智能化,2012,31(6):105-108.
[2]譚娟.四川職業技術學院智能停車管理系統設計與實現[D].成都:電子科技大學,2012.
[3]黃紅花,熊江,王海升.太原南站項目地下車庫停車自動引導系統方案介紹[J].智能建筑電氣技術,2007,1(5):30-33.
[4]王萍,陳長青,龔睿等.基于 nrf905 的無線串口通信系統[J].微計算機信息,2007,23(11):281-283.
[5]伍守意.FLASH項目與數據庫通信的研究——基于ASP.NET技術[J].電腦科知識與技術,2010,6(26),7383-7389.