伍德鵬,潘祺煒,高錢(qián)豪,周 彪
(江南大學(xué) 江蘇 無(wú)錫 214122)
近年來(lái),隨著網(wǎng)絡(luò)科技和數(shù)字經(jīng)濟(jì)的不斷進(jìn)步,平臺(tái)經(jīng)濟(jì)發(fā)展的速度不斷加快。其中,外賣(mài)行業(yè)的發(fā)展愈發(fā)迅猛,市場(chǎng)規(guī)模不斷擴(kuò)大,已經(jīng)逐漸成為人類(lèi)社會(huì)中不可或缺的一部分。據(jù)統(tǒng)計(jì),2019年,外賣(mài)行業(yè)的總規(guī)模已經(jīng)超過(guò)6 000億元,比上一年增長(zhǎng)將近40%;2020年則已達(dá)到6 646億元,同比增長(zhǎng)15%,經(jīng)預(yù)測(cè),2022年中國(guó)外賣(mài)餐飲行業(yè)市場(chǎng)規(guī)模將達(dá)到9 417.4億元之多[1]。
據(jù)統(tǒng)計(jì),大學(xué)生是外賣(mài)消費(fèi)中的主力軍,占消費(fèi)總?cè)藬?shù)的74.6%。但是,傳統(tǒng)的外賣(mài)配送行業(yè)僅僅追求外賣(mài)的送達(dá)效率,而忽視了大學(xué)校園環(huán)境的復(fù)雜性及外賣(mài)存取的問(wèn)題,導(dǎo)致外賣(mài)存取不規(guī)范,甚至出現(xiàn)學(xué)生外賣(mài)丟失的情況[2]。因此,如何提高外賣(mài)配送服務(wù)質(zhì)量,規(guī)范外賣(mài)存取管理已經(jīng)成為校園外賣(mài)亟待探討和解決的問(wèn)題,這對(duì)提升用戶外賣(mài)體驗(yàn)和促進(jìn)社會(huì)經(jīng)濟(jì)的發(fā)展具有重大意義。
在全球疫情大背景下,無(wú)接觸式配送已經(jīng)逐漸成為高校校園外賣(mài)配送的常態(tài)。目前,許多人都提出了校園外賣(mài)柜的設(shè)計(jì)思想[3],并在外賣(mài)柜中加入保溫、照明系統(tǒng)、備用電源、自動(dòng)門(mén)鎖等裝置,使外賣(mài)柜能更好地服務(wù)于學(xué)生取餐。但是,考慮到外賣(mài)存取柜存取空間小,空間利用率低,在用餐高峰期并不能保證每個(gè)外賣(mài)都能放入存取柜。據(jù)調(diào)查,學(xué)生在收到取餐短信,會(huì)在短時(shí)間內(nèi)取餐,并且學(xué)生宿舍園區(qū)均配備有微波爐,這就表明了外賣(mài)柜相關(guān)配置的不必要性。此外,外賣(mài)柜成本較高,不利于該裝置在校園的普及。
無(wú)源射頻識(shí)別技術(shù)(RFID)是一種非接觸式的自動(dòng)識(shí)別技術(shù)。近年來(lái),RFID憑借著無(wú)需可視,能批量讀取標(biāo)簽;高容納力,能存儲(chǔ)大量信息;讀取距離遠(yuǎn),可精確定位;保存周期長(zhǎng),防水防磁等優(yōu)勢(shì),在物流、零售、醫(yī)療等領(lǐng)域?qū)崿F(xiàn)了不同程度的商業(yè)化[4]。為了規(guī)范校園外賣(mài)管理、改善外賣(mài)存取環(huán)境、提高用餐高峰期的外賣(mài)容納能力,本文基于無(wú)源RFID技術(shù),設(shè)計(jì)了開(kāi)放式外賣(mài)取餐房,搭建了智能的外賣(mài)取餐系統(tǒng),實(shí)現(xiàn)了有監(jiān)督的外賣(mài)取餐。該系統(tǒng)主要由置物架、固定式RFID閱讀器、無(wú)源RFID標(biāo)簽、外賣(mài)定位顯示模塊等組成。經(jīng)驗(yàn)證,該系統(tǒng)能在優(yōu)化外賣(mài)取餐環(huán)境和規(guī)范管理外賣(mài)取餐流程的同時(shí),還可以取得比外賣(mài)柜更好的社會(huì)與經(jīng)濟(jì)效益。
本文設(shè)計(jì)的智能取餐系統(tǒng)采用模塊化設(shè)計(jì)的思想,根據(jù)基本功能要求和相關(guān)技術(shù)標(biāo)準(zhǔn),按照從高到低的設(shè)計(jì)思路,可以將整個(gè)應(yīng)用系統(tǒng)細(xì)分為多個(gè)功能模塊,模塊化的設(shè)計(jì)使得各個(gè)部分相互獨(dú)立而又密切聯(lián)系。取餐系統(tǒng)按照功能主要可以劃分為信息入庫(kù)模塊、定位查找模塊以及監(jiān)督取餐模塊。
其中,信息入庫(kù)模塊是根據(jù)顧客的外賣(mài)訂單信息,將消費(fèi)者信息記錄在具有唯一標(biāo)識(shí)號(hào)的無(wú)源標(biāo)簽上,并記入數(shù)據(jù)庫(kù)。然后將編輯好的無(wú)源標(biāo)簽粘貼在外賣(mài)包裝盒上,等待外賣(mài)員配送。外賣(mài)員接受外賣(mài)配送任務(wù),將外賣(mài)放至取餐房時(shí),取餐房中的RFID閱讀器通過(guò)讀取外賣(mài)上的標(biāo)簽,從而識(shí)別外賣(mài)訂單信息,更改外賣(mài)的配送狀態(tài)為配送已完成。與傳統(tǒng)的紙質(zhì)訂單信息相比,電子標(biāo)簽具有良好的防水性和可用性,成本低同時(shí)具有龐大的信息容量,具有較大實(shí)用價(jià)值[5]。
外賣(mài)定位查找模塊是智能取餐系統(tǒng)的核心模塊,該模塊旨可簡(jiǎn)化外賣(mài)取餐方式,提升用戶取餐效率??紤]到RFID良好的定位性能,我們?cè)O(shè)計(jì)了一種基于收包率的定位算法來(lái)確定外賣(mài)位置,該算法通過(guò)劃分RFID閱讀器的覆蓋范圍,估計(jì)出標(biāo)簽所在位置。相比于傳統(tǒng)的室內(nèi)定位算法,基于收包率的定位算法在滿足一定的定位精度要求下,具有更強(qiáng)的穩(wěn)定性。在得到外賣(mài)具體定位后,通過(guò)Java編程語(yǔ)言,將其顯示在前端網(wǎng)頁(yè),方便消費(fèi)者查找取餐。
學(xué)生取餐時(shí),閱讀器通過(guò)讀取無(wú)源標(biāo)簽學(xué)生校園卡,獲得取餐者相關(guān)信息,例如學(xué)號(hào)、姓名等,并將其記錄到數(shù)據(jù)庫(kù),進(jìn)而實(shí)現(xiàn)有監(jiān)督的取外賣(mài)服務(wù)。在外賣(mài)丟失或被誤取時(shí),消費(fèi)者可以根據(jù)數(shù)據(jù)庫(kù)信息與取餐者取得聯(lián)系,保障了消費(fèi)者權(quán)益。通過(guò)更改數(shù)據(jù)庫(kù)中相應(yīng)字段,我們可以確定外賣(mài)狀態(tài)——外賣(mài)已配送完成和外賣(mài)取餐完成。具體的工作流程見(jiàn)圖1。
針對(duì)上述多址通信碰撞問(wèn)題,本文基于曼徹斯特編碼策略,采用一種改良的二進(jìn)制搜索算法[7]來(lái)改善讀取多個(gè)標(biāo)簽時(shí)的通信質(zhì)量與效率。當(dāng)閱讀器發(fā)出查詢命令時(shí),所有標(biāo)簽都會(huì)響應(yīng)閱讀器的命令,而當(dāng)有碰撞發(fā)生的時(shí)候,閱讀器將準(zhǔn)確知道碰撞的具體位置。根據(jù)碰撞發(fā)生的位置在原查詢前綴的基礎(chǔ)上,增加1位或多位比特,構(gòu)成新的查詢前綴。進(jìn)行多番操作后可依次完成所有標(biāo)簽的識(shí)別。圖2為該搜索算法的一個(gè)實(shí)例,可以識(shí)別6個(gè)標(biāo)簽0010、0100、0101、1001、1110、1111。與傳統(tǒng)的二進(jìn)制搜索算法相比,本文采用的改進(jìn)的二進(jìn)制搜索算法可以在保證搜索正確率的前提下,有效地減少搜索查詢次數(shù),從而達(dá)到提高查詢效率的目的。
智能取餐系統(tǒng)采用無(wú)源RFID技術(shù),無(wú)需與識(shí)別標(biāo)簽直接接觸,在一定程度上保證了食品的安全與衛(wèi)生,在疫情科學(xué)防控的當(dāng)下顯得尤為重要。該系統(tǒng)采用的無(wú)源電子標(biāo)簽具有讀取方便快捷、安全性高、耐久性強(qiáng)、體積小等特點(diǎn),在應(yīng)用中能夠快速、實(shí)時(shí)、準(zhǔn)確地采集和處理信息。另外,無(wú)源RFID標(biāo)簽成本低,僅需要幾毛錢(qián),并且能夠重復(fù)使用,具有較大應(yīng)用價(jià)值及市場(chǎng)??紤]到RFID能夠一次性讀取大量標(biāo)簽,并且通過(guò)改進(jìn)通信碰撞問(wèn)題能夠提高讀取標(biāo)簽的效率,本文設(shè)計(jì)的智能取餐房相比于傳統(tǒng)的取餐柜,具有極高的外賣(mài)容納能力和外賣(mài)存放密度,能滿足用餐高峰期的外賣(mài)存取需求。
信息入庫(kù)的前提是,必須要改善標(biāo)簽到閱讀器之間的通信質(zhì)量,提升通信的有效性和可靠性,從而減少多個(gè)標(biāo)簽到閱讀器之間產(chǎn)生的通信碰撞問(wèn)題。在解決了通信碰撞問(wèn)題,確保閱讀器能夠高效可靠地讀取到標(biāo)簽之后,通過(guò)查詢?cè)摌?biāo)簽獨(dú)特的序列碼,將顧客信息寫(xiě)入對(duì)應(yīng)標(biāo)簽內(nèi)。接著再利用串口將讀取的標(biāo)簽信息錄入到搭建好的數(shù)據(jù)庫(kù)之內(nèi),為動(dòng)態(tài)管理外賣(mài)配送奠定基礎(chǔ)。
2.1.1 標(biāo)簽到閱讀器之間的通信
本部分主要研究如何改善標(biāo)簽通信的碰撞問(wèn)題。通信碰撞指的是,基于接收信號(hào)強(qiáng)度指示(received signal strength indicator)的LANDMARC算法的精度和穩(wěn)定性不高,當(dāng)多個(gè)標(biāo)簽緊貼在一起,會(huì)引起通信上的沖突,閱讀器難以識(shí)別,造成讀取紊亂的情況[6]。
經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,基于曼徹斯特的二進(jìn)制搜索算法的確能改善標(biāo)簽通信碰撞,能夠同時(shí)識(shí)別多個(gè)標(biāo)簽。實(shí)驗(yàn)結(jié)果表明,在改進(jìn)之前,通信碰撞率為20.1%,閱讀成功概率為92.7%;而在改進(jìn)之后,通信碰撞率為1.5%,閱讀成功率提升到97.3%。
2.1.2 信息錄入數(shù)據(jù)庫(kù)
在解決了通信碰撞問(wèn)題后,需要搭建消費(fèi)者信息數(shù)據(jù)庫(kù)??紤]到本項(xiàng)目一般在局域網(wǎng)內(nèi)使用,因此選擇關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(SQL Server)為開(kāi)發(fā)軟件,采用C/S結(jié)構(gòu)模式建立數(shù)據(jù)庫(kù)。在閱讀器讀取標(biāo)簽相關(guān)數(shù)據(jù)后,利用一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言(Python)編程,將讀取到的信息經(jīng)串口傳至搭建的數(shù)據(jù)庫(kù)內(nèi)。后期通過(guò)后臺(tái)更改標(biāo)簽相關(guān)的信息字段,以代表不同的外賣(mài)狀態(tài),從而智能跟蹤外賣(mài)配送及取餐過(guò)程。
外賣(mài)員將貼有電子標(biāo)簽的外賣(mài)送至外賣(mài)取餐房后,為了方便學(xué)生取餐,我們需設(shè)計(jì)定位算法,精準(zhǔn)顯示外賣(mài)定位。室內(nèi)常用的定位算法有:信號(hào)到達(dá)時(shí)間(TOA)、信號(hào)到達(dá)時(shí)間差(TDOA)、信號(hào)到達(dá)角度(AOA)、信號(hào)強(qiáng)度(RSSI),但是這些定位算法不僅精度有限[8],并且易受外界環(huán)境影響,本模塊擬采用基于不同區(qū)域收包率并結(jié)合位置指紋算法的室內(nèi)定位方法[9],以改善定位精度問(wèn)題,減少室內(nèi)約束條件。在得到標(biāo)簽具體定位后,本模塊利用Java編程語(yǔ)言,設(shè)計(jì)了具體的定位顯示網(wǎng)頁(yè),方便用戶操作尋取外賣(mài)。
2.2.1 定位算法設(shè)計(jì)
本文設(shè)計(jì)使用的收包率算法為:某一時(shí)間段內(nèi),閱讀器連續(xù)掃描標(biāo)簽M次,成功讀取到標(biāo)簽的次數(shù)為N,則依此定義收包率(P)如下:
P是一段時(shí)間內(nèi)對(duì)標(biāo)簽發(fā)送信息量的統(tǒng)計(jì)值,所以相對(duì)穩(wěn)定。在無(wú)線信道中,根據(jù)收包概率大小可依次將單個(gè)閱讀器的讀取區(qū)域劃分為穩(wěn)定區(qū)、過(guò)渡區(qū)以及非穩(wěn)定區(qū)。穩(wěn)定區(qū)噪聲干擾小,收包率較高;非穩(wěn)定區(qū)噪聲干擾嚴(yán)重,多徑效應(yīng)影響顯著,收包率大幅降低。
2.2.2 定位模塊設(shè)計(jì)
在智能取餐房的房頂和外賣(mài)貨架均放置多個(gè)讀寫(xiě)器,每一個(gè)讀寫(xiě)器均能得到一個(gè)二維平面的收包率,并且具有自己讀取區(qū)域的穩(wěn)定區(qū)、過(guò)渡區(qū)以及非穩(wěn)定區(qū)。在保證經(jīng)濟(jì)情況的前提下,多安置幾個(gè)RFID標(biāo)簽閱讀器,使得取餐房?jī)?nèi)每個(gè)區(qū)域均能被至少兩個(gè)讀取面的閱讀器過(guò)渡區(qū)掃描到。由此,整個(gè)取餐房?jī)?nèi)的三維空間都會(huì)被閱讀器掃描到,也就意味著每一個(gè)被送入到取餐房的外賣(mài)都會(huì)被閱讀器感知,從而更新數(shù)據(jù)庫(kù)中相應(yīng)字段以顯示外賣(mài)的不同狀態(tài)。
為了確定外賣(mài)具體定位坐標(biāo),我們?cè)谌〔头?個(gè)角落分別安置一個(gè)固定式標(biāo)簽閱讀器,分別記為A、B、C、D;其中每個(gè)閱讀器均具有3種不同的識(shí)別區(qū)域,即穩(wěn)定區(qū)、過(guò)渡區(qū)和非穩(wěn)定區(qū),分別記為1、2、3。在房間中每一點(diǎn),這些閱讀器的識(shí)別區(qū)域?qū)⑾嗷ブ丿B。
然后,進(jìn)行數(shù)據(jù)訓(xùn)練,建立離散指紋數(shù)據(jù)庫(kù)。在取餐房中每間隔1 m設(shè)置1個(gè)參考點(diǎn),每個(gè)參考點(diǎn)處于4個(gè)閱讀器的不同區(qū)域,因此每個(gè)位置指紋(a,b,c,d)唯一映射一塊區(qū)域,例如某標(biāo)簽位置指紋為(1,2,1,3),即代表它正處于閱讀器A的穩(wěn)定區(qū),閱讀器B的過(guò)渡區(qū),閱讀器C的穩(wěn)定區(qū)和閱讀器D的非穩(wěn)定區(qū)的相交區(qū)域。當(dāng)外賣(mài)標(biāo)簽進(jìn)入到取餐房時(shí),4個(gè)閱讀器分別進(jìn)行標(biāo)簽的搜集讀取。同樣的,外賣(mài)在取餐房中不同的放置對(duì)應(yīng)著不同的目標(biāo)指紋,得到目標(biāo)指紋,將其與已經(jīng)建立的離散指紋數(shù)據(jù)庫(kù)對(duì)比匹配,從而得到外賣(mài)在取餐房中的粗定位信息數(shù)據(jù)。
2.2.3 Java網(wǎng)頁(yè)編程
我們搭建了智能尋餐管理系統(tǒng),通過(guò)Java開(kāi)發(fā)工具,搭建了一個(gè)連接數(shù)據(jù)庫(kù)的可操作管理系統(tǒng),采用面向?qū)ο蟮乃枷?,統(tǒng)一錄入數(shù)據(jù)庫(kù)的外賣(mài)數(shù)據(jù)的屬性及屬性元素,實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中的信息有選擇地批量顯示在網(wǎng)頁(yè)上。
為了智能顯示外賣(mài)定位,我們?cè)谌〔头恐性O(shè)置了一個(gè)固定標(biāo)簽作為參考原點(diǎn),通過(guò)上述定位算法得到了所有標(biāo)簽(包括固定標(biāo)簽)的定位后,以固定標(biāo)簽為坐標(biāo)系的基準(zhǔn)點(diǎn)建立對(duì)應(yīng)的坐標(biāo)系,以便定位可視化。利用Java語(yǔ)言編程,根據(jù)上述功能需求,我們搭建了友好的用戶界面,該用戶界面支持根據(jù)手機(jī)尾號(hào)查詢外賣(mài)訂單,查詢到相應(yīng)外賣(mài)后,顯示其具體定位。經(jīng)過(guò)多次的實(shí)驗(yàn)和數(shù)據(jù)分析,該系統(tǒng)能夠精準(zhǔn)顯示RFID閱讀器范圍內(nèi)所讀外賣(mài)標(biāo)簽的位置信息和其相應(yīng)的屬性。
外賣(mài)送至取餐房后,閱讀器閱讀到外賣(mài)標(biāo)簽,更新數(shù)據(jù)庫(kù)中相關(guān)字段為“配送已完成”。學(xué)生取餐時(shí),在通過(guò)取餐機(jī)查找外賣(mài)標(biāo)簽定位后,刷卡進(jìn)入取餐房取餐,閱讀器讀取到學(xué)生個(gè)人信息,當(dāng)學(xué)生取走外賣(mài),閱讀器讀取到被取走的外賣(mài)標(biāo)簽,更新數(shù)據(jù)庫(kù)中相關(guān)字段為“取餐已完成”,并將取餐的相關(guān)信息錄入數(shù)據(jù)庫(kù),在外賣(mài)丟失或誤取時(shí),方便查詢。
本文介紹了無(wú)源RFID的基本原理,分析了基于收包率和位置指紋識(shí)別的定位算法實(shí)現(xiàn)過(guò)程。再基于Python、MySQL和Java編程,搭建了智能外賣(mài)取餐房,提升了外賣(mài)取餐環(huán)境、配送質(zhì)量和效率,并確保了外賣(mài)取餐的有序性。經(jīng)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)穩(wěn)定可靠,錯(cuò)誤率低,在現(xiàn)實(shí)應(yīng)用中具有一定的借鑒意義。
本文使用的定位算法屬于粗定位,在區(qū)域面積較大時(shí),只能確定標(biāo)簽的大概定位,讀取精度不高。因此,后期可以改進(jìn)定位算法,提高定位算法的定位精度,使其精確定位標(biāo)簽位置,從而提升用戶服務(wù)質(zhì)量。