基于超高频RFID 的非接触式机场行李自动分拣原型系统设计与实现

2020-11-20 06:07杨韩伊蔡博槐陈广杰胡坚涛郑集欣陶铭
现代计算机 2020年29期
关键词:串口列表行李

杨韩伊,蔡博槐,陈广杰,胡坚涛,郑集欣,陶铭

(东莞理工学院计算机科学与技术学院,东莞523808)

0 引言

目前,随着国内机场旅客流量的增加,旅客行李的托运数量也在急剧上升,这对现有的机场行李分拣系统是一次严峻的考验。传统的条形码标签分拣技术已不能满足高准确性和高实时性的需求,因此需要对现有机场行李分拣系统进行升级。RFID 技术与行李标签相关技术的结合应用,极大地推动了机场中行李分拣工作的进程[1]。

物联网的定义是通过射频识别、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络[2]。随着物联网技术的快速发展,“物联网+RFID”技术的结合应用,可有效解决传统机场行李分拣技术的弊端,提高行李分拣的准确性和实时性。

本系统采用STM32F103ZET6 作为嵌入式MCU,使用RIFD RC522 芯片实现RFID 行李标签信息采集,通过ATK-ESP8266-V1.3 通信模块实现无线传输功能,以Web 应用程序页面实时显示采集信息。设计了基于超高频RFID 的非接触式机场行李自动分拣系统,将RFID RC522 射频模块采集信息通过串口发送到STM32F103ZET6 单片机,通过 ATK-ESP8266-V1.3 通信模块将采集信息上传到服务器端,连接本地数据库存储,机场管理员可以通过Web 应用程序登录系统,实时跟踪旅客行李去向,以及查看旅客航班信息。

1 系统总体设计

本系统拥有一个识别器、一个后台和一个用户端,设计组成主要包括舵机、电机、通信模块和单片机。单片机是整个系统的关键核心,主要负责对采集数据的处理以及控制各元器件的运作。在本系统中,单片机控制RFID 射频识别芯片提取标签信息,并控制Wi-Fi通信模块与服务器进行交互,根据交互信息发送相应的指令控制电机和舵机的工作。后台为基于Spring-Boot 管理系统,用户端为Web页面。系统总体设计如图1 所示。

2 系统硬件设计

2.1 嵌入式微处理器

嵌入式微处理器是由通用计算机中的CPU 演变而来的。它的特征是具有32 位以上的处理器,具有较高的性能。与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求[3]。本系统采用意法半导体(ST)公 司 出 品 的 STM32F103ZET6 芯 片 ,STM32F103ZET6 芯片采用 32 位的 ARM Cortex-M3 架构,程序内存大小为512KB,存储器容量为64KB,芯片的运行频率为72MHz;芯片内置了三款定时器:基本定时器、通用定时器和高级定时器,其中通用定时器和高级定时器支持输出多路的PWM;在嵌入式接口类型方面,支持 CAN、I2C、SPI、USART、USB 五类接口,其中电源通过USB 接口接入5V 电压供电。

图1 系统总体设计

2.2 RFID 射频识别模块

无线射频识别即射频识别技术(Radio Frequency Identification,RFID),是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体(电子标签或射频卡)进行读写,从而达到识别目标和数据交换的目的。无线射频识别技术通过无线电波不接触快速信息交换和存储技术,通过无线通信结合数据访问技术,然后连接数据库系统,加以实现非接触式的双向通信,从而达到了识别的目的,用于数据交换,串联起一个极其复杂的系统。在识别系统中,通过电磁波实现电子标签的读写与通信[4]。本系统采用NXP 公司研发的 RFID RC522 芯片识别RFID 标签,RC522 是一款支持ISO14443A 协议的高频射频芯片,频率为13.56MHz。在使用RC522 时,将RC522 与单片机的SPI 串口连接。要想对模块内部的数据块进行读写,需要完成4 个步骤:寻卡、防冲突、选卡、读/写卡。

2.3 Wi-Fi通信模块

Wi-Fi 模块又名串口Wi-Fi 模块,属于物联网传输层,功能是将串口或TTL 电平转为符合Wi-Fi 无线网络通信标准的嵌入式模块。本系统采用ATK-ESP8266-V1.3WIFI 通信模块进行数据传输和通信,ATKESP8266-V1.3 是星翼电子科技公司推出的一款高性能的UART-WIFI(串口-无线)模块,模块支持STA/AP/STA+AP 三种工作模式,内置TCP/IP 协议栈,能够实现串口与Wi-Fi 之间的转换。通过ATK-ESP8266-V1.3模块,只是需要简单的串口配置,即可通过网络(Wi-Fi)传输自己的数据。ATK-ESP8266-V1.3 模块支持LVTTL 串口,兼容3.3V 和5V 单片机系统。在使用前,需使用杜邦线将ATK-ESP8266-V1.3 接通3.3V 直流电源,接通后指示灯闪烁,之后需将ATK-ESP8266-V1.3 的TXD 引脚与单片机的RXD 引脚相连,RXD 引脚与单片机的TXD 引脚相连,GND 与单片机的GND 相连。工作模式选择STA 模式,ATK-ESP8266-V1.3 模块通过连接主机(电脑)热点实现局域网无线通信,主机(电脑)可以通过局域网实现对设备的控制。

进入AT 状态:将USB 串口线电脑相连,并安装驱动程序。打开计算机设备管理器,点开COM 端口,设置波特率为 115200,发送 AT 指令查看 ATKESP8266-V1.3 模块的运行状态。ATK-ESP8266-V1.3模块通过AT 指令主要配置如表1 所示。

表1 AT 指令主要配置表

2.4 模拟舵机模块

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统[5]。本系统中采用深圳市科比电子科技有限公司研发的MG90S模拟舵机,在使用时舵机前,需将舵机的电源正极线连接单片机的5V 电源,将电源负极线连接单片机的GND,并将信号线连接单片机输出PWM 信号的引脚。舵机用于驱动挡板摆动,在行李标签被识别后将行李摆入对应的行李通道,实现行李分拣的目的。

2.5 直流电机模块

直流电动机是将直流电能转换为机械能的电动机,因其良好的调速性能而在电力拖动中得到广泛应用。本系统中采用深圳市科比电子科技有限公司研发的775 直流电机,该电机的额定功率为12V,启动电流为10A。在使用电机前,需将电源正负极信号线与开关电源的正负极相连,并将信号线连接单片机输出PWM 信号的引脚。电机用于驱动传送转盘来传送行李,并可以通过调整PWM 信号控制电机的转速。

3 系统软件设计

3.1 单片机软件设计

单片机系统软件设计主要用于为系统硬件分配资源以及控制系统硬件工作,各硬件之间通过软件系统实现协同工作。本系统主要由定时器程序模块、RFID射频识别模块、Wi-Fi 通信模块、舵机模块和电机模块五部分组成。程序流程图如图2 所示。

系统运行时会按照图2 所示流程进行控制,当LED1 和LED2 均点亮时,意味着硬件系统已经与服务端建立了网络连接,系统进入射频扫描状态,开始正常工作。同时,当Wi-Fi 通信模块接收到来自服务端的数据时,系统进入数据处理状态,解析服务端命令,更新行李列表。

当RFID 射频识别模块识别到行李标签时,系统进入数据处理状态。先查询行李列表是否存在该标签,若不存在,即表示该标签是第一次扫描,未能知晓该标签信息,需与服务端进行通信请求该标签相关信息;若存在,获取该行李标签,通过异常判定逻辑判断是否为异常行李,若是,进行异常处理,否则进入下一步。通过出仓判定逻辑判断是否符合出仓要求,并进行相应处理。最后,更新行李列表。

3.2 通信协议

在项目开发中,需要各硬件之间通信完成数据传输,数据传输需要合适稳定的总线和灵活的通信协议。本系统中主要涉及到三类通信协议:一类是Wi-Fi传输模块与主机通信所基于的TCP/IP 协议,一类是Wi-Fi 传输模块与单片机串口通信基于的SPI 通信协议,一类是单片机之间串口通信所基于的USART 通信协议。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇[6]。TCP/IP 传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP 传输协议是保证网络数据信息及时、完整传输的两个重要的协议[7]。

SPI 是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的、全双工、同步的通信总线。SPI 是一种高速、高效率的串行接口技术。通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块进行同步通信,从而完成数据的交换。

图2 系统流程图

USART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步串行接收/发送器),是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。USART 串口协议层中串口数据包的基本组成为:起始位、结束位、有效数据和校验位。

在本系统中无线传输功能需要将RFID 射频识别器采集到的信息发送到主机,串口通信功能负责整合主机控制指令并指定舵机和电机工作,这两部分是系统设计的重要环节。

3.3 后台软件设计

后台软件的设计工具包括Visual Studio 2015 和IntelliJ IDEA,分别用于编写本系统的服务端软件和Web 端软件。服务端软件主要负责接收来自于硬件Wi-Fi 模块发送过来的数据,并进行数据分析、数据处理、数据持久化,为Web 端后台提供数据进行可视化。同时,可在出现异常行李时,将相关数据发送给硬件,为硬件提供控制信息。程序流程图如图3 所示。

图3 程序流程图

服务端维护着一个行李列表,该列表保存当前处于传送带上的行李的信息。同时,数据库里也维护一个行李列表,该列表保存本次需分拣的全部行李信息。

接收信息:服务端接收来自硬件扫描到标签ID;数据分析:查询该ID 是否存在于服务端行李列表,若是,进入数据处理①;否则查询是否存在于数据库行李列表,若是,进入数据处理②;若均查询不到该标签,则进入数据处理③;数据处理:①记录本次行李扫描日志,等待持久化;②获取数据库中该标签的行李对应信息,发送给硬件;③该标签出现异常,发送异常信息给硬件;

数据持久化:负责行李日志,行李列表的持久化。

Web 端软件主要为用户提供整个系统的数据可视化,包括行李信息、员工信息、日志信息等。采用了Spring Security 框架,将对该Web 端的访问分为三种权限,不同权限分别只能访问该权限特定的功能[8]。系统功能图如图4 所示。

图4 软件功能图

所有权限都有行李日志功能,可查看每次行李扫描的详细信息;超级管理员主要负责对员工进行管理,其员工管理功能可以对员工的信息进行增删改查,还可以添加员工、禁用员工、删除员工,并且可以查看当前在线的员工,在员工账号泄露并被恶意操作时,可做出及时反应。管理员主要负责对行李分拣的实时监控、管理,其行李管控功能为管理可能异常的行李提供支持,行李异常且硬件异常逻辑判定不能正确判断出时,可由该功能进行手动控制;实时情况功能可实时监控硬件上的情况。员工没有任何管理权限,只能查看航班信息、行李日志。

3.4 前端软件设计

前端软件的设计工具为Sublime 和Google Chrome浏览器,分别用于编写前端代码和显示代码结果。涉及的技术有:Bootstrap,用于界面设计的响应式Web 框架;jQuery,用于表格筛选动态数据等操作的JavaScript 框架;Vue.js,用于构建用户界面的渐进式JavaScript 框架。

前端负责将后台传过来的数据显示出来,供用户、管理员和系统维护员查看与操作航班的动态和行李。权限界面分为三个,普通用户、一般管理员和系统维护员。在登陆界面登陆后,根据用户名对应的不同的权限,进入对应的系统界面。

普通用户界面:主要由首页、航班列表和行李日志组成,供用户使用,可查到自己航班和行李的动态。首页显示该用户乘坐航班的信息,包括航班编号、出发地、目的地、日期、行李数和出发时间倒计时;航班列表由一个表格构成,显示全部航班的航班编号、出发地、目的地、出发时间和行李数,供用户查看关注的航班部分信息,可以筛选出未起飞或者已起飞的航班;行李日志显示该用户所乘坐的航班的信息,头部显示航班的起飞时间、航班号、出发地和目的地,表格部分显示该航班的出发时间和行李数。设计效果如图5-图6 所示。

一般管理员界面:主要由工作台、行李管控、行李日志和实时情况组成,供一般管理员查看航班和行李动态,也可以进行行李的操作。工作台显示某航班的航班信息和行李列表,在行李列表中,显示该航班所有行李的行李号、状态、操作和出口,目的是为了查看该航班行李的状态和去向,状态有正常和异常,正常表示可被扫描或已出仓,异常表示未出仓或未被扫描,操作有出仓或者第几次扫描,出口表示行李在哪个出口出去;行李管控显示某个航班的行李数、已出仓数、未出仓数和取消托运数,在行李列表,可以查看行李号、操作和出口,也可以进行处理,点击出仓按钮便可进行行李的出仓;行李日志显示当前航班的行李编号、旅客编号、状态、操作、扫描时间和记录时间;实时情况显示分拣系统传送带上,当前行李传送总数、荷载传送数、传送速度和航班传送行李数。行李列表显示行李的行李编号、航班编号和状态。设计效果如图7-图8 所示。

系统维护员界面:主要由航班列表、行李日志、员工日志、员工列表和在线员工组成,供系统维护员使用,用于查看航班的行李动态和员工的动态。航班列表、行李日志显示各航班和行李的信息;员工列表显示所有员工的信息,包括总员工数、在线员工数和离线员工数,并可以进行员工操作,如:修改、禁用和删除。设计效果如图9-图10 所示。

4 结语

该系统实现了基于超高频RFID 技术的机场行李自动分拣,通过在旅客行李上粘贴RFID 标签,并将该标签与行李进行关联,如航班信息、行李信息、旅客个人信息、航空档案信息等,通过设置在各个工作场所的RFID 读写设备自动读取粘贴在行李上的RFID 标签,对旅客行李进行有效的识别,并对行李进行分拣。

图5 用户界面-首页

图6 用户界面-行李日志

图7 一般管理员界面-工作台

图8 一般管理员界面-行李管控

图9 系统维护员界面-航班列表

图10 系统维护员界面-员工列表

猜你喜欢
串口列表行李
爱因斯坦的心灵鸡汤
扩列吧
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
行李
教你轻松收拾行李
MCS—51单片机中的多串口通讯技术的应用
列表法解分式方程问题探索
列表画树状图各有所长
收拾行李