康瑞浩 朱明遠(yuǎn) 李彪 邊碩 鄧偉剛
摘? 要: 在日常生活中,學(xué)校和企業(yè)具有嚴(yán)格的作息時(shí)間。食堂往往存在就餐人數(shù)集中擁堵,排隊(duì)時(shí)間過(guò)長(zhǎng)等問(wèn)題,而且還會(huì)產(chǎn)生一些不文明的社會(huì)現(xiàn)象。為解決傳統(tǒng)食堂點(diǎn)餐就餐的模式,設(shè)計(jì)了一種無(wú)線稱重監(jiān)測(cè)食堂菜品剩余量的系統(tǒng),利用NRF24L01和HX711芯片的特點(diǎn),將自動(dòng)稱重控制技術(shù)與無(wú)線通信技術(shù)有機(jī)結(jié)合起來(lái)。通過(guò)MySQL制作菜品剩余量的數(shù)據(jù)庫(kù),并由電腦、顯示器和微信小程序向就餐人員動(dòng)態(tài)實(shí)時(shí)的顯示食堂所售菜品的各種信息。該系統(tǒng)的使用能夠減少排隊(duì)、等座時(shí)間,提高就餐效率,還能選擇自己喜歡的菜品,極大地提高了就餐效率和服務(wù)質(zhì)量。
關(guān)鍵詞: 嵌入式系統(tǒng);無(wú)線模塊;微信點(diǎn)餐;電子稱重
中圖分類號(hào): TP393.1? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.026
本文著錄格式:康瑞浩,朱明遠(yuǎn),李彪,等. 基于無(wú)線通信網(wǎng)絡(luò)的食堂菜品動(dòng)態(tài)稱重系統(tǒng)研究與實(shí)現(xiàn)[J]. 軟件,2020,41(09):9195
【Abstract】: In daily life, schools and enterprises have strict work and rest time. There are many problems in canteen, such as crowded dining population, long queue time, and some uncivilized social phenomena. In order to solve the traditional mode of ordering and dining in canteen, this article designed a wireless weighing system to monitor the leftover quantity of canteen dishes. Using the characteristics of nRF24L01 and hx711 chips, the automatic weighing control technology and wireless communication technology were organically combined. A database was established through mysql to show the leftovers of dishes, and display all kinds of information of the dishes sold in the canteen to the dining staff in real time by computer, display and wechat program. The use of the system can reduce the waiting time, improve the efficiency of dining, but also choose their favorite dishes, which can greatly improve the efficiency of dining and service quality.
【Key words】: Embedded system; Wireless module; Wechat ordering; Electronic weighing
0? 引言
目前,學(xué)校、工廠和企業(yè)的食堂基本都是通過(guò)就餐人員直接到食堂查看菜品,然后與售賣(mài)人員進(jìn)行口頭交流,完成點(diǎn)餐和支付過(guò)程。這種模式不依賴于互聯(lián)網(wǎng),無(wú)法將菜品信息傳遞給就餐人員,在就餐高峰期造成人員擁堵,傳統(tǒng)人工處理就餐流程效率低下[1]。而且傳統(tǒng)的稱重系統(tǒng)信息傳輸多使用有線通信進(jìn)行數(shù)據(jù)傳輸。然而食堂所處環(huán)境復(fù)雜,不宜存在過(guò)多線路,并且各種元件通過(guò)有線方式連接比較麻煩[2]。在無(wú)線通信技術(shù)高速發(fā)展的今天,隨之應(yīng)用該技術(shù)的計(jì)算機(jī)系統(tǒng)也與日俱進(jìn)。針對(duì)目前食堂存在的各種問(wèn)題,本項(xiàng)目設(shè)計(jì)了一種無(wú)線稱重監(jiān)測(cè)食堂菜品剩余量的系統(tǒng),本系統(tǒng)具有硬件結(jié)構(gòu)簡(jiǎn)單,功耗低,軟件使用靈活方便等優(yōu)點(diǎn)[3]。通過(guò)無(wú)線通信模塊,將采集到的數(shù)據(jù)實(shí)時(shí)傳輸?shù)缴衔粰C(jī)。通過(guò)多次數(shù)據(jù)的采集,利用MySQL制作菜品剩余量的數(shù)據(jù)庫(kù)[4],并通過(guò)微信小程序進(jìn)行查看和預(yù)定飯菜,就餐人員利用該系統(tǒng)可在線選擇菜品并生成就餐碼和支付信息。也有利于食堂根據(jù)菜品剩余數(shù)據(jù)庫(kù)及飯菜預(yù)定信息更好的向就餐人員提供服務(wù)。
1? 系統(tǒng)總體結(jié)構(gòu)
無(wú)線稱重控制系統(tǒng)主要完成數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)發(fā)送、數(shù)據(jù)儲(chǔ)存、信號(hào)轉(zhuǎn)換等功能[5]。無(wú)線稱重控制系統(tǒng)主要由食堂前端、主控室和用戶服務(wù)平臺(tái)三部分構(gòu)成,食堂前端包括稱重平臺(tái)、控制部分、顯示模塊與無(wú)線通信模塊。主控室由無(wú)線通信模塊和上位機(jī)組成。用戶服務(wù)平臺(tái)即微信小程序前端。系統(tǒng)總體結(jié)構(gòu)如圖1所示。稱重平臺(tái)主要由食堂菜品盤(pán)和裝有稱重傳感器兩部分組成。稱重控制器由數(shù)模轉(zhuǎn)換電路、顯示電路和單片機(jī)通信電路等組成[2]。無(wú)線通信模塊的功能主要是進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),在稱重控制器與食堂主控室內(nèi)的計(jì)算機(jī)之間建立無(wú)線通信連接。上位機(jī)通過(guò)無(wú)線通信模塊采集各稱重控制器的數(shù)據(jù),同時(shí)對(duì)采集到的多種菜品剩余重量數(shù)據(jù)進(jìn)行集中管理[6],并將數(shù)據(jù)傳遞至微信小程序前端,以便客戶對(duì)食堂當(dāng)天情況有所了解。
2? 系統(tǒng)硬件
2.1? 稱重控制結(jié)構(gòu)
稱重控制結(jié)構(gòu)以STC89C52單片機(jī)為控制核心,處理經(jīng)數(shù)模轉(zhuǎn)換后的稱重傳感器數(shù)據(jù),并由顯示電路與通信電路進(jìn)行輸出,結(jié)構(gòu)框圖如圖2所示。
STC89C52單片機(jī)是國(guó)產(chǎn)低功耗的8位單片機(jī),其價(jià)格便宜、功能完善、資源豐富是系統(tǒng)稱重控制器的理想選擇[7]。重量數(shù)據(jù)采集主要由傳感器采集輸出連續(xù)變化的電壓值;數(shù)模轉(zhuǎn)換電路由24位A/D轉(zhuǎn)換器HX711芯片完成將連續(xù)的模擬電壓值轉(zhuǎn)換成數(shù)字量,并交由單片機(jī)進(jìn)行處理。顯示電路主要完成菜品剩余重量的數(shù)據(jù)顯示。通信電路是將單片機(jī)輸出的TTL電平信號(hào)經(jīng)過(guò)NRF24L01芯片傳輸,在接收主機(jī)端經(jīng)CH340T芯片實(shí)現(xiàn)USB轉(zhuǎn)串口與PC建立連接進(jìn)行數(shù)據(jù)傳輸。
2.2? 稱重傳感器結(jié)構(gòu)
本系統(tǒng)選用的是目前應(yīng)用最為廣泛的電阻應(yīng)變式平行梁傳感器。平行梁傳感器對(duì)測(cè)量環(huán)境要求不太嚴(yán)格,可以在各種惡劣的條件下保持正常地工作,它的體積也一般比較小,非常適合小型化的民用稱重設(shè)備。平行梁傳感器構(gòu)造簡(jiǎn)單、穩(wěn)定性較好,精度高、量程大、靈敏度較高、頻率響應(yīng)特性優(yōu)異[8]。
平行梁傳感器的原理:平行梁會(huì)因外力作用發(fā)生彈性形變,而處在平行梁上按規(guī)則分布的電阻應(yīng)變片也隨這力的作用產(chǎn)生形變[9]。由于應(yīng)變片形狀內(nèi)部結(jié)構(gòu)變化會(huì)導(dǎo)致應(yīng)變片阻值發(fā)生變化,電橋電路將不能平衡輸出,產(chǎn)生差動(dòng)信號(hào)。傳感器中阻值、電壓等參數(shù)變化微弱,經(jīng)過(guò)放大電路倍增和模擬量到數(shù)字量轉(zhuǎn)換,經(jīng)單片機(jī)內(nèi)部運(yùn)算就可以得到待測(cè)物的質(zhì)量[7]。傳感器結(jié)構(gòu)如圖3所示。
電橋電路是由四個(gè)電阻應(yīng)變片組成的橋臂,在外力作用下都發(fā)生彈性變形,同處一個(gè)溫度場(chǎng),當(dāng)4個(gè)應(yīng)變片的材料、阻值、應(yīng)變量ε都相同時(shí),由于R1與R3為拉應(yīng)變正值代入,R2與R4為壓應(yīng)變負(fù)值代入,溫度影響相互抵消,電壓輸出靈敏度高。則可推導(dǎo)出以下公式(1):
本文在使用過(guò)程中將該傳感器放置在盛放菜品餐盤(pán)的幾何中心處,菜品盛放過(guò)過(guò)程中盡量保證餐盤(pán)內(nèi)菜品均勻,減少稱重采集數(shù)據(jù)誤差;其次,在菜品餐盤(pán)與傳感器之間采用保溫層隔絕,避免菜品冷熱不同對(duì)傳感器靈敏度產(chǎn)生過(guò)大影響。
2.3? 稱重A/D轉(zhuǎn)換模塊
由于單片機(jī)只能識(shí)別處理數(shù)字信號(hào),但由于傳感器輸出的是模擬信號(hào),單片機(jī)無(wú)法直接進(jìn)行數(shù)據(jù)處理,因此需要通過(guò)A/D轉(zhuǎn)換模塊將模擬信號(hào)變成數(shù)字信號(hào),同時(shí)傳感器電橋輸出電壓非常微弱,如果直接處理會(huì)導(dǎo)致信號(hào)丟失或失真,則須經(jīng)過(guò)放大電路倍增和模擬量到數(shù)字量轉(zhuǎn)換,最后形成單片機(jī)可識(shí)別處理的數(shù)據(jù)量。為提供可靠的信號(hào)放大以及數(shù)模轉(zhuǎn)換,因此選用了集成電路HX711模塊[10]。如圖4所示。
數(shù)模轉(zhuǎn)換精度對(duì)系統(tǒng)參考電壓要求較高。而單片機(jī)內(nèi)部A/D最高為12位,人為提高精度將影響其參考電壓精度,需要外置A/D芯片。HX711專門(mén)應(yīng)用于精度較高的稱重傳感器的24位數(shù)模轉(zhuǎn)換芯片,該芯片集成度高、響應(yīng)速度快、抗干擾性強(qiáng)、可靠性較高,能夠降低稱重系統(tǒng)的開(kāi)發(fā)成本[11]。該芯片已將外圍電路集成,平行梁傳感器和芯片內(nèi)A/D轉(zhuǎn)換器均由芯片提供穩(wěn)壓電源,不需要系統(tǒng)單獨(dú)提供模擬電源[12]。芯片內(nèi)制時(shí)鐘振蕩器,只需要上電即可自動(dòng)復(fù)位,簡(jiǎn)化了開(kāi)機(jī)的初始化過(guò)程。而且不需要對(duì)芯片內(nèi)部寄存器編程,控制信號(hào)由單片機(jī)引腳驅(qū)動(dòng),極大地簡(jiǎn)化了開(kāi)發(fā)難度,提高了開(kāi)發(fā)效率。編程時(shí)可任意選取通道A或通道B,與內(nèi)部的低噪聲可編程放大器相連,獲得不同的編程增益。通道選擇參照表1。
2.4? 稱重顯示結(jié)構(gòu)
目前顯示主要有LED與LCD兩種方式,考慮到本系統(tǒng)要顯示的數(shù)據(jù)量相對(duì)較多,因此決定選用性能更加優(yōu)異的LCD屏。常見(jiàn)的有LCD1602普通屏以及TFT真彩屏,本系統(tǒng)雖然數(shù)據(jù)量大但對(duì)顏色沒(méi)有要求也不需要顯示彩色圖像,采用TFT會(huì)降低單片機(jī)的處理速度,而且LCD1602 模塊成本低,控制簡(jiǎn)單能夠滿足現(xiàn)實(shí)的要求。因此從成本和實(shí)用性來(lái)看本系統(tǒng)選擇使用LCD1602作為顯示器件,LCD1602可以最大顯示2行32個(gè)字符,液晶接口電路采用并行通信模式實(shí)現(xiàn),可以相對(duì)減少單片機(jī)的I/O口資源。LCD1602模塊可以和單片機(jī)直接連接,電路簡(jiǎn)單。硬件電路如圖5所示。
2.5? 無(wú)線通信接口
本系統(tǒng)采用NRF24L01無(wú)線射頻收發(fā)模塊,NORDIC公司生產(chǎn)的NRF24L01是一款采用FSK調(diào)制的無(wú)線通信芯片,內(nèi)部開(kāi)發(fā)集成自定的Enhanced Short Burst協(xié)議,可以實(shí)現(xiàn)一對(duì)多的無(wú)線通信[7]。
無(wú)線通信速速率可以達(dá)到2 bps,能夠?qū)崿F(xiàn)快速實(shí)時(shí)的無(wú)線信息傳送功能,為小型單片機(jī)系統(tǒng)構(gòu)建無(wú)線通信提供了方便快捷的技術(shù)支持[13]。NRF24L01無(wú)線模塊連接稱重控制器,并采用TTL電平變化完成對(duì)串口進(jìn)行數(shù)據(jù)的讀寫(xiě),圖6為NRF24L01無(wú)線模塊與STC89C52單片機(jī)連接示意圖。PC機(jī)與無(wú)線通信模塊之間通信需要進(jìn)行電平轉(zhuǎn)換,在此采用了STC14W404AS控制的CH340T芯片將TTL串口轉(zhuǎn)換成USB串口,使得接口形式可在電腦上可識(shí)別出來(lái)。
3? 后臺(tái)軟件
3.1? 無(wú)線通信模塊軟件系統(tǒng)
本文采用NRF24L01無(wú)線模塊進(jìn)行重量采集端和數(shù)據(jù)讀取端之間的信息傳輸,數(shù)據(jù)傳輸?shù)刂啡绫?所示,首先進(jìn)行模塊初始化,將LED、CE、SCK引腳均拉低,CSN引腳拉高,SPI完成初始設(shè)置。根據(jù)主從機(jī)的信息設(shè)置SPI接收、發(fā)送的地址。將工作頻道、數(shù)據(jù)長(zhǎng)度、發(fā)射頻率確定設(shè)置。此時(shí)模塊進(jìn)入待機(jī)狀態(tài)。然后設(shè)置工作模式,根據(jù)拉低CE引腳電平變化設(shè)置不同模式,并配置SPI讀寫(xiě)寄存器,完成好工作模式的配置。
發(fā)送端:打包好數(shù)據(jù),通過(guò)NRF24L01_TxPacket()函數(shù)發(fā)送數(shù)據(jù)包。
接收端:通過(guò)NRF24L01_RxPacket()等待數(shù)據(jù)的到來(lái)。無(wú)線傳輸程序流程圖如圖7所示。
3.2? 后臺(tái)軟件系統(tǒng)
通過(guò)COM串口將數(shù)據(jù)上傳收集,將剩余重量數(shù)據(jù)通過(guò)MySQL保存到數(shù)據(jù)庫(kù)中。用戶服務(wù)平臺(tái)基于微信小程開(kāi)發(fā),微信小程序具有跨平臺(tái)、即用即走、完善的文檔、高效的開(kāi)發(fā)框架等優(yōu)點(diǎn)[14]。系統(tǒng)后臺(tái)采用微擎框架,使用Sublime編輯器編碼。前端為基于HTML+CSS技術(shù)的UI界面。利用PHP語(yǔ)言和數(shù)據(jù)庫(kù)MySQL結(jié)合開(kāi)發(fā)[15]。當(dāng)用戶通過(guò)觀察菜品的價(jià)格、名稱、剩余量,確定自己的需求并提交訂單時(shí),將會(huì)觸發(fā)后臺(tái)事件并調(diào)用程序進(jìn)行處理,生成核銷二維碼并預(yù)約成功。服務(wù)平臺(tái)軟件前后端顯示界面如圖8所示。
4? 系統(tǒng)功能的實(shí)現(xiàn)及應(yīng)用
本系統(tǒng)的無(wú)線模塊是工作在2.4 G~2.5 GHz世界通用的ISM頻段的新型單片射頻收發(fā)器件,在很多條件和因素的影響下傳輸距離可達(dá)100 m,完全可以應(yīng)對(duì)食堂環(huán)境相對(duì)復(fù)雜的環(huán)境。將自動(dòng)稱重控制技術(shù)與無(wú)線通信技術(shù)有機(jī)結(jié)合起來(lái),將采集到的數(shù)據(jù)利用無(wú)線通信傳輸?shù)竭h(yuǎn)程服務(wù)器。通過(guò)多次數(shù)據(jù)的采集,利用MySQL制作菜品剩余量的數(shù)據(jù)庫(kù),并通過(guò)微信小程序進(jìn)行查看和預(yù)定飯菜。該系統(tǒng)能實(shí)現(xiàn)以下功能:
(1)當(dāng)前菜品信息顯示。
(2)菜品剩余重量數(shù)據(jù)實(shí)時(shí)顯示。
(3)通信狀態(tài)顯示。
(4)歷史數(shù)據(jù):歷史數(shù)據(jù)查看、數(shù)據(jù)輸出打印。
(5)用戶管理:用戶身份信息、用戶密碼修改、用戶消費(fèi)。
(6)系統(tǒng)管理:窗口管理、退出系統(tǒng)。
系統(tǒng)測(cè)試運(yùn)行過(guò)程如圖9所示。
5? 結(jié)語(yǔ)
本文采用STC89C52單片機(jī)作為無(wú)線電子稱重系統(tǒng)平臺(tái)的處理芯片,用NRF24L01芯片組成無(wú)線收發(fā)通信模塊,用HX711芯片作為信號(hào)處理模塊,通過(guò)無(wú)線通信的方式對(duì)遠(yuǎn)程稱量設(shè)備的數(shù)據(jù)進(jìn)行采集和控制,將自動(dòng)稱重控制技術(shù)與無(wú)線通信技術(shù)融為一體,通過(guò)串口將數(shù)據(jù)上傳到PC機(jī),將剩余重量數(shù)據(jù)通過(guò)MySQL保存到數(shù)據(jù)庫(kù)中,并通過(guò)微信小程序進(jìn)行控制查看和預(yù)定飯菜。本系統(tǒng)為用戶提供了一個(gè)移動(dòng)的校園訂餐平臺(tái),用戶不僅可以查看菜品剩余量,還可以將其作為食堂采購(gòu)提供可靠的分析數(shù)據(jù),能夠減少排隊(duì)、等座時(shí)間,提高就餐效率,還能選擇自己喜歡的菜品,極大地提高了就餐效率和服務(wù)質(zhì)量。
參考文獻(xiàn)
[1]劉琤, 趙桓鑫, 王先勇. 基于Spring Boot技術(shù)的微信平臺(tái)校園食堂智能點(diǎn)餐系統(tǒng)設(shè)計(jì)[J]. 無(wú)線互聯(lián)科技, 2019, 15: 37-38.
[2]鄧福軍, 朱建鴻, 高美鳳. 基于無(wú)線通信的遠(yuǎn)程稱重監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2012, 11: 154-157.
[3]劉海洋, 王春光, 陳智. 基于MC13213的無(wú)線風(fēng)蝕數(shù)據(jù)采集器的設(shè)計(jì)[J]. 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013, 07: 96-100.
[4]趙秀芹, 劉楊青, 李瑞祥. MySQL數(shù)據(jù)庫(kù)使用技巧三例[J]. 網(wǎng)絡(luò)安全和信息化, 2019, 08: 90-91.
[5]謝敏, 李金玲, 李志. 無(wú)線電子稱重系統(tǒng)平臺(tái)的研制[J]. 電子世界, 2016, 24: 94-95.
[6]黃衍標(biāo), 曹淑寬. 基于nRF24L01的智能物聯(lián)系統(tǒng)組網(wǎng)技術(shù)研究[J]. 現(xiàn)代信息科技, 2018, 10: 192-194.
[7]張波, 王晨陽(yáng), 徐傳旭, 等. 基于STC89C52和HX711的電子秤設(shè)計(jì)[J]. 現(xiàn)代信息科技, 2019, 08: 42-46.
[8]張榮軒. 一種電阻應(yīng)變式稱重傳感器結(jié)構(gòu)[J]. 衡器, 2012, 04: 45-47.
[9]李承躍, 馬利. 壓力傳感器特性研究實(shí)驗(yàn)的ANSYS輔助教學(xué)[J]. 實(shí)驗(yàn)室研究與探索, 2010, 03: 24-26.
[10]葛海江. 基于HX711的高精度電子稱重研究[J]. 電子測(cè)試, 2019(10), 31-32.
[11]劉磊. 基于A/D芯片HX711的自制橋式傳感器[J]. 數(shù)字技術(shù)與應(yīng)用, 2018, 04: 89-91.
[12]王洋洋, 金曉龍, 郭斌. 基于STC89C51單片機(jī)的棉花重量采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦與電信, 201210: 24-25.
[13]林英杰, 邱海濤, 陳洪財(cái). 可編程防丟防盜報(bào)警器[J]. 電子制作, 2018, 03: 28-30.
[14]楊士卿. 基于微信小程序開(kāi)發(fā)非正式學(xué)習(xí)環(huán)境可行性分析[J]. 201807: 147-148.
[15]王維, 沈長(zhǎng)嬌, 高伊騰. 微信點(diǎn)餐小程序的系統(tǒng)與實(shí)現(xiàn)[J]. 電腦編程技巧與維護(hù), 2019(09), 70-72.