基于鸿蒙Hi3861和STM32双控的智能餐厅系统设计
2023-02-08刘建粉
张 洋,刘建粉
(平顶山学院,河南 平顶山 467000)
0 引 言
近年来,我国物联网技术得到快速发展,人们的生活也变得越来越智能和高效。随着我国经济的高速发展,越来越多的人更愿意去餐厅就餐或依靠外卖,很多年轻人家里厨房的使用率非常低。目前,中国的餐饮市场正在进入一个飞速发展的阶段。据相关数据显示,2021年餐饮收入46 895亿元,增长了18.6%。传统餐饮行业在高速发展的同时,仍普遍采用人工管理方式。随着餐厅规模和顾客数量增加,餐饮业人力成本大幅增加[1]。目前餐饮行业的人工管理模式无论是在工作效率还是成本上都难以适应现代化的企业发展需要[2]。为此,本设计结合MQTT协议、NFC技术和数据库技术,实现了刷卡消费、实时监测环境数据和灵活控制餐厅设备等功能,提升了餐厅的消费体验,具有较强的安全性和实用性。
1 总体设计
1.1 系统需求分析
伴随着科技的进步和社会的发展,人们对餐厅就餐的消费需求越来越高。传统的餐厅往往存在收银系统繁琐、排队消费效率低下,无法实时保持舒适的就餐环境,无法对顾客的信息进行收集与整合进而经营消费人群等痛点。因此,传统的餐厅已无法满足人们的需求,餐厅管理需要进一步高效化和智能化。本设计中的智能餐厅能够普遍应用于现代餐厅的运营中,集安全性和智能化于一身。基于物联网技术实时采集餐厅环境数据并进行智能改变,利用NFC技术辅以数据库技术,把传统的消费模式变成以经营餐厅消费人群为主的新时代餐厅消费模式。本设计符合当今消费者对智能化就餐的需求,具有一定的实用性。
1.2 总体设计思路
本设计采用NFC技术对工作人员和消费人员进行管理,同时与物联网智能控制相结合,对餐厅环境的安全舒适程度进行监测控制。系统总体设计如图1所示。基于NFC应用的会员卡消费模式,更有利于餐厅的正常运营发展。在餐厅开业之初,给每一位顾客发放装有NFC电子标签的会员卡,并提前初始化会员卡的信息,对顾客信息进行录入。收银台装有NFC读写器对每一个顾客的会员卡进行读写录入,改变传统的以现金支付为主的繁琐方式,并为每个餐厅员工下发身份卡,只有通过员工的身份卡才能进入餐厅的控制台。采用NFC技术,明显更利于餐厅未来的智能化和高效化发展。通过无线模块联网获取控制中枢的命令,可以对室内的风扇、加湿器、照明灯、窗户等进行遥控开关。在餐厅中安放多种传感器对餐厅内环境进行测量,检测餐厅当前的温度、湿度、可燃气体浓度,并进行实时显示;系统还可进入智能调控安全模式,根据室内有无火焰、有无烟雾等情况,自动选择是否打开消防喷头、窗户等,从而构建一个安全、高效、智能的餐厅环境。
图1 系统总体框架
1.3 功能介绍
1.3.1 身份识别与系统登录
与智能餐厅相关的人员根据需要分别配备不同类别的NFC电子标签,标签类别不同,对应数据操作权限亦不同。顾客为A类权限,A类权限用户只具备读取、支付功能。工作人员具备B类标签,此类用户具备访问收银端系统的权限。发放每一类权限的卡片时就在餐厅数据库进行了登记。
智能餐厅通过识别相应人员的身份卡来确定人员类别,如果是A类权限身份卡(消费者),那么就不能进入到智能餐厅收银端的页面;如果是B类权限身份卡(工作人员),将会进入到智能餐厅登录页面,工作人员输入密码即可进入到餐厅收银端操作界面,如果密码有误,会进行提示;如果错误次数超过三次[3],将会自动进行拍照,防止有人非法登录餐厅收银界面。智能餐厅系统登录功能设计如图2所示。
图2 智能餐厅系统登录功能设计
1.3.2 会员卡消费与充值
本设计中通过NFC技术和数据库技术实现智能餐厅消费者的消费与充值服务。智能餐厅系统需要对进入餐厅消费的消费者办理会员卡,每一个会员卡有一个独有的会员卡号,此卡号以NFC电子标签的UID充当。在智能餐厅的后台数据库中存储着每一个会员卡号对应的消费者的一系列信息,如手机号、家庭住址、性别、姓名等。顾客需要结账或充值时,工作人员可以通过收银台的NFC读写器对会员卡进行识别,通过收银端上位机对数据库进行查看和更改,进而对消费者持有的会员卡进行结账与充值。顾客还可自主查询余额,使消费变得高效快捷。当顾客信息有变化时,管理人员可以通过系统对信息进行修改等操作[4]。
1.3.3 环境控制与安全防护
智能餐厅环境控制首先需要连接到华为云IoT云平台,之后有两种模式控制餐厅内的环境:手动遥控和自动调控。在手动模式中,可对智能餐厅的照明系统、风扇、报警器和加湿装置进行远程控制。在自动调控模式下,当室内的温度过高时,会自动打开排风扇;当湿度过低时,会自动打开加湿器,以此对室内的环境进行调控。在餐厅遇到火灾等安全事故时,室内的报警器会自动报警,并向餐厅管理人员发送电子邮件,进而保障餐厅内人员的安全。这种自动调控装置,不需要人员调控,就能自主进行反应,大大地增加了餐厅的安全性和智能性。在数据检测方面,通过智能餐厅内安装的温湿度传感器[5]、烟雾传感器等收集环境数据,并在餐厅安装的OLED显示屏上实时显示室内温度、湿度和烟雾浓度,便于工作人员及时调控室内环境,为消费者提供更加舒适的消费环境,提高消费者体验度,促进消费和推广。自动调控模式功能架构如图3所示。
图3 自动调控模式功能架构示意图
1.3.4 无线点单
本设计通过Socket通信技术实现无线点单功能,主要分成收银端和客户点单端两个部分。客户点单端通过点单端软件进行相应产品的选择,然后选择自己的座位号进行发送;收银端接收到客户点单端发来的消息后,工作人员向客户点单端发送一个响应,告知消费者:工作人员已经收到了顾客点单的信息,最后通过此信息的内容进行备餐和送餐[6]。
2 硬件设计
本系统的硬件结构主要分成两个部分:一个是用于实现身份卡识别与消费充值的收银端,通过将基于ST25R3916芯片的NFC读写器与STM32相连接,再将其通过串口与上位机进行通信和电子标签的识别;另一部分是用于餐厅环境数据采集和调控的餐厅环境控制端,将OLED显示屏、可燃气体传感器、蜂鸣器、温湿度传感器和WiFi模块与Hi3861控制芯片相连,实现环境数据的采集和上传,并将直流电机、照明模块、WiFi模块、蜂鸣器和自制加湿器等模块与STM32控制芯片相连,实现环境的调控[7]。系统硬件结构如图4所示。
图4 系统硬件结构
3 软件设计
3.1 系统软件总体流程
根据智能餐厅的具体情况,本文设计出既满足餐厅的功能需求,又安全可靠的软件程序。整体上可以将软件的设计细分为四个部分,分别是身份卡识别、收银端上位机、餐厅环境数据采集与上报、执行器接收命令与执行。通过编写识别身份卡的相关程序使得系统可以检测每一张卡的卡号,进而在C#编写的收银端上位机上进行相关功能的开发。通过编写餐厅环境数据采集与上报和执行器接受命令与执行这两个程序,实现环境控制与安全防护等功能。本设计采用的是结构化和模块化设计方法,便于程序的扩展和调试。
3.2 数据库设计
智能餐厅系统中使用SQL Server数据库来实现数据的增、删、改、查。数据库包含两个数据表:工作人员信息表和顾客信息表。工作人员信息表是一张用于储存A类(工作人员)卡片系统登录账号和密码的表单,该表单以工作人员的UID为主键,每个工作人员UID对应一条不重复的记录,智能餐厅系统必须使用数据库中的A类卡片的UID和对应密码才能登录系统进行管理、控制,具体设计见表1所列。顾客信息表是一个用于存放顾客信息的表单,该表单以顾客UID为主键,每个顾客UID对应一条不重复的记录,每一个表项包括顾客会员卡UID、用户余额、地址、手机号等数据[8],具体设计见表2所列。
表1 工作人员信息
表2 顾客信息
3.3 身份识别与系统登录程序设计
身份识别的软件设计主要分为获取电子标签UID和身份判别两部分。获取电子标签UID是通过编写MCU程序,使系统可以检测到正在刷卡人的卡号,运用了NFC读写器。具体软件实现流程为:首先进行初始化操作,当电子标签靠近NFC读卡器时,进行触发中断,打开NFC读写器,寻找天线区内所有卡,得到卡类型;当检测到电子标签时[9],进行防冲突操作,进而选定身份卡。选择身份卡后,读取电子标签的UID,最后将电子标签的UID通过串口发送出来,为后续上位机的使用做准备。获取电子标签UID的程序流程如图5所示。
图5 身份卡识别程序流程
身份判别的实现流程:上位机读取由串口发来的身份卡的UID,将此身份卡的UID与SQL Server数据库表中的主键信息相对应,找到对应表项后,读取此表项的身份类型,判断此电子标签的权限类型,从而进行此身份权限的后续操作。读取身份卡的UID主要使用串口通信技术,首先需要在程序中设置校验位、数据位、停止位和串口数据缓冲等待时间等参数,串口号、波特率在页面中进行设置;然后打开串口,检测串口是否发来了数据,如果有数据,则将数据暂时放在缓冲区,接收完毕后将数据显示出来。此数据就是系统需要的电子标签的UID,随后系统将此值和数据库中的身份信息进行比对。如果是管理员身份的UID,将自动跳转到工作人员登录界面;如果是消费者身份的UID,则此身份卡只具备在收银台消费和充值的权限。
系统登录部分主要是由密码比对和预警拍照组成。登录者在系统登录界面输入密码,系统会将这个密码与后台数据库中UID对应的密码进行比对,如果正确,则进入到管理功能界面;如果错误则会进行提示。当错误次数超过三次时,系统会自动调用电脑的摄像头进行拍照,保障餐厅财产安全[10]。
3.4 智能环境控制
首先编写相关程序获取AHT20温湿度传感器采集到的餐厅温湿度数据和MQ-2可燃气体传感器采集到的室内可燃气体浓度数据;之后基于MQTT消息协议将数据上传到华为云IoT云平台上并实时显示出来;经过数据分析,终端自主进行反应,并发送到执行器上,进行控制操作,从而实现智能环境控制。
控制器Hi3861获取温湿度值是通过I2C和AHT20进行通信的,软件实现流程为:
(1)配置I2C接口,并在读取温湿度数据前,首先发送获取状态命令,获取一个字节的状态字。
(2)发送出测试命令。
(3)在测量完成后,通过发送获取状态命令获取状态,当读取到状态字的Bit[7]为0时,就可以继续读取5个字节的温湿度数据了。
(4)将接收的测量结果拼接转换为标准值,计算出温湿度数据。
获取可燃气体浓度主要是通过读取MQ-2可燃气体传感器的ADC值实现的,将读取到的ADC值转换为对应的可燃气体浓度数值。
数据上传的流程为:首先启动STA模式,连接到指定的接入点,通过DHCP向接入点请求获取Wlan0的IP地址;然后连接到MQTT服务器(华为云平台),向华为云IoT云平台上传温湿度数据,平台将这些数据解析出来并显示。
执行器接受命令与执行功能的实现主要分为控制器STM32接收命令和执行器执行相关操作两部分。MCU首先通过ESP8266 WiFi模块连接上网络,并通过MQTT消息协议技术订阅云平台下发的命令,具体流程为:(1)连接指定的热点;(2)连接华为云平台的接入TCP地址;(3)连接MQTT服务器;(4)订阅主题,用来接收云平台的消息;(5)解析云平台发送来的消息,并执行相应操作。
解析云平台发送来的信息的流程为:STM32通过WiFi模块接收到每一次华为云IoT云平台发送的命令后,使用串匹配算法检索出是否有提前设定的“开风扇”“开灯”等命令语句。如果有,执行相应命令;如果没有,丢弃这一次命令。循环上述流程,即可解析云平台发来的数据并执行。
4 结 语
本文基于物联网思维,将NFC、MQTT、数据库等技术相融合,使用搭载鸿蒙操作系统的Hi3861和STM32为双控制器,设计出一个兼具高效性和舒适性的智能餐厅,解决了目前餐厅普遍存在的安全性低、效率低、舒适性差的痛点,从而为用户带来全新的智能餐厅体验。