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. 转:Selenium2.0之grid学习总结

    (一)介绍: Grid的功能: 并行执行 通过一个中央管理器统一控制用例在不同环境.不同浏览器下运行 灵活添加变动测试机 (二)快速开始 这个例子将介绍如何使用selenium2.0的grid,并且注 ...

  2. 利用htmlunit登陆带验证码图片的网站

    http://htsoft.org/html/y2011/822_using-htmlunit-landing-site-with-captcha-image.html 利用htmlunit登陆带验证 ...

  3. C++ 输出Cstring遇见的奇葩问题

    先上代码 // webConteng.cpp : Defines the entry point for the console application. // #include "stda ...

  4. Recover Polygon (easy)

    Recover Polygon (easy) The zombies are gathering in their secret lair! Heidi will strike hard to des ...

  5. Android-----View绘制流程以及invalidate()等相关方法分析 .

    引自:http://blog.csdn.net/qinjuning/article/details/7110211 前言: 本文是我读<Android内核剖析>第13章----View工作 ...

  6. 深入理解最强桌面地图控件GMAP.NET ---离线地图

    enjoyeclipse 深入理解最强桌面地图控件GMAP.NET ---离线地图 这章会介绍GMAP.NET的核心功能之一:离线地图.这个功能可以满足很多政府项目.保密项目.或者由于种种原因不能上网 ...

  7. BroadcastReceiver的两种注册方式之------静态注册

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  8. 进程waitpid()的用法

    代码分析: /* waitpid.c */ #include <sys/types.h> #include <sys/wait.h> #include <unistd.h ...

  9. 有关sqlitedrop数据库重建比delete方式来清空数据库更加有效率

    今天浏览stackoverflow 发现一个有趣的问题: which was more preferable as performance wise and without error cause t ...

  10. JAVA基础--接口 interface

    接口是抽象方法和常量值定义的集合, 接口是一种特殊的抽象类, 只包含常量和方法的定义, 而没有变量和方法的实现. 接口->接口: extends, 类->类: extends, 类-> ...