移動(dòng)應(yīng)用作為物聯(lián)網(wǎng)連接用戶和產(chǎn)品的橋梁,,目前常見(jiàn)的類(lèi)型主要有智能家居,、車(chē)聯(lián)網(wǎng)、穿戴設(shè)備,、醫(yī)療健康,、環(huán)境監(jiān)測(cè)和城市管理這六大類(lèi)。今天以車(chē)聯(lián)網(wǎng)為例,,來(lái)剖析其開(kāi)發(fā)過(guò)程中的相關(guān)項(xiàng)目經(jīng)驗(yàn)和相關(guān)通信技術(shù)架構(gòu)!
車(chē)聯(lián)你我,,開(kāi)創(chuàng)出行新玩法
1、 項(xiàng)目介紹
最初新能源汽車(chē)車(chē)主充電的方式只能通過(guò)使用充值卡進(jìn)行充電,,找樁也不是特別方便,,開(kāi)發(fā)一款能夠解決這一系列問(wèn)題的APP很有必要。本次分享的充電樁項(xiàng)目解決了用戶找樁難,、充電繁瑣的問(wèn)題,,通過(guò)APP內(nèi)的地圖導(dǎo)航找到附近的充電站,APP內(nèi)可實(shí)時(shí)查看充電站內(nèi)所有充電樁的使用狀態(tài),、充電信息等,,還可提前預(yù)約指定充電樁,。車(chē)主通過(guò)地圖導(dǎo)航找到對(duì)應(yīng)樁的位置,,插槍后在APP內(nèi)遙控開(kāi)啟充電,可操作且可視化的應(yīng)用體驗(yàn),,解決了新能源車(chē)主充電找樁的首要難題,。
2、技術(shù)實(shí)現(xiàn)
●確定智能設(shè)備的通訊方式
首先需要確定充電樁設(shè)備支持的通訊方式,,APICloud支持多種物聯(lián)方式,,如通過(guò)socketManager模塊實(shí)現(xiàn)socket通訊、通過(guò)ble模塊實(shí)現(xiàn)藍(lán)牙通訊,,以及第三方的機(jī)智云gizWifiSDK模塊和慶科mico等,。本項(xiàng)目中,,運(yùn)營(yíng)商的充電樁設(shè)備內(nèi)部采用socket方式與充電樁廠家的內(nèi)部server端進(jìn)行通訊。
●確定業(yè)務(wù)流程
每一個(gè)物聯(lián)設(shè)備都有相應(yīng)的開(kāi)啟,、關(guān)閉及運(yùn)行中的相關(guān)業(yè)務(wù)流程,,第二步需要確定整個(gè)業(yè)務(wù)流程,本項(xiàng)目充電樁業(yè)務(wù)流程為:預(yù)約-插槍-開(kāi)始設(shè)備充電-充電中顯示充電信息-結(jié)束設(shè)備充電-生成充電訂單-訂單支付-完成充電,。
●確定項(xiàng)目的物聯(lián)架構(gòu)
運(yùn)營(yíng)商要求充電樁設(shè)備必須連接至自有服務(wù)器,,將充電樁的相關(guān)控制邏輯無(wú)縫集成到整個(gè)項(xiàng)目APP的業(yè)務(wù)流程中。充電樁廠商負(fù)責(zé)提供的可與充電樁設(shè)備進(jìn)行內(nèi)部通訊的server端SDK對(duì)外提供封裝好的業(yè)務(wù)接口,,最終安裝至運(yùn)營(yíng)商的服務(wù)器,。在項(xiàng)目的服務(wù)端底層抽象封裝好可與SDK對(duì)外接口進(jìn)行通訊的相關(guān)業(yè)務(wù)接口,在與APP通訊的相關(guān)業(yè)務(wù)接口中調(diào)用封裝好的底層接口,,最終實(shí)現(xiàn)APP控制充電樁的效果,。
項(xiàng)目的整個(gè)物聯(lián)架構(gòu):充電樁設(shè)備<->設(shè)備server <->項(xiàng)目server<->APP client,即智能硬件+數(shù)據(jù)通信平臺(tái)+業(yè)務(wù)服務(wù)端+手機(jī)客戶端的四方通信技術(shù)架構(gòu),。這種四方通信的架構(gòu)不需要實(shí)現(xiàn)智能設(shè)備跟數(shù)據(jù)通信平臺(tái)之間的協(xié)議,,以及客戶端跟智能設(shè)備之間的協(xié)議,APICloud平臺(tái)提供的SDK已經(jīng)幫助開(kāi)發(fā)者將協(xié)議封裝過(guò)了,。四方通信架構(gòu)可分為Wi-Fi或者GPRS模式與藍(lán)牙模式兩種,,以下分別為兩種模式的詳細(xì)介紹。
Wi-Fi或者GPRS模式:當(dāng)客戶端去操控智能設(shè)備時(shí),,會(huì)通過(guò)Http或者Socket協(xié)議發(fā)送指令到業(yè)務(wù)服務(wù)端,,服務(wù)端接收到指令后將該指令下發(fā)到智能設(shè)備端,智能設(shè)備接收到指令并做出反饋,,通過(guò)UDP或者TCP協(xié)議將信息上報(bào)到業(yè)務(wù)端,,業(yè)務(wù)端接收到反饋的數(shù)據(jù)下發(fā)到客戶端進(jìn)行展示。
藍(lán)牙模式:智能設(shè)備跟客戶端通過(guò)藍(lán)牙或者Beacon協(xié)議建立連接通道,,智能設(shè)備通過(guò)該連接通道將數(shù)據(jù)上報(bào)給客戶端,,客戶端通過(guò)Http或者Socket將數(shù)據(jù)提交到業(yè)務(wù)服務(wù)端,業(yè)務(wù)服務(wù)端通過(guò)分析處理,,將數(shù)據(jù)下發(fā)到客戶端進(jìn)行展示,,用戶可以通過(guò)客戶端的數(shù)據(jù)展示,發(fā)送指令到智能設(shè)備,,對(duì)設(shè)備進(jìn)行操控,。
4、項(xiàng)目總結(jié)
智能設(shè)備物聯(lián)的技術(shù)難點(diǎn)在于如何解決APP與設(shè)備之間的實(shí)時(shí)通信及APP與不同廠家的樁對(duì)接,,本項(xiàng)目服務(wù)端與智能硬件之間的通信,,交由智能硬件廠家封裝的服務(wù)端SDK自行處理。SDK對(duì)外提供統(tǒng)一的業(yè)務(wù)接口,。項(xiàng)目服務(wù)端采用sever層對(duì)接sever層的方式進(jìn)行通訊,,通過(guò)api接口的抽象封裝,,完成APP的sever層對(duì)接廠商充電樁的sever層的直接業(yè)務(wù)通訊。采用這種方式,,規(guī)避了不同設(shè)備廠家設(shè)備通訊方式,、通訊協(xié)議不同導(dǎo)致的聯(lián)調(diào)不便的問(wèn)題。
項(xiàng)目服務(wù)端不再關(guān)心智能硬件的內(nèi)部通訊細(xì)節(jié),,專注于業(yè)務(wù)功能,、業(yè)務(wù)邏輯的實(shí)現(xiàn)。APP僅需調(diào)用封裝好的固定API接口,,即可調(diào)用智能硬件服務(wù)端與智能硬件進(jìn)行通訊,,實(shí)現(xiàn)服務(wù)端底層控制智能硬件,以及在不進(jìn)行APP版本更新的情況下,,同一APP客戶端對(duì)接多個(gè)廠家的充電樁的效果,。
作為將真實(shí)世界和數(shù)字世界連接起來(lái)的媒介,IoT越來(lái)越多被各大公司重視,。APICloud認(rèn)為物聯(lián)網(wǎng)不是一個(gè)行業(yè),,而是一種新的企業(yè)架構(gòu)形式,并沒(méi)有行業(yè)的限制,,唯一限制的只有人類(lèi)的想象力,。
*作者注:以上技術(shù)框架基于移動(dòng)應(yīng)用開(kāi)發(fā)平臺(tái)APICloud實(shí)現(xiàn)。