王樹航,徐 君,楊 鍇,鄧慶緒
(東北大學 計算機科學與工程學院,沈陽 110167)
隨著時代的發展,人們的消費理念也在不斷地進步,而咖啡作為一種可以幫助提神的日常飲品,正逐漸走進全世界越來越多人的生活.當前,中國正越來越與國際接軌,咖啡文化慢慢進入中國人的主流飲品文化之中.據有關的數據顯示和預測:2020年中國咖啡市場規模將達到3000億元,到2025年將超過1萬億元,并且在未來的十年中,中國將會逐步超過美國,成為全世界咖啡消費最大的國家之一.但是與此同時,傳統現磨咖啡業經營巨頭如星巴克,Costa等,正大舉擴展中國市場份額,而傳統咖啡店由于高昂地租及人力成本等缺點,注定了線下開店形態難以短時間迅速復制到城市各個角落,同時其單杯幾十元價格也讓許多咖啡愛好者難以長期承受.這時,更多的人就將目光投向了咖啡機.在小型咖啡機的幫助下,人們可以方便快捷地喝到咖啡.因此,中國的咖啡機市場也在逐漸發展中.如今,不僅有德龍、西門子、飛利浦等國際品牌聚集在中國咖啡機市場,國產的小米心想、美儂、九陽OneCup等本土品牌也已經逐步活躍起來.一般來說,咖啡機分為半自動咖啡機、全自動咖啡機、膠囊咖啡機等.本文所介紹的智能自助咖啡機系統,是將原有的全自動咖啡機進行改裝,在近年來大熱的“新零售”商業模式的背景下,運用物聯網的相關知識,對咖啡機進行遠端控制,實現對咖啡的自助銷售.所謂“新零售”,通俗來講就是線上零售,線上支付,新零售模式下的智能自助咖啡機可以完成無人售貨,消費者可以通過手機掃碼的方式自助購買想要的咖啡種類.因此新零售咖啡與傳統咖啡模式相比,最大的特點就是借助互聯網打破了傳統物理實體店鋪對于銷售地點的限制.
隨著互聯網的高速發展,物聯網產業也隨之蓬勃興起,萬物互聯的時代已經到來.對于已經可以實現全球互聯的智能設備來說,需要處理的數據量也已達到海量.據估計,隨著接入無線網的智能設備數量的快速增長,邊緣數據量已達到澤字節(ZB)級別(1ZB=270B).目前大部分小型智能物聯網系統仍使用遠端云計算來處理數據,海量的數據會導致服務器出現一系列問題,總結起來有以下四點:
1)基于線性增長的云計算能力不足以處理海量數據;
2)大量數據傳輸到云端會導致網絡擁塞,進一步引起延遲[1];
3)將所有邊緣數據都上傳到云端處理會產生更多的安全和隱私問題;
4)過多的數據向云端傳輸會引起能耗增加,造成能源浪費.
針對以上問題,也為了更好地適應未來萬物互聯時代中一些新興技術如增強現實/虛擬現實(AR/VR)、智能家居、智慧城市等,學術界致力于研究新型的、更便捷更安全的計算模型,并提出了邊緣計算的概念.在2004年舉行的第20屆IEEE會議中,H.H.Pang等人首次提到了邊緣計算,并指出邊緣計算會將應用程序邏輯以及底層數據推向網絡邊緣[2].美國韋恩州立大學的施巍松教授團隊將邊緣計算定義為:邊緣計算是指在網絡邊緣執行計算的一種新型計算模式,邊緣計算中邊緣的下行數據表示云服務,上行數據表示萬物互聯服務,而邊緣計算的邊緣是指從數據源到云計算中心路徑之間的任意計算和網絡資源[3].隨著近些年來物聯網技術的不斷飛躍,邊緣計算也越來越被人們所重視.2017年11月,工業互聯網產業聯盟(AII)和邊緣計算聯盟(ECC)聯合發布了邊緣計算參考架構2.0白皮書[4].該參考架構包含邊緣云、邊緣計算節點、業務編排和智能服務等四個橫向層次,以及服務管理、安全服務和數據全生命周期管理等縱向管理功能.
在邊緣計算架構模型中,在靠近數據源處會部署若干個智能邊緣節點,這些邊緣節點具有存儲能力并足以能夠處理一些比較輕松的任務,通過在邊緣端實現異常數據檢測和邏輯控制,降低生產安全風險[5].不僅如此,由于這些邊緣節點無論從網絡層面還是物理層面上講,都遠遠比云計算中心更靠近用戶,因此對信息和數據的響應速度也是之前的云計算模式無法比擬的,這也勢必會大大降低因數據傳輸占用網絡帶寬而帶來的延遲,也會有效降低能耗.這樣,之前提到的四個云計算數據處理模式的不足,通過新興的邊緣計算模式都能得到有效的緩解.
邊緣計算框架要在靠近用戶一側部署多個邊緣網關節點,并要求這些邊緣網關節點具備一定的存儲能力和計算能力,用以處理一般的用戶需求、提供一些簡單的服務.由于邊緣計算可以大大優化計算模型、提升服務質量,學術界已經將其列為物聯網行業的重要課題,并已開發出一些邊緣計算開源系統,如最早在2009年由美國卡內基梅隆大學的Satyanarayanan M.提出的cloudlet[6],代表“移動設備/IoT 設備—cloudlet—云”三層體系架構的中間層,是計算機或移動設備的集群,提供附近移動設備使用的計算能力,可視為“data center in a box”,表示該數據中心更靠近用戶.全球各大云計算和設備的巨頭也已投入到商業性邊緣計算系統的研發中,如阿里云的首個IoT邊緣計算產品Link-Edge、AWS推出的邊緣計算平臺Greengrass、Intel最新一代的Xeon D處理器以及三大運營商移動、電信、聯通推出的MEC(移動邊緣計算)一系列技術和產品.
EdgeX Foundry是一個位于網絡邊緣的供應商中立開源軟件平臺,是由Linux基金會運營的廠商中立的開放源碼項目,它與設備、傳感器、執行器和其他物聯網對象的物理、日常工作世界進行交互,目的是為工業物聯網邊緣計算建立一個通用框架.可以說EdgeX Foundry是一個邊緣計算的開放互操作平臺,由于該平臺框架結構結構清晰,便于上手,因此采用EdgeX Foundry邊緣計算框架作為智能自助咖啡機系統在邊緣節點處的平臺.
在EdgeX Foundry的邊緣計算框架中,如圖1所示,有“南側”和“北側”的概念,“南側”是指物理領域內的所有物聯網對象,以及與這些設備、傳感器、執行器和其他物聯網對象直接通信并從中收集數據的網絡邊緣,即更靠近用戶的一側,與用戶不同種類的設備相連;“北側”是指物理領域內的所有物聯網對象,以及與這些設備、傳感器、執行器和其他物聯網對象直接通信并從中收集數據的網絡邊緣,即更靠近云端的一側.EdgeX Foundry邊緣計算框架溝通南北兩側,相當于用戶和云端的一座“橋梁”,將從“南側”接受的數據和信息,經多層處理和篩選后傳遞給“北側”.
EdgeX Foundry邊緣計算框架的主體部分由開源的微服務集合構成,這些微服務層又分為4個服務層和2個全局系統服務層.4個服務層從位于物理領域邊緣的設備服務層遍歷到位于信息領域邊緣的導出服務層,其中核心服務層處于中心位置.
1)核心服務層介于南側與北側之間,主要包括4個組成部分:①核心數據(Core Data):將從南側收集到的數據進行持久性存儲和管理;②指令(Command):是一種服務,用于促進和控制從北側到南側的驅使請求;③元數據(Metadata):關于連接到EdgeX Foundry的對象元數據的存儲庫和關聯管理服務,提供配置新設備并將它們與其擁有的設備配對的功能;④注冊表及配置(Configuration&Registration):為其他EdgeX Foundry微服務提供關于EdgeX Foundry和微服務配置屬性(即初始化值存儲庫)中關聯服務的信息.
2)支持服務層包含廣泛的微服務,為EdgeX Foundry邊緣計算框架提供提示和通知、日志記錄和調度等功能.
3)導出服務層使得網關客戶端能夠注冊來自邊緣設備的所需數據,通知數據何時何地被傳送,通知要傳遞數據的格式和形狀.該層在此情況下將邊緣產生的數據收集并傳送至云端:當網關在隔離的環境中運行,并且有時網絡連接中斷時,傳感器和設備幾乎沒有外部監控或控制.因此,EdgeX Foundry能夠長時間運行和維護,而無需連接到云端系統.
4)設備服務層負責與設備服務交互,設備服務是與設備或物聯網對象交互的邊緣連接器,即通常所說的各種用戶設備,在本文所介紹的系統中即為智能咖啡機中的傳感器等部件,這些設備將該臺咖啡機的狀態和信息上傳至設備服務層,并由其他微服務進行下一步的處理.設備服務可以同時服務一個或多個設備.
兩個全局性的系統服務層分別為安全基礎設施和系統管理,其中:
1)安全基礎設施:由此框架管理的設備、傳感器、和其他對象的數據和命令來確保框架內外部的安全;
2)系統管理:提供了對于EdgeX Foundry對微服務,BIOS固件,操作系統和其他網關相關軟件的管理.
在智能自助咖啡機系統中,與主控制板相連的GPRS/4G通信模塊就充當了咖啡機與EdgeX Foundry框架聯系的“跳板”,它作為框架的設備服務,將特定咖啡機的工作狀態和傳感器相關數據通過無線通信的方式傳遞給邊緣節點,再由EdgeX-Foundry邊緣計算框架的多個微服務層進行處理,最后上傳至云端.邊緣節點由一個邊緣網關承擔,在整個系統之中主要承擔著信息存儲轉發與咖啡機異常檢測的作用.當咖啡機發生故障時,邊緣節點能夠及時檢測出來并在第一時間通知咖啡機停止工作,確保用戶不會喝到品質不佳的咖啡,同時將這些故障信息上傳給后臺,通知管理員進行故障維護.一個邊緣網關可以同時管理多臺咖啡機上傳的數據.云端服務器面向網關,與網關進行信息交互,負責處理所有來網關的咖啡機信息,云端服務器還與客戶端進行遠程,承擔起購買支付、意見反饋的作用.智能自助咖啡機系統模型如圖2所示.

圖2 基于邊緣計算的智能自助咖啡機系統
為了能夠有效的監測咖啡機是否發生故障,利用邊緣計算的思想,可以在邊緣節點處,利用傳感器網絡結合感知融合技術來研究有效的數據異常檢測算法.據Vielzeuf等人總結,無線傳感器網絡中多模態數據感知融合有以下幾點好處[7]:
1)多模態數據從不同角度反映檢測對象,經融合后的信息可以更為全面準確地描述檢測對象的狀態;
2)由于融合感知數據中包含有對同一對象的多角度檢測信息,噪聲等干擾因素對結果的影響會顯著減小;
3)經融合感知后的數據信息能有減少原有觀測值的不確定性和模糊性.
在對來自咖啡機傳感器的數據進行異常檢測之前,必須要對數據進行預處理,因為來自于不同傳感器度的數據計數單位不同,數據格式也不同,若不能統一不同傳感器的數據的數據格式與計數單位,則不能進行不同傳感器數據之間的交叉運算,同樣也就不能利用不同傳感器的數據進行對咖啡機異常情況進行判斷.研究中常用的數據規范方法有“最小-最大規范化”、“Z-score規范化”和“按小數定標規范化”等.這里采用的數據規范處理方法是“Z-score規范化”[8].
對于一個咖啡機而言,其傳感器的數據是以數據流的形式傳遞給邊緣網關的,故定義其數據結構為:
DTm={S1,S2…Si…Sm}
(1)
DTm表示在m個周期內接受到的n個傳感器數據集合,Si表示在第i個周期內接收到的n個傳感器數據集合,即Si={r1,r2,r3…rn},而ri(tj)則表示在tj時刻傳感器ri向邊緣網關傳送的數據.
由于邊緣網關的存儲數據的能力有限,而且隨著傳感器上傳的數據不斷累積而增多,邊緣網關的存儲器容量最終會達到飽和,故采用滑動窗口來管理傳感器上傳的數據.
滑動窗口模型是從傳感器上傳的數據流中截取窗口大小為|W|數據,將其分成n個數據塊,即(block1,block2,block3…blockn),每一個數據塊的長度為m,當傳感器上傳新的的數據塊blocknew時,在滑動窗口中,最早接收的數據塊blockoldest會被替換出去.同一咖啡機上不同傳感器內部均使用滑動窗口來處理數據流,如圖3所示.

圖3 多維數據流圖的滑動窗口模型
定義1.假設在時間tq之前將q個來自于某個傳感器的數據載入其對應的窗口大小|W|=q的滑動窗口內,即(rj(t1),rj(t2),rj(t3)……rj(tq))則該組處于滑動窗口內數據的方差是:
(2)

(3)
定義2.相干性系數:
(4)
其中:xji,yjk分別是Xi,Yk兩條數據流中的第k個數據.當ρ大于0時,表示兩條數據流是正相關,當ρ小于0時,表示兩條數據流是負相關,當ρ等于0時,表示兩條數據流是不存在相關關系.
定義3.在正常情況下,下一個接收到數據與當前數據窗口內的數據變化波動較小,而當數據波動較大時,則說明該數據可能是異常數據.
(5)
rj(ti)是第j個傳感器在ti時刻接收到傳感器數據,Eej(t)表示正常工作的傳感器在時間區域內測量值的數學期望,Enj(t)表示傳感器在時間區域內測量值的數學期望,δ2表示方差.當滿足上式時,表示當前上傳的傳感器的數據可能是異常數據,不滿足則表示是正常數據.
定義4.當某個傳感器自身出現故障時,則傳感器向上傳遞的數據在一段時間可能相同,即:
rj(ti)=rj(ti+1)
(6)
所以將此作為判斷是否傳感器自身上傳數據異常問題的依據.定義單個傳感器數據異常的概率為:
Pj(ti+1)=Pj(ti)+c·k2
(7)
初始是Pj(t0)設為0,當發生rj(ti)=rj(ti+1)時,則Pj(ti+1)按照式(7)計算,當rj(ti)≠rj(ti+1)時,Pj(ti+1)清零.
根據式(4)可知,傳感器之間都是存在相關性的,若有異常事件發生的話,其他傳感器必定也會有響應,但是若只是某個傳感器出現了異常數據的話,則其他傳感器不會也發生響應,故而計算多個傳感器之間的異常概率是非常有必要的.由單個傳感器數據異常概率計算多個傳感器數據異常概率,可以根據下面的式子進行計算:
(8)
其中λj為權重系數,有:
(9)
考慮到λj與數據的波動幅度有關,可以由每個數據流的方差得到:
λ1:λ2:λ3…λj=σ1:σ2:σ3…σj
(10)
定義5.在傳感器內部,每個時刻都可以根據式(8)得到PT(tj),可以根據下面的公式判斷是否傳感器檢測到的數異常數據,還是有事件發生導致傳感器數據異常:
|PT(ti)-μ|<τ
(11)
μ是滑動窗口內數據的均值,τ是滑動窗口內數據的方差,當滿足式(11)時,說明是發生了事件而導致數據異常,即咖啡機有故障發生[9].
根據上面的敘述,我們可以得出該算法的流程圖,如圖4所示.

圖4 基于多模態的智能感知融合異常檢測算法流程圖
基于以上算法,為了判斷由于軟件故障,部分難以檢測的機械故障以及其他不可知的故障導致咖啡機產生的咖啡品質降低,這里提供了幾個判定變量用于咖啡機故障的檢測,如表1所示.
表1 咖啡機故障檢測常用變量
Table 1 Common variables for coffee machine fault detection

變量溫度PH值容量顆粒細度參考值80~90.5℃6.5~7400mL因咖啡種類而異
在咖啡機硬件方面,主要針對主控制板、傳感器、繼電器及咖啡制作和GPRS/4G通信模塊4部分進行了設計和改良,咖啡機硬件系統設計框架如圖5所示.

圖5 咖啡機硬件系統框架圖
3.1.1 主控制器選擇
系統采用STM32F103RBT6芯片作為主控制板.STM32是ARM系列32位處理器芯片,采用高性能Cortex-M3內核.此芯片片上資源和接口豐富,具有成本低、功耗小、框架成熟等優點,在智能家居、智能管理等核心控制領域應用廣泛.
3.1.2 傳感器模塊
傳感器模塊與STM32的I/O接口直接相連.在原有全自動咖啡機系統的基礎上,對其中的傳感器進行了改良和更換,使其能夠滿足對咖啡機工作狀態的實時監測,當咖啡機工作狀態的各項參數超過了初始設置得閾值,傳感器就會產生中斷使主控制板響應,之后再通過GPRS/4G模塊及時向邊緣節點上報.傳感器具體使用了以下三種:1)HX711壓力傳感器;2)DS18B20溫度傳感器;3)CS1237pH傳感器.
3.1.3 繼電器及咖啡制作模塊
通過STM32控制板與繼電器連接,進而控制電機和加熱電路工作,用來完成咖啡最后的沖泡工作.咖啡機內部可以設置不同的咖啡粉,通過主控制板程序來決定原料的使用比例等,這樣可以準備不同風格和口味的咖啡供用戶選擇.此模塊只涉及單純的機械控制,在改裝咖啡機系統過程中基本未作改動.
3.1.4 GPRS/4G通信模塊
與STM32主控制板UART串口相連的是用于通信的 GPRS/4G通信模塊.在以往的物聯網系統中,GPRS/4G通信模塊與主控制板串口相連后另一端通常與云端服務器進行通訊,由于本系統采用邊緣計算模式,在網關處部署了邊緣節點,因此GPRS/4G模塊通訊的對象就變成了邊緣網關節點.前文已提到過,本系統在網關節點處搭建了EdgeX-Foundry邊緣計算框架,其中靠近“南側”的設備服務層與設備服務進行交互,在咖啡機系統中,GPRS/4G模塊就充當了設備服務的角色,它將特定咖啡機的工作狀態和異常檢測結果(基于傳感器上傳至主控制板的數據)通過無線通信的方式傳遞給邊緣網關節點,再由EdgeX-Foundry邊緣計算框架的多個微服務層進行處理,最后上傳至云端.系統采用深圳合方圓的GU900D GSM/GPRS模塊,該模塊的9引腳和10引腳分別是是串口通信數據發送和接受引腳,分別連接主控制板STM32的RXD4和TXD4端,通過AT指令集通信.
GPRS/4G模塊與主控制板的連接與數據交換是雙向的,用戶通過微信小程序產生的訂單消息也通過GPRS/4G模塊傳遞給主控制板,進而控制咖啡機進行相應的咖啡制作.
3.2.1 硬件設計
網關作為邊緣端的核心部件,它主要由核心的處理器和外圍的功能模塊組成.本系統的網關不僅具有信息匯聚的協議轉化功能,還具有快速的運算處理性能和豐富的外設資源.系統采用 PNCore-I.MX6 嵌入式卡板,該卡板是由恩智浦公司開發,并且采用核心板加底板的設計模式,核心板采用i.MX6核心板.通過這種方式可以充分的將所有接口資源利用起來,進行硬件設計與軟件開發[10].
目前市場上的嵌入式處理器種類繁多,常見的型號有 Power PC,Am186/88,SC-400,ARM/StrongARM,Max系列.綜合成本,計算能力,接口類型等方面,本系統的網關核心處理器選擇i.MX 6UltraLite.I.MX 6UltraLite是一款高性能、超高效率的處理器,采用飛思卡爾先進的單核ARM Cortex-A7,運行時鐘最高頻率達到了528 MHz.I.MX 6UltraLite擁有著一個集成的電源管理模塊,能夠有效地降低外接電源的復雜性,并簡化了上電時序.同時,這個系列的每個處理器提供多種存儲器接口以及提供各種接口用于連接外圍設備.I.MX 6UltraLite處理器尤其適用于ePOS 設備,IoT 網關、門禁控制面板等應用.
3.2.2 軟件設計
對于一個高效穩定的網關,軟件架構也顯得尤為重要.靠近用戶側的邊緣網關與下面的咖啡機相互溝通,對上又與云端服務器相連,是系統中邊緣計算模式中的的核心部件,在本系統中搭建的EdgeX Foundry邊緣計算框架,主要起到了數據接收、數據轉發、適配以及數據處理的作用.
作為邊緣節點,網關起到了為云端服務器分擔部分處理信息的功能,有效地減小云端服務器的負荷,同時,由于為了避免咖啡機出現故障后仍然生產不合格的咖啡,咖啡機停止工作必須具有及時性,邊緣網關必須要承擔咖啡機的故障檢測和應急處理的功能.因而,數據處理是邊緣網關的最重要的功能.咖啡機可能發生的故障主要分為以下4種故障:
1)缺料類型故障:主要包括咖啡機缺咖啡粉、缺水、缺牛奶、缺糖,這一類型故障較容易判斷,當發生故障后,網關立即通知咖啡機停止工作,向服務器發送咖啡機缺料故障并等待維護;
2)咖啡機網絡類型故障:主要是咖啡機掉線,咖啡機定時向邊緣網關發送keeplive報文,當超時未收到報文,即向服務器報送咖啡機掉線信息并等待維修;
3)咖啡機機械故障:包括粉渣滿、蒸汽開關錯誤、托盤位置錯誤、濾芯未定時更換等機械故障,其中上述錯誤能夠很容易判斷出來,這類錯誤由咖啡機通過GPRS/4G模塊傳至邊緣網關,邊緣網關處的EdgeX Foundry微服務層上報給服務器,通知咖啡機停止工作等待維修;
4)咖啡機軟件故障:主要影響咖啡的質量,這一類故障不能夠通過單個傳感器或者利用簡單的方法來判斷,必須用到用到多個傳感器并結合咖啡機異常檢測算法來判斷,即前面所提到“基于邊緣計算的多模態感知融合異常檢測算法”,該算法同樣也適用于部分硬件所導致的錯誤.
數據接收模塊采用多路復用的思想,會為下面所屬的每一個咖啡機設置一個channel,每當有咖啡機向網關發送請求時,網關才會接受咖啡機傳來的數據,這樣做提高了網關的處理效率.適配模塊設計的主要是針對系統擴展性考慮而設置的,程序的每個模塊都編譯為動態庫.程序在運行的時候,會根據配置文件加載不同的庫,之后會調用適配模塊的某個函數,然后該函數負責管理其他的模塊[11].
服務器采用Spring Boot提供后端框架.Spring Boot[12]是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程.Spring Boot框架遵循“約定優于配置”的思想,既清除了原先使用Spring 框架的那些樣板化的配置,又同時繼承了原有 Spring框架的優秀基因.
管理平臺主要由4個模塊組成,對咖啡機進行管理維護,當咖啡機發生故障時,向管理員發送故障信息,對所有購買咖啡的用戶進行統一管理,以及維護整個智能咖啡機系統的功能.
1)咖啡機管理模塊:咖啡機管理模塊主要起到了增刪咖啡機,咖啡機狀態查詢,控制咖啡機生產咖啡,異常咖啡機標記等功能.當想要創建新的咖啡機時,需要提供咖啡機編號,咖啡機種類,咖啡機的位置,能夠制作的咖啡種類等相關信息.當用戶向咖啡機發出購買請求并且完成支付過程后,咖啡機管理模塊向相應的咖啡機發出支付報文,并確認交易是否正確完成.當管理員想要查看某個咖啡機狀態時,只要登錄后臺管理平臺,即可查詢到自己想要的信息;
2)咖啡機故障維護模塊:咖啡機故障管理模塊主要由添加故障咖啡機,刪除故障咖啡機,編輯故障咖啡機三個模塊構成.當咖啡機發生故障時,咖啡機所在的網關會向服務器發送咖啡機故障信息,這是就會在咖啡機故障維護模塊中添加發生故障的咖啡機,并向管理員通知.管理員根據發生故障的咖啡機信息即時去維護相應的機器并編輯需要處理的設備.故障排除后,將設備刪除即可;
3)用戶管理模塊:用戶管理模塊主要起到了用戶注冊,注銷,狀態查詢,用戶支付,收集用戶反饋等功能.當用戶注冊時,需要提供用戶名,微信號,手機號,省份,城市,密碼等基本信息.當用戶在購買咖啡過程中,用戶模塊負責記錄下訂單信息,并將其導入數據庫中,同時更新用戶的數據庫,若用戶購買咖啡失敗,則將用戶購買咖啡的金額退回給微信賬戶,終止操作;
4)系統管理模塊:系統管理模塊主要包括登錄管理模塊,頁面管理模塊,退出登錄模塊.主要是面向管理員而開發設計的,管理員可以使用web服務器登錄后臺管理平臺對咖啡機,用戶進行注冊,注銷,狀態查詢等功能,同時可以及時了解故障咖啡機的狀態并對其做到及時的維護.
云端的后臺管理平臺可以被視作該整個咖啡機系統的“大腦”,盡管采用邊緣計算極大地減少了云服務器的處理任務,但是毋庸置疑的是,后臺管理平臺仍然是整個系統的核心.后臺管理平臺主要承擔了兩個最重要的任務,即:完成用戶購買咖啡的交易和向管理員提供系統的狀態信息.根據上面對管理平臺不同模塊的描述,能夠得到該云端服務器在完成用戶交易時工作的流程圖如圖6所示.
本系統采用微信小程序來設計整個咖啡機系統的客戶終端.微信現在是人人手機上必備的應用軟件,擁有著廣大的用戶體系.微信小程序因其無需安裝的特點滿足了人們對簡約的追求,提升了客戶對整體咖啡機系統的好感.再者,小程序處于微信的生態環境之下,經過微信的審核才能發布,相較于傳統的Andriod應用程序,提高了其安全性[13].

圖6 用戶購買咖啡流程圖
該微信小程序主要面向用戶提供購買支付和問題反饋兩個主要功能.首先用戶使用微信去掃描智能咖啡機上的二維碼,如果用戶之前沒有進行過注冊,則會先要求用戶先進行用戶注冊并綁定該用戶微信;如果注冊過,則判斷該咖啡機是否發生故障通知用戶,沒有任何問題將會直接登錄小程序.用戶在“商城”界面選擇想要的咖啡,并進行付款操作.如果購買過程中出現故障,可以在“我的”界面通過“聯系電話”進行反應.如果用戶有任何建議或意見,也可通過“意見反饋”向服務器反饋.
在搭建完成Edgex Foundry邊緣計算框架和智能自助咖啡機系統后,對該系統的網絡性能進行測試,測試主要針對物聯網系統兩個重要性能指標:丟包率和實時性,并與傳統云計算模式進行比較.通過將模擬設備發送的數據包與接收到的數據包進行統計,得到丟包率;用戶給咖啡機傳感器發送采集指令,傳感器采集后上傳咖啡機主控制板,再送給設備服務層,延時定義為從采集指令下發到設備服務層或云平臺的服務器收到數據為止,由此測試此框架的數據傳輸性能.本文所介紹的咖啡機系統原始數據是由傳感器采集產生,經GPRS/4G模塊發送給邊緣網關,再由EdgeX Foundry設備微服務進行下一步處理.將咖啡機部署于邊緣網關下的一個子網中,運用Docker虛擬化容器技術,先安裝Docker及鏡像虛擬設備,再在Ubuntu上運行EdgeX,將其作為咖啡機系統的邊緣網關,最后在另一臺中央虛擬機上部署云平臺.對于Edgex Foundry框架,具體采用Golang 語言編寫,使用device-modbus 的設備微服務.通過Ping測試的方法得到系統實際丟包率和平均時延如表2和表3統計.
表2 系統實際丟包率測試
Table 2 System actual packet loss rate test

計算模型數據包/個100200300400500云計算丟包數/個 01112邊緣計算數據包/個00110計算模型數據包/個6007008009001000云計算丟包數/個 12213邊緣計算丟包數/個10212
表3 系統平均時延測試
Table 3 System average delay test

計算模型數據包/個100200300400500云計算平均時延/ms 202205211208217邊緣計算平均時延/ms8291848693計算模型數據包/個6007008009001000云計算平均時延/ms 214223228221224邊緣計算平均時延/ms9695998993
由表2、表3中數據可以得出,隨著發送數據包數量的增加,兩種計算模式中該系統丟包數和時延都略有上升,傳統云計算模式下,平均丟包率和時延分別為0.26%和215ms,而在邊緣計算模式中,這兩項數據分別為0.13%和91ms,平均丟包率降低了50%,平均時延降低了約58%,這說明邊緣計算模式對于該系統的丟包率和實時性優化明顯,提升了系統的物聯網性能,與實驗預期結果相同.
在萬物互聯的時代浪潮下,云計算模型面對爆發式增長的數據量而逐漸無法適應物聯網行業新興技術的發展,在此背景下,邊緣計算模型應運而生.本文將邊緣計算模型應用于智能咖啡機系統,在邊緣網關節點處搭建了EdgeX Foundry邊緣計算框架,用來處理來自咖啡機的狀態信息,在網關的軟件設計中使用了基于邊緣計算的多模態感知融合異常檢測算法處理數據,并從云服務器搭建、用戶APP設計、硬件設計等幾個方面介紹了咖啡機系統的設計過程,最后給出了對系統性能測試.邊緣計算使該智能自助咖啡機系統運行更加安全可靠,針對用戶需求響應更加迅速,感知融合技術使系統針對狀態的判斷更加準確,決策更加智能,云端協作的方式在智能自助咖啡機系統得到了驗證,論文工作證明了邊緣計算和感知融合對提升類似于智能自助咖啡機等新零售業務的有效性.