孫 濤, 黃炎禹, 戶 國(guó), 陳沁儀, 穆文豪, 胡凡域
(上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院, 上海 201620)
當(dāng)前,城市公共交通大客流這一特點(diǎn)對(duì)公交系統(tǒng)的合理規(guī)劃、實(shí)時(shí)調(diào)度、智能管理、數(shù)據(jù)統(tǒng)計(jì)等提出新的需求.基于人工統(tǒng)計(jì)、圖像識(shí)別、光電門、紅外感應(yīng)自動(dòng)過程控制(APC)的統(tǒng)計(jì)方式在不同程度上存在不精確、建設(shè)成本高、使用局限等問題,難以滿足當(dāng)前對(duì)客流統(tǒng)計(jì)的高層次要求.在公交客流統(tǒng)計(jì)方面,僅上車的一次購票并不能記錄各個(gè)區(qū)間的完整客流數(shù)據(jù),因此需要一種更符合時(shí)代發(fā)展且高效、低成本的客流統(tǒng)計(jì)方式[1].
WiFi探針是用WiFi傳感器獲取空氣中無線電波,統(tǒng)計(jì)分析周圍WiFi設(shè)備,繼而得到用戶手機(jī)MAC地址的技術(shù).WiFi探針具有體積小、成本低等優(yōu)勢(shì),國(guó)內(nèi)外學(xué)者對(duì)WiFi探針的應(yīng)用研究多集中于利用WiFi探針探測(cè)公共場(chǎng)所人流量并結(jié)合分析與算法估計(jì)用戶行為,如通過對(duì)WiFi信道狀態(tài)信息分析區(qū)分消費(fèi)者觀望促銷或徑直購買等不同行為.探針探測(cè)的數(shù)據(jù)較為豐富,使用者可充分挖掘場(chǎng)景信息,利用WiFi掃描列表與移動(dòng)圖模型得到用戶對(duì)時(shí)間與空間的聚類,從不同維度構(gòu)建K-means算法模型[2].
本文基于WiFi探針與單片機(jī)開發(fā)客流檢測(cè)系統(tǒng),利用乘客手機(jī)終端的無線網(wǎng)接收裝置的獨(dú)立設(shè)備編號(hào)(MAC地址)獨(dú)立性,并結(jié)合相應(yīng)算法實(shí)現(xiàn)對(duì)公交車上下客數(shù)的精確測(cè)量.
本系統(tǒng)硬件部分主要基于STM32單片機(jī)開發(fā)板,配合GPS模塊、TZ-DT06 WiFi探針模塊、串口通信模塊使用.系統(tǒng)借助GPS模塊對(duì)GPS數(shù)據(jù)協(xié)議高效解析,進(jìn)而確定車輛位置,使用串口通信配合WiFi探針模塊實(shí)時(shí)解讀手機(jī)MAC幀,將解析的MAC地址進(jìn)行對(duì)比去重等處理,STM32單片機(jī)將處理完的客流數(shù)據(jù)通過串口通信模塊傳輸至上位機(jī)與LDC12864顯示器,從而得到各線路實(shí)時(shí)客流數(shù)據(jù)[2].系統(tǒng)各模塊工作示意圖如圖1所示.
圖1 系統(tǒng)各模塊工作示意圖Fig.1 Schematic diagram of each module of system
STM32F103是意法半導(dǎo)體推出的基于ARM公司的Cortex-M3架構(gòu)的32位處理器,具有豐富的外圍接口和中斷響應(yīng)系統(tǒng),可實(shí)現(xiàn)實(shí)時(shí)控制[3].
系統(tǒng)采用U-BLOX NEO-6M模組,體積小巧、性能優(yōu)異,可通過串口進(jìn)行參數(shù)設(shè)置,并保存在EEPROM,使用方便.默認(rèn)使用波特率為9 600 bit/s.NMEA 0183是目前GPS導(dǎo)航設(shè)備統(tǒng)一的RTCM標(biāo)準(zhǔn)協(xié)議[3].該系統(tǒng)使用GPS模塊的TX和RX引腳與STM32單片機(jī)通信,通過nmealib庫解碼可得相應(yīng)的坐標(biāo)和速度信息[4].
系統(tǒng)主要調(diào)用parseMACBuffer解析函數(shù)對(duì)MAC地址進(jìn)行解析.編寫WiFi探針驅(qū)動(dòng)函數(shù),提取約50個(gè)字符串的MAC地址并檢驗(yàn)其正確性,去重與存儲(chǔ)地址后轉(zhuǎn)換為相應(yīng)的客流量[5].
LCD12864是一種具有4位/8位并行、2線或3線串行多種接口方式的液晶顯示屏,其內(nèi)部含有點(diǎn)陣圖形液晶顯示模塊,通過串口與單片機(jī)進(jìn)行數(shù)據(jù)傳送達(dá)到實(shí)時(shí)顯示,硬件電路結(jié)構(gòu)和顯示程序都較為簡(jiǎn)潔.本系統(tǒng)使用LCD12864液晶顯示屏輸出兩站間車內(nèi)乘客數(shù)和各站上下客數(shù),通過多級(jí)菜單欄顯示不同界面,并設(shè)計(jì)按鈕開關(guān)進(jìn)行控制[6].
IEEE 802.11是當(dāng)前無線局域網(wǎng)通用標(biāo)準(zhǔn),定義了媒體訪問控制層(MAC 層)和物理層[5],MAC層負(fù)責(zé)無線媒介的管理與控制,數(shù)據(jù)幀格式如圖2所示.本系統(tǒng)使用TZ-DT06模塊抓取Frame源MAC地址、目的MAC地址、Frame大類、Frame小類、信道、信號(hào)強(qiáng)度等數(shù)據(jù),源地址必須為單播地址,目的地址為MAC服務(wù)數(shù)據(jù)單元(MSDU)將要送達(dá)的地址,可為單播地址或組地址.該探針模塊可計(jì)算距離,由于RSSI 信號(hào)和距離有一定關(guān)系,需要根據(jù)環(huán)境設(shè)置不同參數(shù).
圖2 802.11 MAC層數(shù)據(jù)幀格式Fig.2 802.11 MAC layer data frame format
數(shù)據(jù)鏈路層是靠近底層的通信協(xié)議,使用Bit表示信息,其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)網(wǎng)絡(luò)層[5].
系統(tǒng)在抓取乘客MAC地址后通過探針模塊TXD引腳與外部MCU的RXD引腳通信,經(jīng)過串口接收與過濾,使用parseMACBuffer函數(shù)對(duì)信號(hào)較弱、從路由器發(fā)送到終端、偽MAC地址等數(shù)據(jù)進(jìn)行清洗,其余MAC地址進(jìn)入緩存狀態(tài),產(chǎn)生探針數(shù)據(jù)表,該數(shù)據(jù)表可實(shí)時(shí)更新,具體采集到的數(shù)據(jù)格式如圖3所示.
圖3 系統(tǒng)對(duì)MAC地址的具體采集內(nèi)容Fig.3 Specific collection content of MAC address by system
程序代碼為
void parseMACBuffer(void)
{
uint8_t i;
for(i=0;i { if(MAC_GetData[i].MAC_isGetData==true && MAC_GetData[i].MAC_isUsefull==false) { ∥數(shù)據(jù)清洗工作:信號(hào)太弱刪除,從路由器發(fā)到終端的刪除,偽mac地址刪除,只接受數(shù)據(jù)幀memcpy(MAC_GetData[i].MAC_1,MAC_GetData[i].MAC_Buffer,MAC_1_Buffer_Length); *(MAC_GetData[i].MAC_1+MAC_1_Buffer_Length) = ’
廉江市|
武山县|
修水县|
湘潭县|
浦城县|
姜堰市|
富源县|
开鲁县|
成武县|
高雄县|
福鼎市|
永福县|
连州市|
小金县|
荥经县|
大渡口区|
雷山县|
水富县|
云南省|
鹤山市|
方城县|
五大连池市|
中山市|
新野县|
德惠市|
巴中市|
襄城县|
宁城县|
稻城县|
九江县|
江城|
尉犁县|
讷河市|
靖西县|
阿图什市|
西乡县|
怀仁县|
马鞍山市|
罗源县|
梅河口市|
宁武县|