RFID射频卡超市购物结算系统

  这段时间在做RFID射频卡超市购物结算系统,这个系统的设想来自于大学研究课题,但是我们在淘宝网上购买设备的时候淘宝店主都认为RF射频技术不好应用在超市购物结算系统,原因有几点:第一个是超市有许多商品是水、饮料、肉类,射频会被削弱导致漏扫,第二个是超市每天卖出商品量很大,而RF卡的成本并不低,例如nxp sli卡的价格在1.6元以上 ,而FM1108的价格也在0.3元以上,如果商品采用这种卡,成本太高。

  但既然是研究课题,也就是要通过项目实施去解决这些问题,对于各种问题提出解决方案。以下简单记录截止今天之前的开发过程:

一、硬件选型,采购:

  在淘宝上、阿里巴巴等网站进行对比之后选择了RD201这套射频卡读写设备,这套设备的照片和参数如下:

设备参数如下:

工作频率: 13.56MHZ
支持标准: ISO/IEC 15693和ISO/IEC 18000-3标准
发射功率: 1.5W
识别距离: 单天线最远70CM,双天线最远100CM
识别速度: 高达60张/秒
天线接口: 1xSMA(50Ω)
通讯接口: 1路Rs232(可选USB、韦根26/34、蓝牙2.0)
I/O口: 一路继电器
工作模式: 主机模式,扫描模式(可通过软件设置)
工作指示: 1个内置蜂鸣器、2个工作指示灯
供 电: 12V DC
功 耗: 5W以内
物理物性:
尺 寸 125x105x28MM
重 量 250克
环境参数:
工作温度 -20度~60度
储存温度 -45度~85度
相对湿度 5%-80%

以上参数中黄色部分是比较关键的参数。

选择这个设备的原因是1、可并发每秒扫描60张卡,2、读取距离比较合适,3、提供sdk(java、vb、C#),4、价格适中

提供的sdk及开发文档已上传百度云。

项目思路:

  现在说说项目的思路:使用RF卡标识超市商品,用户进入超市后使用手机扫描超市购物车上的二维码(二维码和车上的RF卡绑定在一起),扫描后手机终端把购物车上的信息发送给后台,后台在数据库中完成用户id和购物车id的绑定,在用户完成购物之后,推着购物车通过装有扫描天线的通道,然后由RD201完成购物车上物品的扫描,并通过平板电脑的屏幕显示给用户,并通过互联网把所有商品的id和购物车的id推送给后台,由后台通过查询完成商品和用户的匹配并计算价格,然后把商品数量和总价推送给平板电脑显示给用户。同时生成账单推送给用户的手机终端,供用户完成结算。

本系统分三大部分,1、读卡、商品信息扫描,2、后台、数据库查询与计算,3、手机客户端、完成用户注册、购物车绑定、账单推送、付款等

1、读卡、商品信息扫描:这部分核心是驱动读卡的硬件完成读卡,购买设备的时候提供了sdk,最终选择了使用VB.NET完成这部分的开发,需要做一个界面,这个界面展示给用户扫描到的商品,并传送给后台,后台计算完成后反馈回来的数据要完成显示,要通过串口驱动设备完成扫描。这里面涉及到VB.net动态库的调用、计算机可用串口设备的查询与调用、数组和字符转换等功能。具体细节以后会上代码。

2、后台、数据库查询与计算:这是本系统的核心,当前数据库只需要实现最简单的功能,只需要有3张表,分别是用户表、商品表、购物车表。后台接收手机端的数据(用户进入超市之后扫描购物车上的二维码传送给后台)并完成用户id和购物车id的匹配。然后在本购物车进行商品结算扫描之后,接收由VB端传送来的数据(数据为商品id和购物车id的拼接字符串),对字符串进行解析后查询数据库并生成结算清单,把结算清单中的商品数量和商品信息发送给VB端供显示给用户,然后发送给手机端供用户使用手机支付结账。并对被购买的商品,在数据库中进行标识。扫描完成后要解绑购物车和用户。

3、手机客户端、完成用户注册、购物车绑定、账单推送、付款。这部分完成用户注册、绑定购物车、账单推送、在线支付等功能。

项目当前进度:(RD201单天线,被动模式)

读卡、商品信息扫描部分已经完成,天线可以同时读取几十张卡,读卡范围为:

NXP Icode SLI 尺寸:85.5×54mm(标准卡):60CM

Icode2钱币卡:20CM

注意:卡平面和天线平面完全垂直时无法读取,夹角要小于80度。

效果如下:

RFID射频卡超市购物结算系统的更多相关文章

  1. RFID射频卡超市购物结算系统问题记录--写入卡片时,后台php无法操作数据库

    后台管理人员要给每件商品贴上RF卡作为唯一标识,所以要先给对应的RFID卡中写入响应的信息,我这里为了便于模拟演示只写入商品编号,价格,名称这几个字段,然后要把已经写入的商品上传后台,由后台写入数据库 ...

  2. 编写Java程序_连锁超市购物结算系统

    目录 功能需求: 一.Use Case 1 显示商品信息列表: 二.Use Case 2 输入购买商品编号 三.Use Case 3 显示购物结算清单 需求分级: 实现代码: 功能需求: Soft f ...

  3. 射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计

    电子门锁是现代星级酒店管理电子化.智能化的重要电子设备.相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表 ...

  4. IC卡、ID卡、M1卡、射频卡的区别是什么【转】

    本文转载自:https://www.cnblogs.com/najifu-jason/p/4122741.html IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC ...

  5. IC卡、ID卡、M1卡、射频卡的区别是什么

    IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...

  6. IC卡、ID卡、M1卡、射频卡的区别是什么(射频卡是种通信技术)

    IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...

  7. MIFARE系列6《射频卡与读写器的通讯》

    1. 复位应答(Answer to request) 读写器呼叫磁场内的卡片,卡片对呼叫做出应答.对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入休眠 ...

  8. rfid 门卡系统和人体红外感应开发

    今天忙了一天了,因为毕昇杯我发现如果不加把劲,可能寒假之前代码搞不出了,今天突击了两个模块,一个人体感应模块,和rfid刷卡模块,这两个模块谈不上自己编写代码,今天的任务也仅仅是看懂了代码,现在我总结 ...

  9. IC卡,ID卡,M1卡,射频卡

    一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS5 ...

随机推荐

  1. AI 人工智能 探索 (五)

    我们把做好的 角色 拖到 内存池,如图所示,这样我们可以动态生成角色并给予他 寻路目标. //逗留碰撞 void OnTriggerStay(Collider other) { if (other.t ...

  2. 使用Qt报错error while building deploying project

    方法一:点击左侧的“项目”栏,看“构建目录”栏的路径,一定要注意,在路径中一定不要出现汉字,否则一定会报“error while building deploying project”的错误. 方法二 ...

  3. UVALive 2517 Moving Object Recognition(模拟)

    题目看上去很吓人,很高端,但其实很简单,不要被吓到,照搬题目的公式就可以了. 方法:用BFS求出最大块和重心,找出题目公式需要的未知量,然后套到题目公式里就可以求出答案了. 代码: #include& ...

  4. C# 初步学习

    这学期有了C#开发这门课....先做了计算器,还有进制转换,别人看来似乎很强,其实在ACM中算是两个简单的水题了.....参加竞赛一年下来,发现学到的算法和数据结构都是十分有用的东西. 计算器最核心的 ...

  5. HDU 1890 Robotic Sort | Splay

    Robotic Sort Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) [Pr ...

  6. Android Studio没有导包快捷键怎么办

    Android Studio没有导包快捷键,那怎么办呢? 在使用Eclipse开发Android应用时,开发者往往会使用Shift+Ctrl+O快捷键来快速导入所有的包,和移除未使用的包.但这个快捷键 ...

  7. tcp 的6个控制位

    原文:http://blog.chinaunix.net/uid-26413668-id-3376762.html TCP(Transmission Control Protocol) 传输控制协议 ...

  8. Hibernate中用纯SQL查询,并通过hibernate分页返回List<对象>

    @SuppressWarnings("unchecked") public List<Article> getPageQueryList(final int pageN ...

  9. Android之EditText控件

    <EditText android:layout_width="fill_parent" android:layout_height="wrap_content&q ...

  10. 如何把mysql的ID归0?

    如何把mysql的ID归0 可以归0的,truncate table + 表名     就行了