基于 STM32 單片機(jī)的智能公交設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
目前人們大多采用交通卡刷卡的形式乘坐公交,排隊(duì)上車刷卡或由檢票員人工詢問站點(diǎn)后刷卡 [1]。這種方式存在如下缺點(diǎn) :
(1) 無法獲取公交信息以及道路擁堵情況,人車互動(dòng)性不強(qiáng) ;
(2) 在購(gòu)票遇上客流量大的情況時(shí),需要長(zhǎng)時(shí)間排隊(duì)。
互聯(lián)網(wǎng)具有更新速度快、互動(dòng)性強(qiáng)、不受空間限制且數(shù)據(jù)存儲(chǔ)量大,高效快速等特點(diǎn),使得其在傳遞行車信息及檢測(cè)車內(nèi)乘客數(shù)據(jù)信息時(shí)可以做到快速、高效、及時(shí)。
通過設(shè)置在公交車上的 WiFi 探針設(shè)備 [2] 獲取每位 WiFi 使用者的手機(jī)信號(hào)和 MAC 地址 [3],并通過算法實(shí)現(xiàn)對(duì)手機(jī)的定位,及時(shí)獲知乘客在哪一站上車以及在哪一站下車 [4-5], 并基于此信息對(duì)乘客扣費(fèi)。本文將介紹一種基于 STM32 單片機(jī)作為處理芯片并通過 WiFi 探針實(shí)現(xiàn)對(duì)手機(jī)信號(hào)進(jìn)行檢測(cè)的裝置,由該裝置進(jìn)行自動(dòng)扣費(fèi)。
1 系統(tǒng)設(shè)計(jì)
1.1 硬件設(shè)計(jì)
本系統(tǒng)的硬件部分主要基于 STM32 單片機(jī)開發(fā)板進(jìn)行開發(fā),配合全球定位系統(tǒng)(GPS)模塊、ESP8266 無線網(wǎng)絡(luò)模塊以及串口轉(zhuǎn) USB 模塊使用。
1.1.1 STM32F103單片機(jī)
本設(shè)備采用意法半導(dǎo)體公司設(shè)計(jì)生產(chǎn)的 STM32 處理器作為單片機(jī)平臺(tái),相比 51 單片機(jī)而言,STM32 單片機(jī)具有更豐富的函數(shù)庫(kù),更多的引腳,更強(qiáng)大的計(jì)算能力和多任務(wù)處理能力。它采用 ARM 構(gòu)架,性能高、成本低、功耗低且體系結(jié)構(gòu)超前。
1.1.2 DHT11溫濕度傳感器
DHT11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器與單片機(jī)相連,以確保反應(yīng)速度 [6]。
1.1.3 NEO-6MGPS 模塊
NEO-6M GPS 模塊帶有外部天線, 內(nèi)置 E2PROM, 其默認(rèn)的波特率為 9 600 bps,支持標(biāo)準(zhǔn)的 NMEA(美國(guó)國(guó)家海洋電子協(xié)會(huì))。它有四個(gè)引腳,分別為 VCC,RX,TX 和GND。該模塊使用 TX 和 RX 引腳與 STM32 單片機(jī)通信, 接線簡(jiǎn)單,通過 nmealib 庫(kù)解碼就可以得到相應(yīng)的坐標(biāo)和速度信息。
1.1.4 ESP8266模塊
ESP8266 是一款超低功耗的串口無線透?jìng)髂K,具有小尺寸的封裝和超低能耗等特點(diǎn)。它能實(shí)現(xiàn)用戶串口數(shù)據(jù)到無線網(wǎng)絡(luò)之間的交換,有如下兩種解決方案 :
(1) 使用內(nèi)部自帶處理器對(duì)芯片進(jìn)行二次開發(fā),通過I/O 口控制設(shè)備,節(jié)省成本但難度大 ;
(2) ESP8266 模塊外接單片機(jī),完成網(wǎng)絡(luò)相關(guān)任務(wù),使用 AT命令,通過串口和外接單片機(jī)通信,開發(fā)速度快,性能穩(wěn)定 [7-8]。
1.2 算法核心
1.2.1 乘車判定
在公交車進(jìn)入公交站臺(tái)后,會(huì)利用車載 WiFi 探針設(shè)備來檢測(cè)用戶手機(jī)信號(hào) [9],將檢測(cè)到的手機(jī)信號(hào)即 MAC 地址存儲(chǔ)到一個(gè)二維數(shù)組中。當(dāng)公交行駛了規(guī)定距離后,公交車的信號(hào)探測(cè)設(shè)備將繼續(xù)檢測(cè),將第二次檢測(cè)到的手機(jī)信號(hào)再次存儲(chǔ),并與第一次檢測(cè)到的數(shù)組進(jìn)行比較,發(fā)現(xiàn)在公交站附近檢測(cè)到部分 MAC 地址,待公交駛離過后一段時(shí)間無法再檢測(cè)到,則證明此人可能沒乘車,或者第二次掃描時(shí)無手機(jī)信號(hào),則需多次檢測(cè),存儲(chǔ)對(duì)比數(shù)據(jù),若某 MAC 地址只在第一次檢測(cè)時(shí)出現(xiàn),后面幾次檢測(cè)均未出現(xiàn),則將此手機(jī)信號(hào)在數(shù)組內(nèi)刪除,同時(shí)判定此人未乘坐公交 [10]。
1.2.2 乘坐站點(diǎn)判定
在公交車駛進(jìn) A站進(jìn)行信號(hào)檢測(cè)的同時(shí),公交車 GPS 模塊檢測(cè)當(dāng)前公交車的位置并存儲(chǔ)。然后公交車到下一站臺(tái) B時(shí)將再次檢測(cè)手機(jī)信號(hào)與位置信息并存儲(chǔ)。行駛到 C站, 仍舊搜索手機(jī)信號(hào)與位置信息并存儲(chǔ),之后與 B站存儲(chǔ)的二維數(shù)組進(jìn)行比較,若發(fā)現(xiàn)手機(jī)信號(hào)在 B 站有而 C 站無,則可判定此手機(jī)信號(hào)擁有者從 A站上車,B站下車。以此類推得出乘客的乘坐站點(diǎn)。
1.2.3 公交數(shù)據(jù)的統(tǒng)計(jì)
系統(tǒng)統(tǒng)計(jì)乘客上下車的情況可以通過組成一個(gè)站間到發(fā)客流表,見表 1所列。實(shí)驗(yàn)中使用 4個(gè)站(A~D),其中橫向表示下車,縱向表示上車。表中(C,A)為 3,即表示有 3位乘客在 C站上車 A站下車。通過計(jì)算即可獲得各站上下車人數(shù)、全日及高峰時(shí)段客流信息等。再根據(jù)這些信息可以制定相應(yīng)的車輛開行計(jì)劃,在減少乘客等待時(shí)間的同時(shí)避免資源的浪費(fèi) [11]。
2 結(jié) 語
本文采用手機(jī)代替公交卡,高效便捷,提高了乘客乘車的體驗(yàn)度。通過車載的 WiFi 探針設(shè)備不斷檢測(cè)乘客的實(shí)時(shí)位置,無需通過刷卡進(jìn)行上客判斷。通過溫濕度傳感器檢測(cè)車內(nèi)溫濕度并告知乘客,方便乘客選擇合適的出行公交。
但不足之處依舊存在 :例如有的老年人未攜帶智能手機(jī), 或者不會(huì)使用智能手機(jī)導(dǎo)致扣費(fèi)失敗等。但我們相信,隨著智能手機(jī)的普及,本系統(tǒng)將得到更好的應(yīng)用。