嵌入式期末论文Word格式文档下载.docx
《嵌入式期末论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《嵌入式期末论文Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
(1)、理解自行车租赁系统的主要构造及设计流程
(2)、编写RFID刷卡系统运行代码
(3)、通过嵌入式实验平台终端运行程序
(4)、基本实现自行车租赁系统租车,还车,计费等主要功能
2.实验目的:
通过RFID模块对自行车租赁系统的设计,进一步加深对嵌入式系统的学习。
3.运行环境:
物联网嵌入式实验箱(型号UP-CUPIOT-6410-Ⅱ)
RFID射频模块
虚拟机Fedora9
【关健词】RFID嵌入式刷卡
【内容提要】
随着两型社会的宣传与实践,低碳绿色的出行方式越来越受到追捧,全国各地兴起了建设公共自行车租赁系统的热潮。
据不完全统计,已有株洲、杭州、北京等市建成公共自行车租赁系统,还有合肥、柳州、银川等市在规划或建设中。
公共自行车租赁系统在国外已很普及,所以在国内也必将推广普及。
现在很多学校都在向郊外搬迁,形成职教基地,大学城等。
因此学生外出等多有不便。
引进自助公共自行车,方便学生外出,游玩,逛街;
骑自行车环保,健身,娱乐,无噪音。
自助公共自行车由学校统一布点铺放,安装在大学、大学城。
在学校大门,宿舍等选择合适的场地布点,安装。
以方便学生为原则。
实现智能化、无人化统一管理。
必将受到学生的青睐。
本实验旨在通过嵌入式实验平台,RFID模块通过自行车租赁系统实验模型的具体设计和实施,设计其关键代码,进一步加深对嵌入式系统的学习。
【正文】
一、需求分析
自行车租赁系统
自行车出租、归还管理、资费管理
1、记录信息
租车人在管理员处登记,管理员将给租车者开通一张用户卡,内有用户名,卡号,余额等信息,租车人即可凭用户卡可租车。
(注:
从没租过车且没办用户卡的人,第一次须登记并开通一张用户卡,以后就能凭卡租车不须再次登记开卡)
2、申请租车
租车人到自行车库租车,在车库中选好自行车后,在自助服务器的RFID刷卡器上先刷用户卡记录租车人信息,再刷选择好的自行车标签,记录出租信息。
租车时需要先刷用户卡并且一人只可同时租一辆自行车)
3、计时管理
当租车人,及自行车出租信息记录完毕时,系统自动计时。
4、还车管理
当租车人确定还车时,于自助服务器处,在RFID刷卡器上直接刷入自行车标签,即还车成功。
还车时不需要先刷用户卡)
5、资费管理
租车人通过管理员在自己的用户卡中存入一定数额人民币,当租车人借车成功,系统开始计时,本系统定为3元/小时。
当租车人还车成功时,结束计费,并将余额计入数据库。
二、结构设计
整体逻辑框架图:
(如果刷卡不成功则提示刷卡失败:
failedtobrushcard!
Pleasetryagain!
)
借车还车框架图:
三、功能实现与运行效果
1、关键代码解析:
这个数据结构用来记录自行车卡信息:
flag为借还标志-1表示未借,1表示已借
s记录借还次数
use绑定借车人的用户卡号,还车后借车绑定
NO[4]自行车卡的十六进制地址号码
这个数据结构用来记录用户卡信息:
flag为借还标志-1表示用户未借车,1表示用户已借车
NO_C[4]用户卡的十六进制地址号码
NO用户卡的卡号
price记录用户卡内的余额
name[10]用户名
intbike_card_init();
这个函数用来对自行车数组bk[N]初始化,由上图可知这个系统中共有3辆自行车,其十六进制地址号码分别为DA8D5079,C2E9749E,3227F19F。
intpeople_card_init();
这个函数用来对用户卡数组pep[N]初始化,由上图可知这个系统中共有3张用户卡:
用户名:
jarris卡号:
138余额:
100.0
ZhangBo卡号:
140余额:
80.0
用户名:
DuanRei卡号:
105余额:
60.0
intpeople_choice();
……………
这个函数作用:
当在系统界面刷入用户卡时,进入用户选择功能模块,显示用户信息,并输出“Chooseyourbike!
Andifyoudon'
twanttoborrowbike,brushyourpeople_cardagainforexiting!
”一句询问用户。
如果用户想租车的话,则刷入用户所选的自行车的标签;
如果用户只是想看一下自己卡内信息并不想租车的话,则再刷一次用户卡退出。
intbike_go_and_back(intk,ucharcard_NO[4]);
这个函数实现借车和还车功能,其中变量t_start[N],t_end[N];
负责记录时间;
time_t,tm为记录当前时间所用到的数据结构,其定义在头文件time.h中。
(详细代码请见card_ctrl.c)
2、系统运行示范及部分效果截图:
系统运行在联网嵌入式实验物箱(型号UP-CUPIOT-6410-Ⅱ)上,通过RFID刷卡器刷卡(其中一部分卡在程序中设置为用户卡,一部分卡在程序中设置为绑定在自行车上的标签)。
当租车者要租车时,先刷用户卡后,再刷自己所选自行车标签,即可租车成功;
换车时直接刷自行车标签,即还车成功。
下图左边为RFID刷卡器(或读卡器),右图为物联网嵌入式实验箱(型号UP-CUPIOT-6410-Ⅱ)。
●在装有Linux操作系统的虚拟机中将自行车租赁系统所需程序编译好,生成可执行文件,
然后在上位机上打开串口助手,把所需文件挂载到下位机(即物联网嵌入式实验物箱)上,将串口驱动加上,并选择所需的串口号,运行程序进入“欢迎”界面:
●刷卡:
a,如果租车者刷的卡既不是用户卡也不是自行车标签,输出错误并显示该RFID卡十六进制地址号码。
b,如果租车者没先刷用户卡就先刷自行车卡,则提示用户要先刷用户卡。
c,租车者刷用户卡,如果刷卡不成功(刷卡速度过快或卡与读卡器接触不完整,导致没能完全读出卡内十六进制地址号码),则提示出错。
刷卡成功则进入用户选择模块,此时显示用户的用户名,卡号,余额以及车库中剩余自行车的信息。
如下图:
105的用户卡刷入,其余额为60.0
此时车库剩余3辆车
●进入用户选择模块,刷卡:
a,如果用户DuanRei只是想看一下自己卡内信息并不想租车的话,则再刷一次用户卡退出,返回“欢迎”界面。
b,如果用户DuanRei想租车,则将自己所选自行车标签放到RFID刷卡器上,租车成功。
●用户DuanRei租车成功,如果他继续刷这张用户卡租车。
系统则提示该用户已经借过一辆车不能再继续借车。
(为方便管理,一个用户只能同时借一辆车)
●另一用户名为jarris,卡号为138的用户刷卡进入,此时可看到车库中剩余车辆数为2。
●用户DuanRei还车,租车时间为0.338056小时,总共花费1.0元。
至此,整个租车过程完毕!
四、系统的优缺点
优点:
该系统设计简单,使用方便,基本实现了一个完整的自行车租赁系统的基础功能。
缺点:
系统界面还不够美观,可视性不高;
断电或重新运行系统的时候,用户卡信息和自行车借还记录又重新初始化了,如用户jarris的余额又从100开始,已经借出去的某辆自行车的借还标志flag又重置为-1(即为未借标志)。
(因为系统还没能将用户卡信息和自行车借还记录与数据连接在一起,所以系统得在不断电的情况下一直运行)
五、后续工作以及目前还尚未解决的问题
1.面临问题:
a.我们现在无法通过RFID读卡器对RFID卡写入数据,只能读出RFID卡的十六进制地址号码,因此我们只能将用户卡和自行车标签的属性,如用户卡的用户名,卡号,余额;
自行车标签的借还记录等事先写入程序;
每次刷卡的时候读入RFID卡的十六进制地址号码,然后通过编写程序来将这个号码与写入程序中的用户卡和自行车标签的十六进制地址号码进行匹配,并判断其是用户卡还是自行车标签,最终得到用户卡和自行车标签的属性(这些信息并不是存储在RFID卡中的,而是事先写在程序中的)
b.我们的这个自行车租赁系统还没能将用户卡信息和自行车借还记录与数据连接在一起,所以断电或重新运行系统的时候,用户卡信息和自行车借还记录又重新初始化了。
数据库其实已经建好了,不过在系统程序调用的过程中出现了一些问题。
如上截图,我们已经将用户名为zhangbo,卡号为140;
用户名为jarris,卡号为138两位用户的信息写入到了数据库,并能实现对其余额加减的功能;
也能在数据库程序中增加用户或删除某一已经存在的用户。
后来又实现了能对自行车标签进行插入(增加新自行车),删除(绑定在自行车上的RFID卡以作废),保存租还记录等功能的数据库。
但在租车系统程序中调用这些数据库函数时出现了一些问题(可能是这些数据库函数不够完善,本身存在一些问题,其中数据库的详细程序请见mysql.c)。
2.后续工作:
将我们现在所面临的问题解决掉就是我们接下来所要做的事,我们组希望接下来能将目前的这个还不太完善的自行车租赁系统能与所建立的数据库完美的结合在一起,然后再改善一下系统界面,提高可视性,把它做成一个真正完整的可投入实际应用的系统!
六、课程设计总结
在本次嵌入式系统课程-自行车租赁系统的设计过程中,我们小组不仅巩固了自己的知识体系,进一步学习了RFID,更使我们初步了解了一个嵌入式系统的准备及开发的过程。
这种题目使得我们对数据库等学科能够连贯起来做一件具体的东西,比我们书本上眼睛看到的要直观的许多。
通过这次合作,还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。
在以后步入社会工作时,每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。
特别是小组成员之间互相一定要沟通好,这次设计,充分的认识到了合作的可贵。
在这次课题设计中,本小组具体实施时,由张博同学负责担任组长及连接数据库工作,杨盛培同学负责程序改写工作,任欢同学担任资料查阅工作,段磊同学负责流程设计工作,程超同学负责运行检查,蔡高建同学担任测试工作。
由于我们的知识有限,经验不足及阅历不足,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不够完美等问题,我们会在工作的使用过程中,根据工作的具体要求不断的改进,完善,争取使该系统慢慢趋向完美!
【参考资料】
博创科技物联网嵌入式教学科研平台Ⅱ型(网关部分)实验指导书
博创科技rf_iccard实验指导