張 洋,劉建粉
(平頂山學(xué)院,河南 平頂山 467000)
近年來,我國物聯(lián)網(wǎng)技術(shù)得到快速發(fā)展,人們的生活也變得越來越智能和高效。隨著我國經(jīng)濟(jì)的高速發(fā)展,越來越多的人更愿意去餐廳就餐或依靠外賣,很多年輕人家里廚房的使用率非常低。目前,中國的餐飲市場正在進(jìn)入一個飛速發(fā)展的階段。據(jù)相關(guān)數(shù)據(jù)顯示,2021年餐飲收入46 895億元,增長了18.6%。傳統(tǒng)餐飲行業(yè)在高速發(fā)展的同時,仍普遍采用人工管理方式。隨著餐廳規(guī)模和顧客數(shù)量增加,餐飲業(yè)人力成本大幅增加[1]。目前餐飲行業(yè)的人工管理模式無論是在工作效率還是成本上都難以適應(yīng)現(xiàn)代化的企業(yè)發(fā)展需要[2]。為此,本設(shè)計結(jié)合MQTT協(xié)議、NFC技術(shù)和數(shù)據(jù)庫技術(shù),實現(xiàn)了刷卡消費、實時監(jiān)測環(huán)境數(shù)據(jù)和靈活控制餐廳設(shè)備等功能,提升了餐廳的消費體驗,具有較強的安全性和實用性。
伴隨著科技的進(jìn)步和社會的發(fā)展,人們對餐廳就餐的消費需求越來越高。傳統(tǒng)的餐廳往往存在收銀系統(tǒng)繁瑣、排隊消費效率低下,無法實時保持舒適的就餐環(huán)境,無法對顧客的信息進(jìn)行收集與整合進(jìn)而經(jīng)營消費人群等痛點。因此,傳統(tǒng)的餐廳已無法滿足人們的需求,餐廳管理需要進(jìn)一步高效化和智能化。本設(shè)計中的智能餐廳能夠普遍應(yīng)用于現(xiàn)代餐廳的運營中,集安全性和智能化于一身?;谖锫?lián)網(wǎng)技術(shù)實時采集餐廳環(huán)境數(shù)據(jù)并進(jìn)行智能改變,利用NFC技術(shù)輔以數(shù)據(jù)庫技術(shù),把傳統(tǒng)的消費模式變成以經(jīng)營餐廳消費人群為主的新時代餐廳消費模式。本設(shè)計符合當(dāng)今消費者對智能化就餐的需求,具有一定的實用性。
本設(shè)計采用NFC技術(shù)對工作人員和消費人員進(jìn)行管理,同時與物聯(lián)網(wǎng)智能控制相結(jié)合,對餐廳環(huán)境的安全舒適程度進(jìn)行監(jiān)測控制。系統(tǒng)總體設(shè)計如圖1所示?;贜FC應(yīng)用的會員卡消費模式,更有利于餐廳的正常運營發(fā)展。在餐廳開業(yè)之初,給每一位顧客發(fā)放裝有NFC電子標(biāo)簽的會員卡,并提前初始化會員卡的信息,對顧客信息進(jìn)行錄入。收銀臺裝有NFC讀寫器對每一個顧客的會員卡進(jìn)行讀寫錄入,改變傳統(tǒng)的以現(xiàn)金支付為主的繁瑣方式,并為每個餐廳員工下發(fā)身份卡,只有通過員工的身份卡才能進(jìn)入餐廳的控制臺。采用NFC技術(shù),明顯更利于餐廳未來的智能化和高效化發(fā)展。通過無線模塊聯(lián)網(wǎng)獲取控制中樞的命令,可以對室內(nèi)的風(fēng)扇、加濕器、照明燈、窗戶等進(jìn)行遙控開關(guān)。在餐廳中安放多種傳感器對餐廳內(nèi)環(huán)境進(jìn)行測量,檢測餐廳當(dāng)前的溫度、濕度、可燃?xì)怏w濃度,并進(jìn)行實時顯示;系統(tǒng)還可進(jìn)入智能調(diào)控安全模式,根據(jù)室內(nèi)有無火焰、有無煙霧等情況,自動選擇是否打開消防噴頭、窗戶等,從而構(gòu)建一個安全、高效、智能的餐廳環(huán)境。
圖1 系統(tǒng)總體框架
1.3.1 身份識別與系統(tǒng)登錄
與智能餐廳相關(guān)的人員根據(jù)需要分別配備不同類別的NFC電子標(biāo)簽,標(biāo)簽類別不同,對應(yīng)數(shù)據(jù)操作權(quán)限亦不同。顧客為A類權(quán)限,A類權(quán)限用戶只具備讀取、支付功能。工作人員具備B類標(biāo)簽,此類用戶具備訪問收銀端系統(tǒng)的權(quán)限。發(fā)放每一類權(quán)限的卡片時就在餐廳數(shù)據(jù)庫進(jìn)行了登記。
智能餐廳通過識別相應(yīng)人員的身份卡來確定人員類別,如果是A類權(quán)限身份卡(消費者),那么就不能進(jìn)入到智能餐廳收銀端的頁面;如果是B類權(quán)限身份卡(工作人員),將會進(jìn)入到智能餐廳登錄頁面,工作人員輸入密碼即可進(jìn)入到餐廳收銀端操作界面,如果密碼有誤,會進(jìn)行提示;如果錯誤次數(shù)超過三次[3],將會自動進(jìn)行拍照,防止有人非法登錄餐廳收銀界面。智能餐廳系統(tǒng)登錄功能設(shè)計如圖2所示。
圖2 智能餐廳系統(tǒng)登錄功能設(shè)計
1.3.2 會員卡消費與充值
本設(shè)計中通過NFC技術(shù)和數(shù)據(jù)庫技術(shù)實現(xiàn)智能餐廳消費者的消費與充值服務(wù)。智能餐廳系統(tǒng)需要對進(jìn)入餐廳消費的消費者辦理會員卡,每一個會員卡有一個獨有的會員卡號,此卡號以NFC電子標(biāo)簽的UID充當(dāng)。在智能餐廳的后臺數(shù)據(jù)庫中存儲著每一個會員卡號對應(yīng)的消費者的一系列信息,如手機號、家庭住址、性別、姓名等。顧客需要結(jié)賬或充值時,工作人員可以通過收銀臺的NFC讀寫器對會員卡進(jìn)行識別,通過收銀端上位機對數(shù)據(jù)庫進(jìn)行查看和更改,進(jìn)而對消費者持有的會員卡進(jìn)行結(jié)賬與充值。顧客還可自主查詢余額,使消費變得高效快捷。當(dāng)顧客信息有變化時,管理人員可以通過系統(tǒng)對信息進(jìn)行修改等操作[4]。
1.3.3 環(huán)境控制與安全防護(hù)
智能餐廳環(huán)境控制首先需要連接到華為云IoT云平臺,之后有兩種模式控制餐廳內(nèi)的環(huán)境:手動遙控和自動調(diào)控。在手動模式中,可對智能餐廳的照明系統(tǒng)、風(fēng)扇、報警器和加濕裝置進(jìn)行遠(yuǎn)程控制。在自動調(diào)控模式下,當(dāng)室內(nèi)的溫度過高時,會自動打開排風(fēng)扇;當(dāng)濕度過低時,會自動打開加濕器,以此對室內(nèi)的環(huán)境進(jìn)行調(diào)控。在餐廳遇到火災(zāi)等安全事故時,室內(nèi)的報警器會自動報警,并向餐廳管理人員發(fā)送電子郵件,進(jìn)而保障餐廳內(nèi)人員的安全。這種自動調(diào)控裝置,不需要人員調(diào)控,就能自主進(jìn)行反應(yīng),大大地增加了餐廳的安全性和智能性。在數(shù)據(jù)檢測方面,通過智能餐廳內(nèi)安裝的溫濕度傳感器[5]、煙霧傳感器等收集環(huán)境數(shù)據(jù),并在餐廳安裝的OLED顯示屏上實時顯示室內(nèi)溫度、濕度和煙霧濃度,便于工作人員及時調(diào)控室內(nèi)環(huán)境,為消費者提供更加舒適的消費環(huán)境,提高消費者體驗度,促進(jìn)消費和推廣。自動調(diào)控模式功能架構(gòu)如圖3所示。
圖3 自動調(diào)控模式功能架構(gòu)示意圖
1.3.4 無線點單
本設(shè)計通過Socket通信技術(shù)實現(xiàn)無線點單功能,主要分成收銀端和客戶點單端兩個部分??蛻酎c單端通過點單端軟件進(jìn)行相應(yīng)產(chǎn)品的選擇,然后選擇自己的座位號進(jìn)行發(fā)送;收銀端接收到客戶點單端發(fā)來的消息后,工作人員向客戶點單端發(fā)送一個響應(yīng),告知消費者:工作人員已經(jīng)收到了顧客點單的信息,最后通過此信息的內(nèi)容進(jìn)行備餐和送餐[6]。
本系統(tǒng)的硬件結(jié)構(gòu)主要分成兩個部分:一個是用于實現(xiàn)身份卡識別與消費充值的收銀端,通過將基于ST25R3916芯片的NFC讀寫器與STM32相連接,再將其通過串口與上位機進(jìn)行通信和電子標(biāo)簽的識別;另一部分是用于餐廳環(huán)境數(shù)據(jù)采集和調(diào)控的餐廳環(huán)境控制端,將OLED顯示屏、可燃?xì)怏w傳感器、蜂鳴器、溫濕度傳感器和WiFi模塊與Hi3861控制芯片相連,實現(xiàn)環(huán)境數(shù)據(jù)的采集和上傳,并將直流電機、照明模塊、WiFi模塊、蜂鳴器和自制加濕器等模塊與STM32控制芯片相連,實現(xiàn)環(huán)境的調(diào)控[7]。系統(tǒng)硬件結(jié)構(gòu)如圖4所示。
圖4 系統(tǒng)硬件結(jié)構(gòu)
根據(jù)智能餐廳的具體情況,本文設(shè)計出既滿足餐廳的功能需求,又安全可靠的軟件程序。整體上可以將軟件的設(shè)計細(xì)分為四個部分,分別是身份卡識別、收銀端上位機、餐廳環(huán)境數(shù)據(jù)采集與上報、執(zhí)行器接收命令與執(zhí)行。通過編寫識別身份卡的相關(guān)程序使得系統(tǒng)可以檢測每一張卡的卡號,進(jìn)而在C#編寫的收銀端上位機上進(jìn)行相關(guān)功能的開發(fā)。通過編寫餐廳環(huán)境數(shù)據(jù)采集與上報和執(zhí)行器接受命令與執(zhí)行這兩個程序,實現(xiàn)環(huán)境控制與安全防護(hù)等功能。本設(shè)計采用的是結(jié)構(gòu)化和模塊化設(shè)計方法,便于程序的擴展和調(diào)試。
智能餐廳系統(tǒng)中使用SQL Server數(shù)據(jù)庫來實現(xiàn)數(shù)據(jù)的增、刪、改、查。數(shù)據(jù)庫包含兩個數(shù)據(jù)表:工作人員信息表和顧客信息表。工作人員信息表是一張用于儲存A類(工作人員)卡片系統(tǒng)登錄賬號和密碼的表單,該表單以工作人員的UID為主鍵,每個工作人員UID對應(yīng)一條不重復(fù)的記錄,智能餐廳系統(tǒng)必須使用數(shù)據(jù)庫中的A類卡片的UID和對應(yīng)密碼才能登錄系統(tǒng)進(jìn)行管理、控制,具體設(shè)計見表1所列。顧客信息表是一個用于存放顧客信息的表單,該表單以顧客UID為主鍵,每個顧客UID對應(yīng)一條不重復(fù)的記錄,每一個表項包括顧客會員卡UID、用戶余額、地址、手機號等數(shù)據(jù)[8],具體設(shè)計見表2所列。
表1 工作人員信息
表2 顧客信息
身份識別的軟件設(shè)計主要分為獲取電子標(biāo)簽UID和身份判別兩部分。獲取電子標(biāo)簽UID是通過編寫MCU程序,使系統(tǒng)可以檢測到正在刷卡人的卡號,運用了NFC讀寫器。具體軟件實現(xiàn)流程為:首先進(jìn)行初始化操作,當(dāng)電子標(biāo)簽靠近NFC讀卡器時,進(jìn)行觸發(fā)中斷,打開NFC讀寫器,尋找天線區(qū)內(nèi)所有卡,得到卡類型;當(dāng)檢測到電子標(biāo)簽時[9],進(jìn)行防沖突操作,進(jìn)而選定身份卡。選擇身份卡后,讀取電子標(biāo)簽的UID,最后將電子標(biāo)簽的UID通過串口發(fā)送出來,為后續(xù)上位機的使用做準(zhǔn)備。獲取電子標(biāo)簽UID的程序流程如圖5所示。
圖5 身份卡識別程序流程
身份判別的實現(xiàn)流程:上位機讀取由串口發(fā)來的身份卡的UID,將此身份卡的UID與SQL Server數(shù)據(jù)庫表中的主鍵信息相對應(yīng),找到對應(yīng)表項后,讀取此表項的身份類型,判斷此電子標(biāo)簽的權(quán)限類型,從而進(jìn)行此身份權(quán)限的后續(xù)操作。讀取身份卡的UID主要使用串口通信技術(shù),首先需要在程序中設(shè)置校驗位、數(shù)據(jù)位、停止位和串口數(shù)據(jù)緩沖等待時間等參數(shù),串口號、波特率在頁面中進(jìn)行設(shè)置;然后打開串口,檢測串口是否發(fā)來了數(shù)據(jù),如果有數(shù)據(jù),則將數(shù)據(jù)暫時放在緩沖區(qū),接收完畢后將數(shù)據(jù)顯示出來。此數(shù)據(jù)就是系統(tǒng)需要的電子標(biāo)簽的UID,隨后系統(tǒng)將此值和數(shù)據(jù)庫中的身份信息進(jìn)行比對。如果是管理員身份的UID,將自動跳轉(zhuǎn)到工作人員登錄界面;如果是消費者身份的UID,則此身份卡只具備在收銀臺消費和充值的權(quán)限。
系統(tǒng)登錄部分主要是由密碼比對和預(yù)警拍照組成。登錄者在系統(tǒng)登錄界面輸入密碼,系統(tǒng)會將這個密碼與后臺數(shù)據(jù)庫中UID對應(yīng)的密碼進(jìn)行比對,如果正確,則進(jìn)入到管理功能界面;如果錯誤則會進(jìn)行提示。當(dāng)錯誤次數(shù)超過三次時,系統(tǒng)會自動調(diào)用電腦的攝像頭進(jìn)行拍照,保障餐廳財產(chǎn)安全[10]。
首先編寫相關(guān)程序獲取AHT20溫濕度傳感器采集到的餐廳溫濕度數(shù)據(jù)和MQ-2可燃?xì)怏w傳感器采集到的室內(nèi)可燃?xì)怏w濃度數(shù)據(jù);之后基于MQTT消息協(xié)議將數(shù)據(jù)上傳到華為云IoT云平臺上并實時顯示出來;經(jīng)過數(shù)據(jù)分析,終端自主進(jìn)行反應(yīng),并發(fā)送到執(zhí)行器上,進(jìn)行控制操作,從而實現(xiàn)智能環(huán)境控制。
控制器Hi3861獲取溫濕度值是通過I2C和AHT20進(jìn)行通信的,軟件實現(xiàn)流程為:
(1)配置I2C接口,并在讀取溫濕度數(shù)據(jù)前,首先發(fā)送獲取狀態(tài)命令,獲取一個字節(jié)的狀態(tài)字。
(2)發(fā)送出測試命令。
(3)在測量完成后,通過發(fā)送獲取狀態(tài)命令獲取狀態(tài),當(dāng)讀取到狀態(tài)字的Bit[7]為0時,就可以繼續(xù)讀取5個字節(jié)的溫濕度數(shù)據(jù)了。
(4)將接收的測量結(jié)果拼接轉(zhuǎn)換為標(biāo)準(zhǔn)值,計算出溫濕度數(shù)據(jù)。
獲取可燃?xì)怏w濃度主要是通過讀取MQ-2可燃?xì)怏w傳感器的ADC值實現(xiàn)的,將讀取到的ADC值轉(zhuǎn)換為對應(yīng)的可燃?xì)怏w濃度數(shù)值。
數(shù)據(jù)上傳的流程為:首先啟動STA模式,連接到指定的接入點,通過DHCP向接入點請求獲取Wlan0的IP地址;然后連接到MQTT服務(wù)器(華為云平臺),向華為云IoT云平臺上傳溫濕度數(shù)據(jù),平臺將這些數(shù)據(jù)解析出來并顯示。
執(zhí)行器接受命令與執(zhí)行功能的實現(xiàn)主要分為控制器STM32接收命令和執(zhí)行器執(zhí)行相關(guān)操作兩部分。MCU首先通過ESP8266 WiFi模塊連接上網(wǎng)絡(luò),并通過MQTT消息協(xié)議技術(shù)訂閱云平臺下發(fā)的命令,具體流程為:(1)連接指定的熱點;(2)連接華為云平臺的接入TCP地址;(3)連接MQTT服務(wù)器;(4)訂閱主題,用來接收云平臺的消息;(5)解析云平臺發(fā)送來的消息,并執(zhí)行相應(yīng)操作。
解析云平臺發(fā)送來的信息的流程為:STM32通過WiFi模塊接收到每一次華為云IoT云平臺發(fā)送的命令后,使用串匹配算法檢索出是否有提前設(shè)定的“開風(fēng)扇”“開燈”等命令語句。如果有,執(zhí)行相應(yīng)命令;如果沒有,丟棄這一次命令。循環(huán)上述流程,即可解析云平臺發(fā)來的數(shù)據(jù)并執(zhí)行。
本文基于物聯(lián)網(wǎng)思維,將NFC、MQTT、數(shù)據(jù)庫等技術(shù)相融合,使用搭載鴻蒙操作系統(tǒng)的Hi3861和STM32為雙控制器,設(shè)計出一個兼具高效性和舒適性的智能餐廳,解決了目前餐廳普遍存在的安全性低、效率低、舒適性差的痛點,從而為用戶帶來全新的智能餐廳體驗。