智能咖啡厅

  • 引言
  • 背景及需求分析
  • 总体设计
    • 账号密码比对及预警
    • 会员卡服务
    • 智能环境控制
    • 无线点单
  • 开发环境
  • 硬件设计
  • 软件设计
    • 数据库设计
    • 系统登录
    • 会员信息录入
    • 会员信息查询、修改及销卡
    • 充值与消费
    • 无线点单
    • 环境控制
  • 总结与成果显示
  • 后续

引言

本项目通过使用C#(VS2019)+物联网虚拟仿真实验平台实现物联网的智能咖啡馆项目。实现的功能有账号密码比对(使用数据库),预警拍照,实时监测温湿度、烟雾等环境数据、无线控制设备风扇、加湿器、LED等装置,智能控制餐厅、RFID卡识别,会员卡消费充值、无线通信点单(局域网)、会员信息增删改查等功能。

背景及需求分析

首先,近年来人工智能的飞速发展,是我们的生活越来越“智能化”,“简单化”。随着中国市场经济的高速发展,越来越多的上班族和学生愿意去咖啡厅消费。
目前,我国人均咖啡消费量还有很大的上升空间。一方面,数据显示,2018年,与其他地区相比,我国人均咖啡消费量仅6.2杯。另一方面,人们消费意愿是咖啡消费市场的强大基石,2019年,全国居民的食品烟酒消费支出比上年名义增长8.6%,占人均消费支出的比重为28.2%,占比排名首位。综合来看,中国咖啡的消费市场还有很大的开发空间。
但在高速发展的同时,咖啡厅行业普遍采用手工管理方式,整体科技含量低。随着咖啡厅的规模和顾客数量的增加,手工管理模式无论是在工作效率还是成本上都难以适应现代化的企业发展。为有效解决这类企业问题,可以采用RFID应用加以物联网化技术融合而成的智能咖啡厅管理系统。

总体设计

智能咖啡馆管理系统采用RFID技术对原材料和消费人员进行管理,同时和物联网智能控制相结合,对咖啡馆环境进行安全舒适监测控制。基于RFID应用的会员卡消费模式,更有利于咖啡管的正常运营发展。在咖啡馆开业之初,对每一位顾客发放装有RFID标签的会员卡,并提前初始化会员卡的信息,对顾客信息进行录入。收银台装有RFID 读写器对每一个顾客的会员卡进行读写录入,摒弃繁琐的传统现金支付,采用RFID技术,明显更利于咖啡馆未来的发展。在餐厅中安放远程遥控开关,可以对室内的风扇、加湿器喷头、照明灯、窗户等进行遥控开关。在咖啡馆中安放多种传感器进行测量室内环境,检测室内当前的温度、湿度、光照强度,并进行实时显示。还可进入智能调控安全模式,系统会根据室内有无火焰、有无烟雾等,自动选择是否打开消防喷头、窗户等,从而构建一个安全、舒适、智能的咖啡馆环境。管理人员登录系统需要输入密码,正确可以进入,错误三次将会电脑自动进行拍照,保障智能咖啡厅的安全。

账号密码比对及预警

工作人员在登陆页面输入自己身份卡的对应密码即可进入到智能咖啡厅收银端操作界面,如果密码有误,会进行提示,如果错误次数超过三次,将会自动进行拍照,防止有人非法登录智能咖啡厅界面。
具体界面如下。

会员卡服务

首先对每一位顾客进行办理会员卡服务,把用户的手机号,姓名,性别,家庭住址都填写进此顾客的卡中。后期可进行查询、删除和更改用户信息的操作。
每次顾客进店,在收银台装有的RFID ISO14443读写器都可对会员卡进行消费和充值服务,顾客还可查询余额,但顾客没有更改余额和信息的权限。


智能环境控制

首先需要连接到网关,之后可在控制台选择三种模式:手动控制、自动安全防控、数据检测。
在手动模式中,可对智能咖啡厅的照明系统、风扇、窗户和加湿装置进行远程控制。
在自动安全防控模式下,当打开检测火焰或者检测烟雾的开关时,就能自动检测智能咖啡厅内的烟雾含量和火焰是否出现。当出现火灾时,不需要人员的控制,就可以自动的打开消防喷头,对火灾进行控制。在出现大量烟雾时,也能自主的打开窗户。这种智能防控装置,不需要人员的调控,就能自主进行反应,大大的增加了智能咖啡厅的安全性和智能性。
在数据检测模式下,在智能咖啡厅内装有的温湿度传感器、光照传感器等,可实时显示室内的温度、湿度和光照强度。便于人员调控室内环境,给来到智能咖啡厅的顾客一个舒适的消费环境,增加了顾客体验,更加促进消费和推广,从而使智能咖啡厅更加具有知名度。



无线点单

实现无线点单功能,主要分成收银端和客户点单端两个部分。客户点单端通过点单端软件进行相应产品的选择,,收银端接收到客户点单端发来的消息后,工作人员向客户点单端发送一个响应,告诉消费者,工作人员已经收到了顾客点单的信息,最后通过此信息的内容进行备餐和送餐。

开发环境

  1. VS2019
  2. 物联网仿真平台

硬件设计

本设计为了方便调试,使用仿真系统。用到的有RFID14443读写器、温湿度传感器、烟雾传感器、火焰传感器、光照传感器、LED灯、风扇、消防喷头等。连接方式如下:(项目文件里放了仿真文件,直接在仿真平台上打开即可)

软件设计

使用的上位机开发语言为 C#

数据库设计

智能咖啡厅系统中的数据库使用SQL Server数据库来实现数据的增、删、改、查,数据库包含两个数据表,分别是工作人员信息表和顾客信息表。工作人员信息表是储存(工作人员)登录系统的账号和对应密码的表单,该表单以工作人员的卡号为主键, 每个工作人员的卡号对应一条不重复的记录,智能咖啡厅系统必须使用数据库中的A类卡片的卡号和对应密码才能登录系统进行管理、控制,具体设计如表1所示。顾客信息表是一个用于存放顾客信息的表单,该表单以顾客卡号为主键, 每个顾客卡号对应一条不重复的记录, 每一个表项包括顾客会员卡卡号、用户余额、地址、手机号等数据,具体设计如表2所示。


在程序中主要更改的东西有:自己的电脑设备名、数据库名称、数据表名称。
account,password都是自己的表项,建表的时候的名称,可参考上面的图。

string connString = "server=自己的电脑设备名\\SQLEXPRESS; database=数据库名称 ;integrated security=SSPI";
string sqlString = "select account,password from 数据表名称 where account='" + textzhanghao + "'and password='" + textmima + "' ";

找不到自己设备名的话,可以看下图,在这里找自己的。

系统登录

工作人员登录部分主要是由密码比对和预警拍照组成。登录者在账号、密码输入位置输入自己的账号、密码,系统会将这个密码和后台数据库中账号对应的密码进行比对,如果正确,进入到管理功能界面,如果错误会进行提示。当错误次数超过三次时,系统会自动调用电脑的摄像头进行拍照,保障餐厅财产安全。密码比对逻辑代码如下:

 if (cishu >= 3)
{MessageBox.Show("输入密码次数超过三次");Form2.pForm2.Photograph_Click(sender,e);cishu = 1;}else
{Form2.pForm2.btnClose_Click_1(sender, e);if (sqlDataReader.HasRows){cishu = 0;frm3.Show();this.Hide();}else{cishu++;MessageBox.Show("账号密码不正确");}
}

预警拍照其实就是一个简单的调用摄像头,具体可以参考我以前的文章摄像头拍照功能是怎样实现的?自己动手做一个!。

会员信息录入

本系统的会员信息录入功能实际上就是将会员的信息存入到智能餐厅的后台数据库中。本设计中使用ADO.NET数据库访问技术实现相应功能,首先通过串口获取会员卡号,然后工作人员通过询问消费者,获得姓名、手机号、性别和家庭住址等信息,将这些填入对应位置,使用ADO.NET数据库访问技术存到后台数据库中。使用ADO.NET数据库访问的流程为:
(1)建立一个数据库连接。
(2)在建立连接的条件下可以使用Command对象对数据库发送新增、查询、修改或删除等命令。
(3)建立DataAdapter对象,从数据库中取得数据。
(4)建立DataSet对象,将DataAdapter对象填充到DataSet对象(数据集)中。
(5)关闭数据连接。

string sex = "";if (radioButton1.Checked){sex = "男";}else{sex = "女";}string connString = "Data Source=设备名\\SQLEXPRESS;Integrated Security=True";string sqlString = "insert into 数据表(sno,sname,RFIDNumber,sex,college)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + sex + "','" + textBox4.Text + "')";master = new SqlConnection(connString);//建立连接对象master.Open();cmd = new SqlCommand(sqlString, master);//建立数据命令对象cmd.ExecuteNonQuery();MessageBox.Show("插入记录成功!");textBox1.Text = textBox2.Text = textBox3.Text = textBox4.Text = "";//清空各文本框

会员信息查询、修改及销卡

本系统的会员信息查询、修改及销卡实际上就是对后台数据库中的会员信息进行查询、修改及删除。同样是使用ADO.NET数据库访问技术实现相应功能,首先通过串口获取会员卡号,之后系统会将此卡号在后台数据库中进行检索,找到此信息后,显示出来,工作人员可以点击相应按钮进行会员信息的查询、修改和销卡,基本的查询和删除对应的SQL语句如下:
(1)查询:SELECT *FROM <数据表名> where card=”要查询的卡号”
(2)删除:DELETE *FORM <数据表名> where card=”要删除的卡号”

充值与消费

本系统的充值消费是通过对数据库信息的检索及修改完成的,消费者首先将自己的会员卡放在收银台旁的读卡器上,工作人员连接到后台数据库,将此会员卡对应的信息调取出来。然后填写消费或者充值的数值,最后点击消费或者充值的按钮即可。

无线点单

本系统的无线点单功能的实现主要分成两个部分,一个是收银端上位机,另一个是点单客户端。通过使用双端通信,进而完成无线点单功能。
收银端上位机充当服务器,接收各个点单客户端发送来的信息。工作人员首先将餐厅的IP地址填入其中,进行监听有没有点单客户端发来的信息,如果有,根据客户的要求进行备餐,并根据发来信息中的座位号给客人送餐,每次收到消费者发来的消息后,返回一个反馈给发送者,让他知道收银端已经收到他发送来的消息。
关键程序如下:

 private string GetIpAddress(){string hostName = Dns.GetHostName();   //获取本机名IPHostEntry localhost = Dns.GetHostByName(hostName);    localhost = Dns.GetHostEntry(hostName);   //获取IPv6地址IPAddress localaddr = localhost.AddressList[0];return localaddr.ToString();}public void UdpSend(){//Parse()把十进制iP转化成IPAddress类,绑定IP地址和端口remoteIPEp = new IPEndPoint(IPAddress.Parse("1IP地址"), CLIENT_UDP_PORT);//创建发送数据 Socket 对象与数据缓冲区udpSendDataBuf = new byte[1024];skUdpSend = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp);//为false,等待执行mreUdpShutDown = new ManualResetEvent(false);mreUdpSend = new ManualResetEvent(false);whUdp = new WaitHandle[2];whUdp[0] = mreUdpShutDown;//UDP结束命令whUdp[1] = mreUdpSend; //UDP服务结束命令 int iWaitRetCode;iWaitRetCode = WaitHandle.WaitAny(whUdp, 1000);   //等待指定数组中的任意元素接收信号,同时使用 TimeSpan 指定时间间隔byte[] b_txt;int iByteLen;//满足条件while (iWaitRetCode != 0){switch (iWaitRetCode){case 1://发送数据 b_txt = Encoding.UTF8.GetBytes(strSendTxt);iByteLen = b_txt.Length;//初始化缓存数据Array.Clear(udpSendDataBuf, iWaitRetCode, iByteLen);//复制数组Array.Copy(b_txt, udpSendDataBuf, iByteLen);//发送到指定IPskUdpSend.SendTo(udpSendDataBuf, remoteIPEp);//消费掉一次事件mreUdpSend.Reset();break;case WaitHandle.WaitTimeout://超时break;}//继续下次事件检测iWaitRetCode = WaitHandle.WaitAny(whUdp, 1000);}skUdpSend.Close();skUdpSend = null;}#endregion    UDP发送线程线程 public static string strSendTxt;private void button1_Click(object sender, EventArgs e){mreUdpShutDown.Set();}private void button2_Click(object sender, EventArgs e){strSendTxt = GetIpAddress() +":"+ textBox1.Text + "\r\n";mreUdpSend.Set();}

环境控制

首先需要连接到网关,之后可在控制台选择三种模式:手动控制、自动安全防控、数据检测。
在手动模式中,可对智能咖啡厅的照明系统、风扇、窗户和加湿装置进行远程控制。
在自动安全防控模式下,当打开检测火焰或者检测烟雾的开关时,就能自动检测智能咖啡厅内的烟雾含量和火焰是否出现。当出现火灾时,不需要人员的控制,就可以自动的打开消防喷头,对火灾进行控制。在出现大量烟雾时,也能自主的打开窗户。这种智能防控装置,不需要人员的调控,就能自主进行反应,大大的增加了智能咖啡厅的安全性和智能性。
在数据检测模式下,在智能咖啡厅内装有的温湿度传感器、光照传感器等,可实时显示室内的温度、湿度和光照强度。便于人员调控室内环境,给来到智能咖啡厅的顾客一个舒适的消费环境,增加了顾客体验,更加促进消费和推广,从而使智能咖啡厅更加具有知名度。
控制设备的典型程序如下:

if (btn_diancisuo.Text == "打开"){foreach (SensorBase sensor in Relays){byte[] data = sensor.Data;data = new byte[] { data[0], data[1], data[2], 0x01, data[4] };gateWay.SendData(sensor.Type, sensor.Addr, data);ShowMessage(string.Format("电磁锁打开成功!", Converts.ByteToString(sensor.Addr)));}btn_diancisuo.Text = "关闭";lb_ElectromagneticDoor.Text = "打开";}else{foreach (SensorBase sensor in Relays){byte[] data = sensor.Data;data = new byte[] { data[0], data[1], data[2], 0x00, data[4] };gateWay.SendData(sensor.Type, sensor.Addr, data);ShowMessage(string.Format("电磁锁关闭成功!", Converts.ByteToString(sensor.Addr)));}btn_diancisuo.Text = "打开";lb_ElectromagneticDoor.Text = "关闭";}

总结与成果显示

自主设计的智能咖啡厅系统以RFID 高频 ISO 14443原理为基础,物联网智能控制为辅。建立一个安全、智能、舒适、便捷的智能咖啡厅系统。其中使用了数据库技术进行会员卡信息的管理,统计;使用RFID 高频 ISO 14443技术进行会员卡的消费、充值和查询功能;使用网关和配置器进行远程控制各种室内环境装置、如风扇、窗户、照明系统等:通过在室内安装各种传感器,如光照传感器、温湿度传感器、火焰传感器和烟雾传感器等对室内环境进行检控、并进行实时显示。
智能咖啡厅系统充分迎合了当今时代咖啡厅发展的痛点,摒弃传统咖啡厅行业普遍采用的手工管理方式,解决传统模式整体科技含量低的问题。智能咖啡厅通过RFID应用加以物联网化技术相融合,构建出智能化、舒适化、快捷化、安全化的智能咖啡厅环境,必将是未来咖啡厅的一个重大发展趋势。

后续

在公众号:物联网知识 发送 智能咖啡厅系统设计与实现 获得项目程序(源码工程+文档+使用的图片)。
也可点击直接下载.
如果想了解更多物联网、嵌入式、软件开发、智能家居项目知识,可以关注我的软硬结合专栏,里面有众多软硬结合项目实战,均有源码工程。

编写不易,感谢支持。

基于C#和RFID的智能咖啡厅系统设计与实现相关推荐

  1. 基于android的智能风扇,新锡德尔对基于Android的静电式智能空气净化器系统设计...

    基于Android的静电式智能空气净化器系统设计 随着电子.通信.自动控制等技术的快速发展及人们物质精神生活的提高,家用电器的智能化控制代替传统控制已经成为一种大趋势.伴随智能手机的迅速普及,基于An ...

  2. python与室内设计_基于树莓派和Python的智能家居系统设计

    基于树莓派和 Python 的智能家居系统设计 许礼捷 葛华 陈红 [摘 要] 介绍树莓派第 3 代开发平台,融合 Python 开发技术和 OneNET 云 平台通信技术等先进技术,设计一款智能化的 ...

  3. 毕设—基于树莓派的家居环境智能监测系统设计与实践

    一.资料查找工具 英文文献:Sci-Hub | Academic Navigation Site – To remove all barriers in the way of science 中文文献 ...

  4. 自行车存放管理系统c语言课程设计,基于51单片机的自行车智能辅助系统设计-(Proteus仿真图+源程序+论文)...

    基于单片机的自行车智能辅助系统设计 摘 要 随着科学技术与物联网的发展,推动着智能化产品逐渐从无到有再到快速发展,智能科技逐渐改变社会发展方式,过去很多无法想象的科学技术或者生活方式,现在利用先进和智 ...

  5. 基于STM32单片机和RFID的智能考勤系统设计

    提示:记录2022年4月做的毕设 文章目录 前言 一.任务书 1.1设计(研究)目标: 1.2设计(研究)内容: 二.思路 三.硬件 3.1RFID模块 3.2 时钟模块 3.3 按键模块 四.联系我 ...

  6. 基于Android电视机的ZigBee智能家居系统设计

    智能家居是利用先进的计算机技术,嵌入式系统和网络通信技术,将家庭中的各种设备(如照明系统.环境监控.安防系统.网络家电)通过家庭网络连接到一起的,自从美国在1984年真正的智能建筑出现以后,国外已经有 ...

  7. 基于MSP430低功耗烟雾采集智能报警系统设计(毕设课设)

    MSP430烟雾报警器 设计基于MSP430的烟雾报警器 要求是设计尽量采取低功耗模式,延长电池使用寿命,当有烟雾产生时,报警器产生声音报警信号 #include <msp430x14x.h&g ...

  8. 物联网项目--基于RFID的智能咖啡馆(Visual Studio+物联网虚拟仿真实验平台)

    基于RFID的智能咖啡馆 背景及需求分析 总体设计 会员卡服务 咖啡厅环境控制 硬件选型及系统搭建 智能咖啡厅系统硬件选型 所选RFID硬件介绍 系统详细设计 页面介绍 重要程序 后续 背景及需求分析 ...

  9. 基于物联网的智能家居系统设计(课设)

    基于物联网的智能家居系统设计(课设) 摘 要 一.概述 二.系统分析 三.系统设计 四.系统实现 1.硬件实现 2.软件实现 五.结论与心得 六.参考文献 摘 要   科技的快速发展给人们的生活带来了 ...

最新文章

  1. 堆排序算法实现思想个人理解
  2. awk的集合操作实现
  3. SAP 固定资产减值准备配置及期初导入
  4. docker oracle 11g
  5. 一分钟解决 Github 访问慢
  6. orm和mysql_orm与mysql
  7. 初学Flask(1)
  8. JSP基础(5)-JSP标准动作
  9. 水杉3D建模Metasequoia for Mac 4.8.3
  10. tomcat设置JAVA_OPTS
  11. JavaScript教程---洪恩在线
  12. 《当程序员的那些狗日日子》(二十三)死在了今天的晚上
  13. 二进制的应用——枚举子集
  14. java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc
  15. SSM 博客系统开发实战
  16. 【SSH系列】---Hibernate的基本映射
  17. 2022年openstack快速安装 Skyline 组件安装,支持极简化配置
  18. MySQL系列---架构与SQL执行流程详解
  19. 怎样合成gif海报?手把手教你一键制作动态海报
  20. 装linux系统(和win一起的双系统)

热门文章

  1. 多看阅读怎么缓存小说
  2. 读懂它,简单演绎幸福生活~
  3. 黑客马拉松,48小时的技术耐力跑,这些工程师究竟有啥高招?
  4. github不稳定时处理办法
  5. linux读取字符设备-键盘、扫码枪、二维码设备
  6. 网站HTTP升级为HTTPS
  7. vmware虚拟机转换格式qcow2和raw
  8. linux 磁盘满了 预警,Linux磁盘空间满了的排查与解决思路
  9. GAN 数学原理简单介绍以及代码实践
  10. bzoj2560串珠子