林敏霞,吳冬燕,張衛(wèi)星,鄒廣洲,薛福霞
(1.蘇州工業(yè)職業(yè)技術(shù)學(xué)院 電子與通信工程系,江蘇蘇州,215104;2.蘇州工業(yè)職業(yè)技術(shù)學(xué)院 機(jī)電工程系,江蘇蘇州,215104;3.國網(wǎng)(北京)綜合能源規(guī)劃設(shè)計(jì)研究院有限公司,北京,102600)
2008年5月開始,比較成功的杭州公共自行車租賃項(xiàng)目,其影響范圍擴(kuò)大到全國。共享單車的管理可以對(duì)時(shí)延要求低的遠(yuǎn)程監(jiān)控場(chǎng)景采用窄帶物聯(lián)網(wǎng)(NB-Iot)技術(shù)。窄帶物聯(lián)網(wǎng)技術(shù)是一種基于蜂窩網(wǎng)絡(luò)的低功耗廣域網(wǎng)技術(shù),工作授權(quán)頻段是專有的,而且還沿襲了蜂窩網(wǎng)絡(luò)安全技術(shù)的加密機(jī)制,數(shù)據(jù)的安全性有著保證,網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,維護(hù)成本低。共享單車使用NB-IoT技術(shù)可以很好的解決共享單車的數(shù)量多,覆蓋廣等問題,能保證共享單車監(jiān)控系統(tǒng)的穩(wěn)定運(yùn)行,有效的提高用戶對(duì)共享單車的體驗(yàn)度。本文設(shè)計(jì)了基于NB-Iot通信的共享單車,使用GPS技術(shù)采集共享單車位置數(shù)據(jù),通過NB-Iot技術(shù)實(shí)現(xiàn)共享單車與云平臺(tái)的永久連接,利用手機(jī)APP可以進(jìn)行實(shí)時(shí)查詢共享單車的使用情況和遠(yuǎn)程處理共享單車的功能。
基于NB-IoT共享單車系統(tǒng)的總體框架由感知層,傳輸層,平臺(tái)層,應(yīng)用層這四層結(jié)構(gòu)組成。總體框架圖如圖1所示。

圖1 總體框架圖
終端就包括共享單車和智能車鎖,車鎖里面有MCU模塊、NB-IoT通信模塊、GPS模塊、藍(lán)牙模塊等。GPS負(fù)責(zé)共享單車的定位,藍(lán)牙負(fù)責(zé)連接共享單車,MCU通過控制電機(jī)來達(dá)到開鎖的目的。傳輸層由NB-IoT通信模塊和無線網(wǎng)組成,信息再通過核心網(wǎng)傳遞到平臺(tái),傳輸層也就是NB-IoT技術(shù)信息傳輸?shù)耐ǖ溃蛏闲邢蛳滦袀鬏敂?shù)據(jù)信息。平臺(tái)層從接入網(wǎng)接收得到的開鎖請(qǐng)求信息,終端接入互聯(lián)網(wǎng)。應(yīng)用層主要是用戶使用和管理端對(duì)設(shè)備的管理、數(shù)據(jù)的查詢和實(shí)時(shí)推送數(shù)據(jù)信息。其中MCU是對(duì)整個(gè)終端設(shè)備的控制,為了確保終端設(shè)備的各個(gè)模塊能夠井然有序的進(jìn)行工作。電池和電壓穩(wěn)壓電路組成電源供電模塊,為各個(gè)模塊提供穩(wěn)定的工作電壓。
在整個(gè)項(xiàng)目的設(shè)計(jì)過程中,電路設(shè)計(jì)是整個(gè)項(xiàng)目的核心,也是軟件設(shè)計(jì)的前提。該電路主要包括MCU、NB-IoT通信模塊、電源模塊、藍(lán)牙模塊。電源模塊是為了給整個(gè)電路提供電源。電機(jī)驅(qū)動(dòng)模塊則是通過電機(jī)驅(qū)動(dòng)車鎖開關(guān)來開車鎖。蜂鳴器是在開鎖的時(shí)候接收到信號(hào)才會(huì)響應(yīng)的。電路檢測(cè)可以把電量情況反饋到平臺(tái),管理人員看到共享單車的電量情況,能及時(shí)作出處理。在這個(gè)硬件電路設(shè)計(jì)中NB-IoT模塊是最重要的,它負(fù)責(zé)共享單車與云平臺(tái)通信傳輸,在整個(gè)設(shè)計(jì)中更是起到一個(gè)橋梁的作用。
NB-IoT模塊主要包括BC95-B5模塊,濾波天線電路,復(fù)位電路和SIM卡電路四部分。SIM連接電路是與BC95-B5芯片連接在一起的,將外部讀取到的數(shù)據(jù)設(shè)備,通過BC95模塊的進(jìn)行數(shù)據(jù)上傳操作,實(shí)現(xiàn)數(shù)據(jù)上報(bào)功能。BC95-B5是一款符合3GPPR R13標(biāo)準(zhǔn)的NB-IoT模組,還兼容移遠(yuǎn)通信GSM/GPRS系列的M95模塊,內(nèi)嵌豐富的網(wǎng)絡(luò)服務(wù)協(xié)議棧,非常適合應(yīng)用于M2M領(lǐng)域。該模組具有超高靈敏度,超低功耗等的優(yōu)勢(shì)。
共享單車開鎖方式有兩種,一種是藍(lán)牙開鎖,另一種是NB-IoT開鎖。共享單車車鎖被喚醒上電后進(jìn)行系統(tǒng)和硬件的初始化, MCU開始正常的工作。主程序流程圖如圖2所示。

圖2 主程序流程圖
打開藍(lán)牙并讀取相關(guān)信息,接著檢測(cè)設(shè)備上的藍(lán)牙是否與手機(jī)藍(lán)牙連接上,如果連接上則把讀取到的NB-IoT模塊IMEI地址發(fā)送給手機(jī)APP,然后接收手機(jī)APP發(fā)送的開鎖命令,并執(zhí)行開鎖的功能。如果設(shè)備藍(lán)牙未成功連接手機(jī)藍(lán)牙,可以使用另一種開鎖的方式,就是使用NB-IoT模塊結(jié)合云平臺(tái)進(jìn)行開鎖,設(shè)備每20秒會(huì)給云平臺(tái)發(fā)送一次心跳, NBIoT模塊出庫時(shí)自身帶有省電模式的功能,在沒有心跳的情況下,NB-IoT模塊進(jìn)入省電狀態(tài),該狀態(tài)下不能接收到平臺(tái)下發(fā)的指令。在喚醒狀態(tài)下如果接收到平臺(tái)下發(fā)的指令,設(shè)備會(huì)執(zhí)行開鎖的動(dòng)作。如果開鎖成功,設(shè)備上的蜂鳴器將會(huì)響兩次并向平臺(tái)或者手機(jī)APP發(fā)送開鎖成功的數(shù)據(jù)包;若開鎖失敗,會(huì)向平臺(tái)或者手機(jī)APP發(fā)送開鎖失敗的數(shù)據(jù)包。系統(tǒng)會(huì)執(zhí)行計(jì)數(shù)程序,每一個(gè)小時(shí)會(huì)檢測(cè)一次當(dāng)前時(shí)間,如果在設(shè)定的時(shí)間內(nèi),系統(tǒng)會(huì)將設(shè)備的電量數(shù)據(jù)發(fā)送給平臺(tái)。
在整個(gè)項(xiàng)目的設(shè)計(jì)過程中,軟件系統(tǒng)設(shè)計(jì)是整體項(xiàng)目的核心部分,軟件系統(tǒng)部分主要由IAR開發(fā)軟件和Android Studio軟件完成的。完成基礎(chǔ)的硬件選取與接連之后,就開始編寫底層的程序,寫底層程序用的是IAR開發(fā)軟件。IAR 開發(fā)軟件是用于編譯與調(diào)試嵌入式系統(tǒng)應(yīng)用程序的開發(fā)工具,支持匯編語言、C語言以及C++語言。Android Studio軟件是用來生成共享單車APP的。在IAR開發(fā)軟件寫好的底層程序的基礎(chǔ)上,再用Android Studio軟件把底層程序和APP程序和云平臺(tái)程序整合到一起,再生成共享單車APP。而應(yīng)用程序設(shè)計(jì)采用c/s(客戶機(jī)/服務(wù)器)架構(gòu),c/s架構(gòu)的安全性較高,封閉式網(wǎng)絡(luò)不容易受到他人的網(wǎng)絡(luò)入侵。用Java語言進(jìn)行編程設(shè)計(jì)。由于整個(gè)項(xiàng)目程序過多,需要使用結(jié)構(gòu)化程序進(jìn)行設(shè)計(jì),秉著自頂向下,逐步細(xì)化,模塊化,結(jié)構(gòu)化編碼的原則,軟件設(shè)計(jì)盡量做到高內(nèi)聚,低耦合。應(yīng)用的所有相關(guān)功能是由一個(gè)控制器來處理的,會(huì)針對(duì)不同的客戶端類型使用不同的控制器來處理,因?yàn)橐晥D的交互與選擇可能會(huì)因客戶端類型的不同而有些不一樣。
共享單車終端有低功耗、低成本、安全性高的特點(diǎn)。一種面向網(wǎng)絡(luò)的協(xié)議,CoAP協(xié)議是IETF提出的,它有HTTP類似的特征,資源抽象的核心內(nèi)容、REST式交互和可以擴(kuò)展的頭選項(xiàng)等。為解決HTTP對(duì)于受限環(huán)境的不足,CoAP協(xié)議想到數(shù)據(jù)報(bào)長(zhǎng)度需要的最優(yōu)化和提供可靠的通信。JSON數(shù)據(jù)格式作為媒體類應(yīng)用到CoAP負(fù)載,NB-IoT模組將傳感器采集的數(shù)據(jù)信息封裝到負(fù)載中發(fā)送到 CoAP服務(wù)器。為保證每臺(tái)設(shè)備之間的通信安全和穩(wěn)定,共享單車也有著自己通信協(xié)議,共享單車協(xié)議分為兩種,一種是NB-IoT通信協(xié)議,還有一種是BLE藍(lán)牙通信協(xié)議。
用管理端APP對(duì)車鎖掃碼,進(jìn)行投放車輛,再用用戶端APP掃碼開鎖用車,用車結(jié)束后結(jié)束行程付費(fèi),在用車付費(fèi)結(jié)束后發(fā)現(xiàn)共享單車有損壞的還可以點(diǎn)擊報(bào)修。這時(shí)工作人員在他們的管理端APP看到共享單車的待故障處理信息,最后是對(duì)共享單車整體測(cè)試,測(cè)試結(jié)束。測(cè)試結(jié)果表明,數(shù)據(jù)可以實(shí)時(shí)的傳送到云平臺(tái),也可以把騎行數(shù)據(jù)、收費(fèi)信息等實(shí)時(shí)的傳送到手機(jī)APP上,并進(jìn)行相應(yīng)的收費(fèi)。同時(shí)在管理端APP上也可以看到用戶使用自行車的情況。管理端APP界面如圖3所示。

圖3 管理端APP界面
用戶在用車結(jié)束后,發(fā)現(xiàn)車輛有損壞的并進(jìn)行了報(bào)修。用戶報(bào)修之后管理端工作人員就可以看到了有待進(jìn)行故障處理的消息了。維修前把故障車輛刪除再對(duì)車輛進(jìn)行維修,維修結(jié)束后就可以再次投放已維修好的車輛了。
本文設(shè)計(jì)的基于NB-IoT技術(shù)的共享單車可海量接入具有極大的容量,車輛的投放也可以在城市里實(shí)現(xiàn)廣覆蓋;車輛通常所用的電池具有5-10年的使用壽命,非常好的延長(zhǎng)終端的續(xù)航能力;數(shù)據(jù)的安全傳輸則利用NB-IoT通信協(xié)議。調(diào)試結(jié)果表明,本文設(shè)計(jì)的共享單車系統(tǒng)可實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸,具有低功耗,廣覆蓋,接入量大,安全性高的優(yōu)點(diǎn)。用戶也可以通過用戶端APP查看自己的騎行路程、時(shí)長(zhǎng),消費(fèi)等情況;維修人員通過管理端APP查看共享單車的投放、報(bào)修等情況;用戶和工作人員的使用情況在后臺(tái)也都可以看到。