无线智能点餐系统设计
2024-08-05刘璐玲陈里
摘要:为了解决传统人工点菜形式低效、耗费人工的问题,文章设计一种基于ARM(高级精简指令集计算机)芯片控制与无线通信技术的智能点餐系统,该系统采用 LPC2378芯片作为客户端和服务台的主控制器,利用nRF24L01无线模块实现客户端和服务器的信息共享;该系统集成了点餐、餐单信息显示和消费自动统计等功能,可为餐厅调整经营策略、提高盈利能力等提供数据支持。
关键词:LPC2378芯片;无线点餐;触摸屏;系统设计
中图分类号:TN7" " "文献标识码:A" " " 文章编号:1674-0688(2024)04-0103-04
0 引言
传统服务方式在现代餐厅中存在不少弊端,例如在顾客就餐的高峰时段,如果服务员人手不足,点餐不及时,就会导致顾客流失,给餐厅造成经济损失;如果服务人员过多,非就餐时间便会造成人工浪费,从而间接增加餐厅的运营成本。为了能更好地节约用人成本,提高盈利能力,餐厅有必要引入可供顾客自主操作的智能点餐系统。在对智能点餐系统的研究中,林倩等[1]设计了一款主从结构的自动点餐系统,顾客自主使用从机下单,主机通过蓝牙接收从机的菜单并确认信息,然后分单传递给后厨,主机和从机均采用单片机控制和实现数据的互通,最终完成自主点餐和结算;谢杭等[2]采用互联网的无线通信技术设计一种基于Android系统的无线点餐系统,该系统可以有序且无差错地进行餐厅前台和厨房之间的数据交互,提供系统化的餐厅点餐解决方案;涂敦兰等[3]提出基于Wi-Fi的智能点餐系统,此设计由桌面点餐、手机App点餐、Wi-Fi模块、PC服务器以及厨师后台控制等模块组成,当用户点餐时,由ARM(高级精简指令集计算机)芯片经过Wi-Fi模块将数据同时发送给PC 端服务器和厨师后台,厨师收到数据并确认信息后将数据返回App终端用户;李志伟[4]基于客户机 / 服务器(Client/ Server,C/S)架构和模型—视图—控制器(Model View Controller,MVC)的设计思路,使用 Eclipse 软件开发了一款无线点餐系统。以上4种无线点餐方式中,基于手机App客户端的点餐方式会增加开发难度与成本,而基于互联网技术的点餐方式又在很大程度上依赖于现场手机网络信号的强弱,这可能会给点餐用户带来使用上的不便。基于此,本文设计一种基于nRF24L01无线模块、OCM32024T触摸屏和ARM芯片控制技术的无线智能点餐系统,由于基于nRF24L01无线模块的无线通信技术不涉及复杂的通信协议,开发代码几乎对用户完全开放,并且同种产品之间可以自由通信,因此能进一步降低开发难度与成本,具有实用性强、操作简单、可靠性与安全性高的特点。此外,该系统能帮助餐厅准确地掌握顾客消费需求,进而为餐厅调整经营策略、提高盈利能力提供重要的数据支持。
1 系统总体设计
智能点餐系统总体结构如图1所示。该系统由客户端和服务台两个部分组成。客户端使用LPC2378芯片作为主控制器,采用机械按键选择顾客的桌号,通过触摸屏完成点餐操作;服务台同样采用LPC2378芯片作为主控制器,点击触摸屏即可显示各桌号的点餐信息。客户端和服务台利用nRF24L01无线模块实现信息共享,主供电源为5 V。
在点餐系统中,客户端通过触摸屏和按键分别接收顾客输入的选菜信息和桌号值信息,以上信息经主控模块处理,按照通信协议封装成一帧数据,通过nRF24L01无线模块发送至服务台,实现点餐信息的无线传输[5]。服务台的主控模块解析nRF24L01无线模块输入的数据,即可获得顾客的点餐信息。
2 硬件设计
2.1 主控电路
主控电路负责搭建LPC2378主控芯片工作所需的外围电路,即采用16 M晶振X1与2个30 pf电容搭建时钟电路,为主控芯片内的各类资源和用户软件提供所需的工作时钟;采用10 K电阻和1个33 μf电容搭建复位电路,为主控芯片提供程序启动所需要的复位信号。
2.2 按键电路
按键电路负责接收用户输入的桌号值信息,由按键K1、K2组成。其中,K1按键接收用户输入的“桌号值+1”命令,K2键接收用户输入的“桌号值-1”命令。主控芯片通过P2.5脚识别 “桌号值+1”命令,该脚出现低电平代表顾客输入了“桌号值+1”命令;通过P2.6脚识别“桌号值-1”命令,该脚出现低电平代表顾客输入了“桌号值-1”命令。
2.3 触摸屏驱动电路
触摸屏驱动电路图如图2所示,其中:RXD为串行通信接收引脚,TXD为串行通信发送引脚,INT为中断请求引脚,GND为接地引脚,VCC为电源引脚。该电路负责搭建OCM320240T触摸屏和主控芯片的有效连接,为客户端和服务端之间的信息传输提供所需的硬件支持。主控芯片分配串口的P0.8脚和P0.9脚分别连接触摸屏的RXD脚和TXD脚,通过搭建串口通信电路实现对点餐信息和用户操作信息的实时显示。此外,触摸屏通过P0.23脚将屏幕的触碰事件传给主控芯片。
本设计使用的触摸屏主要实现2个功能,一是反馈操作者输入的触屏信息,以此确定操作命令。当触摸屏检测到触碰信息时,触摸屏的INT脚向主控芯片的P0.23脚输出高电平信号,同时通过串口将触碰位置的坐标传给主控芯片。二是显示系统的操作界面,主控芯片通过串口发送显示信息所在位置的x轴和y轴坐标、数据模式及信息内容,即可将需要显示信息的内容传给显示屏。触摸屏可显示3种字符信息,当显示8×8点阵ASCII字符时,串口传送的模式值为0×10;当显示8×16点阵ASCII字符时,串口传送的模式值为0×11;当显示16×16点阵GBK(汉字编码字符集)数据时,串口传送的模式值为0×12。
2.4 无线模块驱动电路
无线模块驱动电路图如图3所示,该电路负责中转无线模块和主控芯片的信息,为顾客共享点餐信息提供硬件支持。主控芯片采用内部SPI(串行外设接口)脚与nRF24L01模块通信,其中SPI脚的P2.11脚接模块的IRQ(中断请求)引脚,当模块接收数据时,IRQ脚输出低电平给主控芯片,通知主控芯片及时对数据进行处理;P0.18脚接模块的MISO(SPI串行输出)脚,主控芯片通过该脚向模块发送数据;P0.19脚接模块的MOSI(SPI串行输入)脚,模块通过该脚向主控芯片传输接收到的数据;P2.20脚接模块的SCK(SPI时钟)脚,主控芯片通过该脚向模块传输串行通信时钟信号;P2.10脚接模块的CSN(SPI片选使能)脚,主控芯片通过该脚输出低电平(0 V)可启动SPI总线通信,通信结束后,该脚输出5 V信号;P2.9脚接模块的CE(串行通信收发模式选择)脚,主控芯片通过该脚向模块输出高电平(5 V)使能信号。
2.5 电源模块电路
电源模块电路负责为硬件的各元件提供5 V、3.3 V的电源电压,该电路主要由外接5 V的供电源通过USB口接入,经稳压、滤波后得到5 V、3.3 V的电压。
3 软件设计
3.1 主程序设计
客户端主程序对主控芯片的相关引脚进行初始化配置,配置完成后,首先调用选餐控制程序确定顾客输入的选单信息,其次调用按键程序确定顾客输入的桌号值信息,最后调用通信程序将顾客输入的选单信息和桌号值信息传到给服务端。
服务端主程序对主控芯片的外连引脚进行初始配置,配置完成后,判断无线模块是否收到数据,若收到无线数据,则调用通信程序对客户端输入的信息进行处理。处理完成后调用菜单显示子程序,向服务员展现顾客的点餐信息。客户端和服务端主程序执行流程图见图4。
3.2 按键程序
执行按键程序时,若判定“桌号值+1”键按下,则将顾客输入的桌号值加1;若判定“桌号值-1”键按下,则将顾客输入的桌号值减1。程序接收到桌号值后,若判定桌号值大于15,则将顾客输入的桌号值设置为15;若判定桌号值小于1,则将顾客输入的桌号值设置为1。
3.3 选餐控制程序
选餐控制程序通过对触摸屏触发事件的处理,确定顾客输入的选餐信息。选餐控制程序的具体执行步骤如下。
(1)根据按键程序的输出结果,确定并显示顾客的桌号值信息。
(2)根据触摸屏返回的数据确定当前的显示页面,若判断触摸屏返回的是餐单预览数据,则将餐单预览标志置位;若判断触摸屏返回的是选餐完成数据,则将选餐完成标志置位;若以上2个事件均未触发,则将初始显示标志置位。
(3)当餐单预览标志置位,显示本页餐单后,按顺序执行以下操作:①根据触摸屏返回的数据,确定顾客选中的餐品信息,当检测到加选事件触发,则将选中的餐品加入餐单;②根据触摸屏返回的数据,确定顾客选中的餐品信息,当检测到退选事件触发,将选中的餐品从餐单中删除;③判断触摸屏是否返回下一页触发数据,若返回,则触摸屏显示下一页餐单;④判断触摸屏是否返回上一页触发数据,若返回,则触摸屏显示上一页餐单;⑤判断触摸屏是否返回确定选餐触发数据,若返回,则保存顾客选中的餐品信息,核算本次消费的总价,同时完成选餐标志置位;⑥判断触摸屏是否返回触发数据,若返回,将初始显示标志置位。
(4)选餐标志置位后,触摸屏上显示选餐页面,按顺序执行以下操作:①判断触摸屏是否返回呼叫上餐触发数据,若返回,则将呼叫上餐标志置位,触摸屏上显示的服务状态为“等待上餐”;②当服务员上餐完毕后,触摸屏上显示的服务状态为“上餐完毕”;③判断触摸屏是否返回上餐完毕触发数据,若返回,则将等待结账标志置位,触摸屏上显示的服务状态为“等待结账”;④判断触摸屏是否返回呼叫结账触发数据且结账完成,若返回,则将初始显示标志置位。
(5)初始显示标志置位后,触摸屏上显示初始页面。
3.4 餐单显示程序
餐单显示程序通过对触摸屏的触摸控制,确定各桌号的选餐信息,并完成上餐提示和结账提醒等操作。餐单显示程序执行时,当服务员触碰待上餐桌号的位置,代表有餐单显示事件触发,若该事件触发,则程序将按顺序执行以下操作:①根据触摸屏返回的位置数据,确定服务员需要浏览的桌号;②当桌号显示为已确定,触摸屏显示出当前桌号的餐单信息;③当无线模块接收到客户端输入的数据为置位呼叫上餐标志位,触摸屏上的服务状态显示为“等待上餐”;④当无线模块接收到客户端输入的数据为置位等待结账标志位,触摸屏上的服务状态显示为“等待结账”;⑤判断触摸屏是否返回结账触发数据,若返回,代表顾客已结账,则将当前选中的餐单删除,同时将初始显示标志置位;⑥判断触摸屏是否返回初始页面数据,若返回,则将初始显示标志置位;若无餐单显示事件触发,则读取并显示出各个等待上餐桌号的值,同时在触摸屏上显示对应的信息。
3.5 通信程序
执行服务端数据通信程序时,若收到客户端输入的数据,则首先根据通信协议解析客户端上报的数据,数据内容包括点餐桌号、菜单、消费总价和服务状态,这些数据可为餐单信息的显示提供数据支持;其次判断是否到数据发送的时间,根据客户端接收到的服务状态和触摸屏回复的操作数据,将本机的回复数据发送至客户端。
执行客户端通信程时,若收到服务端输入的数据,则根据通信协议解析服务台发送的回复数据,该数据可为本机服务状态的显示提供数据支持。当顾客触碰触摸屏的确定选餐按钮,本机向服务端发送数据,数据的内容包括顾客选定的菜单、消费总价和当前时刻的服务状态等。
客户端数据帧中包含菜名、数量、桌号、本单总价、服务状态等信息,其中桌号取值范围为1~15,服务状态取值为1或2(值为1时,表示本机向服务台发送置位上餐标志位;值为2时,表示本机向服务台发送置位结账标志位)。
服务台数据帧由帧开始标志、桌号、应答码、帧结束标志组成,其中帧开始标志位设置为0xAA,帧结束标志位设置为0x55,桌号值的取值范围为1~15,应答码用X代表,即当收到本桌的服务码为1且触摸屏已收到服务员上菜完成的命令,本机回复应答码为1,该值代表向选餐端发送上餐完毕标志位;当收到本桌的服务码为2且顾客已结账,本机回复应答码为2,该值代表向选餐端发送结账完毕标志位。
4 系统测试
系统通电后,客户端和服务端的触摸屏上显示初始的运行信息。当客户触碰需要选中的菜名 ,通过“加选”或“退选”选项可更改选中的餐单;按下“确认选餐”选项可确定最终的餐单并自动核算消费总价,同时服务状态变为“等餐中”。此时,服务台上会自动显示顾客的选餐信息。服务员上餐后,触碰“等餐”项,触摸屏上的服务状态由“等餐中”变为“上餐完毕”。上餐完毕后,服务状态变为“等待结账”,顾客触碰触摸屏的“等待结账”项,触摸屏的服务状态变为“结账”。此时,服务台上的选餐信息会自动删除,代表顾客的本次消费操作已结束。经过实物应用、调试,本设计能实现预期点餐、餐单信息显示和消费自动统计等功能。
5 结语
本智能点餐系统采用LPC2378处理芯片和nRF24L01无线模块相结合的方式实现了对点餐过程的智能化管理,解决了人工点餐方式存在的耗时长、效率低、运营费用高等问题,可大幅提升餐厅的服务质量,使餐厅具备更强的盈利能力。随着物联网技术的普及,还可将物联网云技术融入点餐系统中,让服务员和顾客借助腾讯云或阿里云等云平台实现点餐信息的实时共享,从而进一步提升餐厅的整体服务效率。此外,可通过增加语音模块和融入微信、短消息等功能进一步丰富系统的交互能力,为顾客提供更好的消费体验。
6 参考文献
[1]林倩,胡单辉,陈思维.基于蓝牙技术的自动点餐系统的设计与实现[J].天津理工大学学报,2020,36(4):45-49.
[2]谢杭,沈滨伟,肖凯,等.基于Android的无线点餐系统的研究与设计[J].电脑知识与技术,2019,15(6):63-65.
[3]涂敦兰,王莎.基于Wi-Fi的智能点餐系统[J].电信快报,2020(10):41-43.
[4]李志伟.基于 Eclipse+SDK开发平台的无线点餐系统设计[J].信息与电脑,2023(12):125-128.
[5]龙宝壮.基于ZigBee技术无线点餐系统的研究与设计[D].成都:电子科技大学,2018.