基于ARM的智能点餐系统设计与实现38页.docx
- 文档编号:4279007
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:33
- 大小:4.48MB
基于ARM的智能点餐系统设计与实现38页.docx
《基于ARM的智能点餐系统设计与实现38页.docx》由会员分享,可在线阅读,更多相关《基于ARM的智能点餐系统设计与实现38页.docx(33页珍藏版)》请在冰豆网上搜索。
基于ARM的智能点餐系统设计与实现38页
基于ARM的智能点餐系统设计与实现
摘要:
在餐饮行业传统的人工点餐随着社会的发展有的问题日益显现,有的甚至制约了该行业的发展(比如:
管理成本)。
所以无线点餐在不远的将来也必将取代传统的点餐方式。
本设计就是利用ARM9开发板,实现了手机端和开发板端的无线智能点餐的功能。
本设计主要采用三层C/S和B/S相结合的混合架构模型,在集成方式上采用数据集成即使用相同的数据库实现数据间的共享。
三层C/S架构中的表示层在Android手机上实现,主要用于与用户的的交互实现点餐信息的收集,同时将点餐信息发送到业务逻辑层的功能。
在业务逻辑层也就是开发板端采用的是用Linux作为操作系统,用QT作为图形界面开发语言,实现了对外接的GSM短信模块的点餐短信信息的接收和点餐成功的回复信息,以及作为终端的点餐信息收集功能。
同时在用餐者结账离开时将点餐数据提交到数据处理层。
在数据层主要利用PC上的JAVA开发环境实现对SQLServer2008数据库的增删改查,同时完成点餐数据的接收(无线或串口),解析等功能。
B/S架构中的服务器端在ARM9开发板上主要利用LINUX操作系统对外提供的API接口,BOA小型Web服务器提供的功能,以及C语言编写的CGI等技术。
该服务器端主要接收客户端浏览器发出的HTTP请求,并返回处理后的HTTP响应页面,完成点餐系统的登入,数据查看,数据修改和数据删除的功能。
客户端可以是PC上的浏览器也可以是移动设备。
关键词:
GSM;WEB;ARM9;JAVA;Android手机客户端;B/S;C/S;SQLServer2008
DesignandImplementationofIntelligentOrderingSystembasedonARM
摘要:
在餐饮行业传统的人工点餐随着社会的发展有的问题日益显现,有的甚至制约了该行业的发展(比如:
管理成本)。
所以提出了智能电子点餐系统的概率。
基于ARM的智能点餐系统设计与实现主要采用三层C/S和B/S相结合的混合架构模型,在集成方式上采用数据集成即使用相同的数据库实现数据间的共享。
Abstract:
withthedevelopmentofsocietyandsomeproblemsintheartificialpointtraditionalrestaurantmealappearsdaybyday,someevenrestrictthedevelopmentoftheindustry(suchas:
thecostofmanagement).Soputforwardtheprobabilityofintelligentelectronicorderingsystem.HybridarchitecturedesignandimplementationofintelligentorderingsystemofARMmainlyadoptsthreelayersofC/SandB/Sbasedonthecombinationofintegration,inthewaytousethedataintegrationistousethesamedatabasetorealizedatasharingbetween.
ThepresentationlayerisimplementedinAndroidmobilephoneonthethreelayerintheC/Sarchitecture,mainlyrealizestheorderinginformationcollectionanduserinteraction,andtheorderinginformationissenttothefunctionofbusinesslogiclayer.InthebusinesslogiclayerismainlyintheARM9developmentboardrealizetheuseofLINUX+QT,mainlytocompletetheuseofexternalGSMSMSmodulereceiving,analysis,processing,returntothepresentationlayertosendmessages,atthesametimedinersleavewhenorderingdatasubmittedtothedataprocessinglayer.Indatalayer,themainuseofPContheJAVAdevelopmentenvironmenttoachieveSQLServer2008databaseadditionsanddeletions,whilethecompletionofreception(wirelessorserialport),analyticfunctions.
B/S架构中的服务器端在ARM9开发板上利用LINUX+BOA+CGI实现,主要接收客户端浏览器发出的HTTP请求,并返回处理后的HTTP响应页面,完成点餐系统的登入,数据查看,数据修改和数据删除的功能。
客户端可以是PC上的浏览器也可以是移动设备。
InthearchitectureofB/SserverintheARM9developmentboardusingLINUX+BOA+CGItoachieve,themainclientreceivestheHTTPrequestissuedbythebrowser,andreturnstheprocessedHTTPresponsepage,completetheorderingsystemlogin,datareview,datamodificationanddeletefunctions.TheclientcanbeaPCbrowseronamobiledevicecanalsobe.
关键词:
GSM;WEB;ARM9;JAVA;Android手机客户端;B/S;C/S;SQLServer2008
Keywords:
GSM;WEB;ARM9;JAVA;Androidmobilephoneclient;B/S;C/S;SQLServer2008
第一章绪论
随着网络的快速发展,很多传统行业都发生了巨大的变化。
传统的餐饮行业也相应的受到了影响,基于无线的网络点餐系统也将慢慢取代传统的点餐经营模式[1]。
所以基于ARM的智能点餐系统的实现对于管理者不仅在管理上更加方便,更为关键的是可以从本质上降低餐馆的营运成本。
同时站在顾客的角度,既可以通过手机也可以在餐馆终端上点餐会显得更加人性化,也更加快捷和便利。
1.1本文研究的背景和意义
随着时代的进步,嵌入式产品在各种各样的的地方得到了运用。
嵌入式系统通常被定义为以应用为核心、以计算机技术为基础、可裁剪其软硬件,适用于应用系统,对功能、可靠性、成本、体积、功耗均严格要求的专用计算机系统[2-4]。
一个嵌入式系统一般包含一个操作系统、一个嵌入式的处理器、以及一些外围电路和部件,最后当然也要包含针对不同用户的应用程序[5]。
嵌入式技术发展至今大致经过四个阶[6-7]。
首先是可编程阶段;之后是能够对存储容量等外部设备进行简单地扩展;再后来就是嵌入式操作系统的出现;最后一个阶段就是人们已经能够在智能手机、各类家用电器中看到嵌入式操作系统的影子。
由于嵌入式产品的特点在很多方面都符合运用在无线点餐系统上的要求。
利用嵌入式交叉编译和目标机、宿主机相分离等开发技术可以从根本上改善传统餐饮行业的弊端和不足和节省开发成本和费用,最后开发的产品在特点环境下运行[8-9]。
1.2本课题研究的主要内容
本毕业设计的题目是——基于ARM的智能点餐系统设计与实现。
本设计主要进行如下方面的研究:
在Android手机端主要是用户点餐界面的应用程序开发,在嵌入式设备ARM9开发板上主要利用Linux操作系统提供的API,用QT作为界面开发语言进行的点餐终端的开发和Wed服务器、无线网络驱动的移植,在PC上利用JAVA开发平台实现对点餐信息数据的管理,最后需要解决系统中各模块之间的数据通信以及数据库中的数据共享的问题。
本设计主要做了如下几方面的工作:
(一)系统需求分析:
本系统需要实现最基本的点餐功能以及点餐信息的管理和存储,点餐信息可以通过餐馆内的终端进行点餐,也可以用移动设备(比如:
手机)进行短信点餐。
在点餐信息修改方面,若是通过终端点餐的用户可以通过餐馆内的局域网通过网页实现点餐信息的查看和修改,若是利用手机APP通过短信点餐的用户也可以利用短信进行反向修改操作。
同时系统还需对以往的点餐信息进行存储。
(二)系统可行性分析:
在这方面主要是通过查看网络上相关的信息再结合自己的硬件平台进行分析,最终确定系统的硬件选择。
在软件设计方面首先是ARM板上图形界面开发语言的选择以及PC服务端开发语言的选择,在开发板中图形界面的选择中因为对于QT的使用、控件的使用以及开发流程比较熟悉,所以选择QT作为开发板的图形界面开发。
在PC服务端中综合比较各种界面开发语言的优缺点以及掌握程度,最终选择JAVA平台开发PC服务端的需求。
(三)系统架构设计:
根据之前需求和可行性分析的基础上,最后决定采用C/S和B/S架构相结合的混合架构进行系统的开发,android端作为该系统的客户端主要进行用户点餐信息的收集,ARM开发板既作为B/S的服务器端,接收浏览器提交的html的请求,并返回页面,同时又扮演着将点餐信息最终提交到PC服务端的业务处理层。
最后是该系统的数据层,考虑到数据量会比较大,如若全部存放在开发板中可能导致存储空间不够用的情况,所以选择PC作为最终点餐数据信息的存储位置。
1.3本文组织结构
本文总共七章分别讲述了基于ARM的智能点餐系统设计和实现。
第一章主要是介绍了本设计的研究的背景和意义;第二章介绍了系统框架以及系统框架图用于帮助理解该点餐系统;第三章主要介绍了开发设计过程中使用的开发工具和软件;第四章讲述了本系统的PC端数据处理层功能的设计与实现;第五章讲述了本系统的ARM开发板端业务逻辑层功能的设计与实现;第六章讲述了安卓客户端的功能设计与实现;第七章主要讲述了本系统在设计实现过程中与遇到的问题以及一些体会和总结。
第二章系统总体设计
2.1总体设计
经过对系统的功能需求以及现有的开发环境和硬件的情况下,设计本系统在Android端和ARM9终端上采用C/S中客户端点餐信息的收集,PC端作为C/S中的服务器端管理和存储以往点餐信息。
在ARM9上也可作为B/S中的服务器,处理点餐信息的查看和变更,客户端可以是局域网内的任意浏览器。
根据以上情况设计如下五个模块:
安卓手机客户端的点餐数据采集、GSM接收点餐信息模块、ARM9信息处理模块、PC端数据库管理模块以及WEB模块。
该系统的模型框架如图2-1所示。
Socket
http协议
串口
移动网络
图2-1系统整体模型框架图
2.2系统详细设计
本系统根据现有的设备、PC电脑、Android手机进行设计,主要分为五个模块:
安卓手机客户端的点餐数据采集、GSM短信模块接收android端点餐信息、ARM9信息处理模块、PC端数据库管理模块以及WEB模块。
在ARM9信息处理模块中由于考虑到手机Android端点餐时间的不确定性故在系统上电时就自动打开GSM模块准备接受Android端点餐信息,而提交点餐信息到PC上时则让socke客户端连接到socket服务器端,在传输结束后客户端发送bye字符串结束该客户端进程;本系统的总体框架如图2-2所示。
图2-2智能点餐系统的总体框架图
以下是对这5模块功能的详细介绍:
Android手机客户端在JAVA平台上进行开发的,所以可移植性性高。
手机端的点餐APP作为系统的表示层主要实现与用户之间的信息的交互和提交点餐信息、接收GSM短信模块的返回信息。
短信模块使用的是GTM900无线模块,它使用AT指令,通过串口与外部CPU通信,可以实现短信的收发和电话的接听和拨打等功能。
GTM900的逻辑框图如图2-3所示。
图2-3GSM逻辑框图
ARM9信息处理模块采用linux作为本设计的操作系统,在操作系统上主要使用QT作为界面开发语言,实现串口数据的接收发送,利用无线网卡进行socket通信,以及与sqlite数据库数据间的操作。
PC端数据库管理模块主要利用PC上的JAVA开发环境实现对SQLServer2008数据库的增删改查,同时完成接收(无线或串口),解析等功能。
从而屏蔽了直接与底层数据的直接操作。
WEB模块中的服务器端主要利用web小型服务器boa对html请求进行响应和回复,就可以担任一些功能简单的服务器。
Boa的设计目标是速度和安全,在实验中验证得出在嵌入式开发板的应用上,Boa的性能要好于Apache服务器[10]。
同时它还可以自动生成目录,自动解压文件等功能,所以非常适合在嵌入式系统中应用,使用CGI(公用网关接口,CommonGatewayInterface)进行处理。
第三章系统开发环境和软硬件选型
3.1软硬件开发环境选择
本系统的开发环境可以分为硬件环境和软件环境:
(1)硬件环境主要有:
1.WEB服务器端与WEB客户端:
Mini2440开发板,PC;
2.点餐信息收集硬件:
Mini2440开发板,安卓手机;
3.开发板与手机通信硬件:
华为GSM900-B无线模块;
(2)软件环境主要有:
1.涉及的开发工具环境:
QT交叉编译开发环境、Eclipse开发平台;
2.涉及的操作系统:
Windows,Linux;
3.2硬件环境
1.Mini2440开发板模块概述
本设计中选择的开发板处理器采用ARM920T内核,该处理器不仅功耗低而且具有较高的系统处理能力。
S3C2440微控制器具有16KB的指令Cache和16KB的数据Cache。
同时,其支持WinCE、Linux等嵌入式操作系统[11]。
串口模块:
该开发板中一共有三个串口,其中COM0做了电平转换。
三个串口在开发板上的位置如图3-1所示。
图3-1Mini2440串口接口图
USB接口模块:
开发板中有两种USB接口,一个是USBHost,可以接常见的USB外设,另外一种是USBSlave,一般使用它来下载程序到目标板。
在本设计中使用其外接无线网卡实现无线通讯,Mini2440USB原理图如图3-2。
图3-2Mini2440USB端口原理图
LCD接口模块:
Mini2440开发板的LCD接口是一个41Pin0.5mm间距的白色座,其中包含了完整的RGB数据信号(RGB输出为8:
8:
8,即最高可支持1600万色的LCD)。
如图3-3中的J2为LCD驱动板供电选择信号。
图3-3Mini2440LCD原理图
2.华为GSM900-B无线模块
华为GTM900无线模块它支持标准的AT命令及增强AT命令,能够通过AT指令传输指令和数据,同时该模块还能够提供丰富的语音和数据业务等功能。
GTM900无线模块也适合在GT800的网络下运行。
GTM900的业务框图如图3-4所示,GTM900实物图如图3-5。
图3-4GTM900业务框图
图3-5GTM900实物图
该芯片的主要特点有以下几点:
1、兼容GSM/GPRSPhase2/2+支持华为GT800协议
2、40PINFPC连接器UART接口(最大串口速率可达115200bit/s)UART接口(最大串口速率可达115200bit/s)
3.3软件环境
1.QT交叉编译开发环境
Qt是一个跨平台的应用程序框架。
利用Qt进行软件图形界面的开发可以达到“一次编写,随处编译”的效果[12-13]。
QT交叉编译开发环境就是在虚拟机中同时安装Qtwindows;Qt-X11(普通linux版本,提供普通编译环境)和Qt-embedded-linux(嵌入式版本,提供交叉编译环境),在编写和调试程序时用QT-X11进行编译和链接执行,当程序完成后用Qt-embedded-linux进行编译生成可执行文件,最后下载到开发板中运行从而达到从程序编写到结束不都都在目标机上的目的,QtEmbedded是NOKIA公司的图形化界面开发工具Qt的嵌入式版本,它通过QtAPI与LinuxI/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,Qt/embedded和Qt一样,在4.5版本之后提供了三种不同的授权协议GPL,LGPL和Commercial。
2.Eclipse开发平台
Eclipse是一种可扩展的开放源代码IDE。
2001年11月,IBM公司捐出价值4000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发[14]。
许多软件开发商以Eclipse为框架开发自己的IDE。
Android是基于Linux开放性内核的手机操作系统[15]。
第四章PC端数据层设计和实现
在设计本模块的时候,是考虑到了ARM开发板中系统资源有限,sqlite数据库中存储的点餐信息有限并且对于大量信息的查询不能够及时响应,不能够很好的提供以往点餐信息的查询。
所以在该系统中增加了PC端数据层,用于接收顾客结账后的点餐信息和提供统一的交互界面用于管理以往的点餐信息。
4.1PC端设计主要技术
在该模块设计过程中主要涉及到JAVA的串口编程、基于Socket的网络编程、利用MicrosoftSQLServer2008数据库对外提供的API通过编程控制sql语句对数据库的读写操作以及与用户交互的界面设计等JAVA编程技术。
4.2功能需求分析
通过分析,本模块应该实现以下功能:
(1)Socket通信:
ARM9开发板可以利用无线网卡连接PC端的360热点,PC端JAVA程序作为socket的服务端通过socket接收开发板Socket客户端发送的点餐信息,并且将其传输的点餐数据包进行解包,获取其中的点餐信息,最终插入到数据库中保存。
(2)串口通信:
ARM9开发板通过串口与PC相连,PC端JAVA界面可以通过配置通讯串口通信的参数(如:
波特率,奇偶校验位等)实现与ARM9开发板串口两端的数据交互。
(3)数据库操作:
JAVA程序可以通过SQLserver2008数据库管理软件对外提供的数据库操作接口,利用SQL语句操作SQLserver2008数据库管理系统中点餐表中的记录信息的增删改查等功能。
4.3PC端界面及代码
PC端点餐数据管理界面主要提供串口配置、网络控制两种方式与开发板进行互相的通信,同时也增加了对MicrosoftSQLServer2008数据库中点餐表的增删改查的操作。
具体如图4-1所示:
图4-1点餐信息管理界面
界面设计部分代码如下:
4.4数据接收的设计和实现
在该系统中,PC数据层接收ARM开发板数据既可以通过配置JAVA串口界面的COM口、数据位、校验位、停止位、波特率等使用串口进行传输,也可以通过ARM开发板上外接的无线网卡与PC端发出的热点相连接从而使PC端与ARM开发板之间可以利用网络达到基于无线的套接字Socke数据交互。
具体如图4-2所示:
图4-2串口、网络配置
PC端从开发板中接收数据包格式为“##数据字节长;点餐ID号;菜名;单价;数量;桌号;时间;电话号码;##”。
PC端数据包解包代码如下:
4.5数据库的设计和实现
由于该点餐系统主要侧重于点餐信息的收集和处理方面,所以在数据库的设计方面比较简单设计了点餐表和菜名表,点餐表对提交的点餐数据进行存储,点餐表包含点餐ID、菜名、单价、数量、时间等信息,具体如图4-3所示。
菜肴表对餐馆的菜肴进行记录,主要包括菜名,单价信息,具体如图4-4所示。
同时在设计点餐表时考虑到为防止插入数据的异常,在设计表时同时对表中的插入数据进行了约束,具体如图4-5所示。
图4-3点餐表属性设计图
图4-4菜肴表
图4-5数据表属性约束设计图
第五章开发板端业务逻辑层设计和实现
5.1系统设计主要技术
在开发板中使用QT作为界面开发语言,主要涉及Linux系统移植、QT应用程序移植以及运行环境配置(触摸屏配置、库函数移植等)、QT的界面编写、串口编程、Socket网络编程等技术。
同时在开发板中移植了Web的小型服务器boa可通过网页与PC经济交互,主要涉及boa服务器的移植以及相关文件的配置、html页面的编写、编写CGI文件处理客户端提交的请求并并返回处理后的html页面。
主要使用技术:
QT、Web、Socket、JavaScript、hteml语言、boa
5.2功能需求分析
(1)Socket通信:
ARM9开发板可以利用无线网卡连接PC端的360热点,可以通过Socket客户端发送点餐信息到PC端Socket服务端并且通过对发送的数据包按照事先约定的规则进行解析从而获取其中的点餐信息然后将解析的点餐信息插入到数据库中,供日后数据查询提供依据。
(2)串口通信:
ARM9开发板通过串口与PC相连,PC端通过点餐管理界面配置两者通讯串口参数实现串口两端的数据交互。
同时可以通过串口外接GSM短信模块,开发板通过发送AT指令集实现对Android端的点餐信息的接收,同时回复点餐用户点餐的订单信息。
(3)数据库操作:
QT可以通过使用SQL语句操作开发板上的sqlite临时数据库中的点餐表,使点餐用户可以增加和查看点餐信息功能。
(4)构建Web服务器:
PC或移动终端可以通过访问开发板上的Web服务器,开发板中的web服务器会返回相应的点餐信息登入、查询、修改页面,用户可以根据自身的需要与管理员联系实现对点餐信息的查看和修改、删除等功能。
5.3系统逻辑层代码实现
5.4系统逻辑层实现界面
开机触摸屏校准程序,如图5-1所示
图5-1开机校准界面
QT点餐系统首页,如图5-2所示
图5-2点餐首页
点餐菜肴浏览界面,如图5-3所示、图5-4所示
图5-3菜肴界面
图5-4菜肴界面
点餐信息提交界面,如图5-5所示
图5-5信息提交界面
桌号选择界面,如图5-6所示
图5-6桌号选择界面
订单提交成功界面,如图5-7所示
图5-7订单提交成功界面
点餐信息查看、提交PC界面,如图5-8所示
图5-8查看、提交PC界面
Web客户端登入界面,如图5-9所示
图5-9登入界面
Web客户端查看修改界面,如图5-10所示
图5-10查看修改界面
Web客户端查看用户情况界面,如图5-11所示
图5-11查看点餐信息界面
Web客户端查看点餐情况界
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 智能 系统 设计 实现 38