微波EDA网,见证研发工程师的成长!
首页 > 微波射频 > 射频工程师文库 > 基于RFID与Android平台的物品清点系统

基于RFID与Android平台的物品清点系统

时间:06-11 来源:微型机与应用 点击:

RFID技术是一种非接触式自动识别技术,由电子标签及读写器组成,具有信息容量大、保密性高、无需人工干预、识别效率高等优点。其与上层应用软件及后台数据库相结合,可实现物品管理、物品防伪、物品定位、身份识别等功能,被广泛使用于物流管理、交通运输、工业自动化等领域。

在智能家居中,RFID主要用于门禁系统、人员定位[1]等。智能家居(Smart Home)是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化等功能,集系统、结构、服务、管理为一体的,体现高效、舒适、安全、便利、环保的居住环境[2].智能家居的核心功能是安防报警与智能控制。当前市场上的智能家居系统主要有基于楼宇对讲技术的智能家居系统、基于现场总线技术的家庭自动化系统和基于智能手机的智能家居系统三大类[3].主要的产品有:智能锁、监控设备、各类环境传感器、智能电动窗帘系统、家电控制等。国内智能家居行业起步较晚,智能家居产品存在系统复杂、价格昂贵、不切实际等问题。智能家居企业所销售的并不是产品,而是为特定的某部分人量身定做的一套完整的个性化服务,价格昂贵,是面向富人群体的消费,且系统设计复杂,产品也不够多元化。这将不利于智能家居的长期发展[4].

因此,在当前客户个性化需求强烈的市场状况下,开发适合大众消费、操作方便的智能家居产品具有重要意义。本文基于便携式RFID与Android智能终端,是一款适用人群较广、操作方便的智能物品清点的移动应用系统,用于实现家庭式仓储管理。

1相关技术

1.1 RFID技术

无线电射频识别RFID(Radio Frequency Identification)是一种利用无线电的自动识别技术。典型的RFID系统通常由电子标签、读写器、RFID中间件和应用系统软件组成[5].电子标签及读写器通过无线电天线进行通信,可读取标签中的物品ID信息,实现非接触识别,并能同时识别多个标签。电子标签具有一定的存储容量,能唯一标识物品,具有使用寿命长、可重复使用等优点。RFID中间件是读写器与应用系统软件的中介,管理着读写器及其读取的数据,并将数据交付给上层的应用软件(如数据库)。带无线通信功能(如蓝牙、WiFi)的RFID读写器将无线通信模块嵌入读写器中,上层软件通过无线通信信号获取电子标签信息,使得用户可以随时随地获取RFID标签信息,解决有线读写器不可移动的限制。

RFID系统按其使用的无线电频率可分为低频RFID系统、高频RFID系统及超高频RFID系统。被广泛应用于门禁系统、身份识别、产品管理、集装箱管理、生产线自动化管理等领域。在识别距离方面,读写器的可识别范围与其制作工艺有关,比如天线设计、读写器功率设计等。一般的,低高频系统读写距离较小,在10 cm左右,高频标准ISO15693在降低传输速率、加大天线设计与读写功率的情况下,识别距离可达1 m;超高频在较大工作范围,能做到较快的传输速率,工作距离可达3 m~10 m,但是超高频电波受环境影响大,不能穿透许多材料,比如水、灰尘等。在实际应用中,需要考虑价格、读写距离、安全特性、存储信息量等因素,用于确定合适的频段及方案[6].

1.2蓝牙技术

蓝牙是一种低功耗、中短距离的无线通信技术,为移动设备之间提供快速、方便的无线通信连接,被广泛应用于手机中,其中蓝牙耳机是一个典型的应用。蓝牙通信规范是全球统一的,工作频段为全球统一开放的2.4 GHz频段,该频段的使用无需向各国的无线电资源管理部门申请许可证。不同的蓝牙设备通信时,可以建立临时性的实时对等连接。皮网(Piconet)是蓝牙最基本的一种网络形式,通常由一个主设备(即主动发起连接请求的蓝牙设备)和几个从设备组成,能同时实现一对多的通信[7].蓝牙技术的优点是:可以方便地建立无线连接;移植性强,适用面广;安全性较高;设备功耗低,成本较低;开发设计较简单。

1.3安卓系统蓝牙编程

蓝牙技术的开发核心是根据蓝牙标准所实现的蓝牙协议栈。该协议栈包含了众多协议,主要有逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)、串口模拟协议(RFCOMM)等。其中SDP协议是一个基于C/S结构的协议,是蓝牙协议栈中的核心协议。在蓝牙系统中,用户依靠SDP获取建立蓝牙连接所需的设备信息、服务信息及服务特征[8].

Android SDK从2.0版本开始支持蓝牙功能,应用程序必须在AndroidManifest.xml文件中加入一定的权限才能使用蓝牙服务:android.permission.BLUETOOTH权限允许用户连接蓝牙设备,android.permission.BLUETOOTH_ADMIN权限允许用户管理蓝牙硬件及使用相关服务,包括开启或关闭蓝牙硬件、扫描可连接蓝牙设备、传送数据等。相关的蓝牙API在android.bluetooth包中进行定义,包含以下几个主要类:

(1)BluetoothAdapter类代表设备上的蓝牙硬件;

(2)BluetoothDevice类定义远程蓝牙设备;

(3)BluetoothServerSocket类用来打开监听到达连接的套接字,并且在连接后提供一个BluetoothSocket对象;

(4)BluetoothSocket类用来建立同远程设备的连接,获取输入输出流。

通过蓝牙进行数据传输的过程包括:

(1)检查可用的蓝牙硬件。并不是所有Android终端都具有蓝牙功能,因此使用前需确定是否有可用的蓝牙硬件;

(2)开启蓝牙;

(3)查询已配对设备;

(4)搜索设备;

(5)建立设备间的连接;

(6)数据交互;

(7)关闭蓝牙硬件。

当两个设备连接后,各自拥有一个BluetoothSocket对象,并获得用来读取信息的InputStream对象和发送信息的OutputStream对象[9].

1.4 Android平台数据存储方式

基于Android平台的数据存储方式分外部存储和内部存储两类。外部存储方式指:内容提供器和网络数据库,内部存储方式有:系统配置、文件存储、SQLite数据库[10].在实际应用开发中主要使用内部存储方式。系统配置方式指通过Android平台提供的SharedPreferences类,保存应用程序的一些简单的配置信息的机制。文件存储方式使用Java中的IO类实现对内部存储器或SD卡等外部存储设备中的文件的读写与解析,该方式实现数据插入与修改操作较复杂,每次操作都需读取整个文件,效率较低。SQLite是一款超轻量级的嵌入式数据库,支持SQL语句,能实现查询、插入、删除、修改等操作,具有小、安全、免费等特点。本文提到的系统所选择的数据存储方式便是SQLite数据库,对数据进行操作简单而快速。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top