APP下载

基于Android的智能仓储系统的研究

2018-04-23蒋道霞安业品

软件 2018年3期
关键词:出库入库货物

傅 伟,蒋道霞,安业品

(江苏财经职业技术学院 机械电子与信息工程学院,江苏 淮安 223003)

0 引言

仓储在现代物流业和制造业中扮演着重要的角色,对于加速货物流通和生产决策起着重要的作用[1-3]。传统对仓储管理依赖于手工处理,产品的入库、出库等信息都需要手工进行统计,然后录入系统中,系统虽然能够起到一定的管理作用,但是由于大量的工作都需要手工去完成,系统只是单纯地起到记录数据的作用,另外对于仓储的环境更是无法做到实时监测,然而在仓储中对环境监测也显得比较重要,大部分货物怕潮,有些货物甚至对温度也有严格要求,仅靠人工管理无法做到实时监控的要求。随着物联网的兴起,利用ZigBee技术、RFID技术等可以将实物与互联网联接起来,通过上位机软件进行实时监控,即省时又省力,因此结合物联网和移动互联网实现智能仓储管理成为可能。

1 系统总体架构设计

系统能够实现对仓储环境的温湿度、光照度、空气质量、烟雾等进行监测,同时能对货物的出库、入库进行实时记录,通过系统了解各类货物库存情况以及所处位置。在环境监测方面主要采用ZigBee网络进行部署,收集仓储环境实时信息并传入系统服务器;利用 RFID技术进行实时采集货物信息,其整体架构如图1所示,ZigBee结点主要进行环境监测,在仓储的不同位置放置若干ZigBee节点,对仓储的温湿度、光照度、PM 值、烟雾进行监测,通过ZigBee网络将数据传送到系统服务器,服务器根据监测到的数据通过移动互联网,将数据推送至移动客户端并提醒用户,若环境变量数值超出预先设置的阈值,系统将作出相应的处理,使仓储环境变量值处于正常范围。仓储中的货物均贴上 RFID标签,当货物经过 RFID读写器时,货物中的相关信息自动被读入数据库系统中,全程无需人工干预,大大提高了工作效率。限于篇幅,本文主要从Android移动客户端的设计与实现进行深入研究。

系统整体架构Fig.1 S ystem overall architecture

2 系统设计与实现

2.1 系统功能设计

系统主要分为以下几个模块:环境监测、烟雾报警、货物入库管理、货物出库管理、货物库存查询等。环境监测主要由温湿度和光照度等节点构成,在仓库的每个角落均放置有相应的传感器,实时采集温湿度和光照度,根据不同的货物存储要求,控制合适的温湿度和光照度。防火报警节点主要采集烟雾信息,当仓库里有烟雾异常时,启动报警器,打开通风设备,同时通过服务器端将报警信息推送至客户端;通过视频监控节点采集人脸信息,实现防盗报警,当仓库里有人入侵时,通过人脸识别模块,启动报警器,同时通过服务器端将警报信息推送到移动客户端。货物入库管理主要通过 RFID标签和RFID读写器实现,货物入库时RFID读写器自动对货物上的 RFID标签进行读取,货物的入库信息经智能网关定时上传至系统服务器中,其信息主要包括货物名称、货物产地、货物入库操作员名称、货物入库时间等;通过 RFID设备对货物出库信息经智能网关定时上传至系统服务器中。另外如果需要了解货物库存情况,通过输入货物编号,可以通过系统查看货物的总库存量、日入库量、入库价格、日出库量、出库价格等相关信息,系统功能模块如图2所示。

2.2 数据库设计

根据系统要求,数据库中主要有:用户表、货物表、设备表。用户表主要用于用户管理,根据所属的权限的不同,拥有对系统操作的不同权限,如表1所示;货物表主要用于存储货物信息,表中包括货物编号、货物名称、货物产地等信息,如表 2所示;设备表主要用于存储各环境结点所采集的信息,表中包括设备编号、设备类型、设备相关数据、设备更新时间等信息,如表3所示。

2.3 Andr oid移动端设计

2.3.1 页面布局设计

为了使页面设计比较灵活,系统中的页面大都采用混合布局,在最外层通过 RelativeLayout进行布局,页面内每个部分再用LinearLayout进行布局,结构显得比较美观。为了简化设计有些部分可以单独用一个布局文档来设计,然后在其它文档中通过include语句将其包括进来,这样可以重复利用已经设计好的布局,比如在每个界面中都有“返回”按钮,先单独设计其布局界面如下:

图2 系统功能模块Fig.2 Sy stem function module

表1 用户信息表Tab.1 Use r information table

表2 货物表Tab.2 Goods table

表3 设备表Tab.3 Equipme nt table

在主界面中只需要将其包括进来即可,无需重复设计相同界面,其引用代码如下:

2.3.2 数据库操作设计

利用 DatabaseHelper类访问数据库,Database-Helper是访问SQLite的助手类,提供两个方面的功能,其一通过 getReadableDataBase( )、getWriteableData( )两个方法获得SQLiteDatabase对象,其二通过提供了 onCreate( )和 onUpgrade( )两个回调函数,允许用户在创建和升级数据库时进行相应的操作。为了提高移动端系统运行效率,启动系统时将服务器端数据同步到移动端SQLite数据库中,从而减少网络数据流量。获取 DatabaseHelper对象和Sqlite对象代码如下:

SqliteDBHelper dbHelper = new SqliteDBHelper(context, "zncc.db");//获取助手类对象

Sqlite rSqlite = dbHelper.getReadableDaoTool();//通过助手类对象获取SQLite对象

Sqlite wSqlite = dbHelper.getWritableDaoTool();//通过助手类对象获取SQLite对象

2.3.3 采用JSON数据解析

在网络传输中JSON是一种比较好的数据交换格式,相比 XML能够减少很多冗余字符,最大限度地提高网络传输效率[4-6]。JSON具有比较简洁和清晰的语法结构,比较容易编写,同时解析也比较方便,在将数据传送到系统服务器中主要采用JSON解析数据,货物相关信息都封装成 JSON对象,相关代码如下:

3 关键技术

3.1 多线程处理网络数据传输

在Android应用中经常会有些比较耗时的操作,比如网络连接或者上传下载文件操作[7-10]。这些操作如果都在一个主线程中开启,在网络连接不佳的情况下,主线程很有可能卡死,用户体验极其不佳,为了获得比较好的用户体验,必须重新开启线程,在货物入库、出库等功能模块中均开启了线程,达到比较好的用户体验效果,系统中采用 Android中已封装的 AsyncTask类进行多线程操作,在AsyncTask类中主要有 onPreExecute( )、doInBackground(Params… params)、onProgressUpdate(Progress… values)、onPostExecute(Result result)等方法。当需要完成一些准备工作时,首先调用 onPre-Execute( )方法;执行的后台任务均写在 doInBackground(Params… params)中,publishProgress 调用onProgressUpdate(Progress… values),表示任务进度更新;在后台任务执行完毕后,调用 onProgressUpdate(Progress… values)方法,参数为后台任务返回结果。doInBackground(Params… params)方法由AsyncTask内部线程池执行,其它方法均在主线程中执行。

4 实验结果

本系统在Android 4.4.2环境下进行开发,采用Android Developer Tools集成开发工具进行实现,开发硬件平台为CPU主频2.5GHz、内存8G,限于篇幅,只展示系统的部分界面,如图3所示。

5 结束语

图3 系统部分界面Fig.3 S ystem part interface

仓储是现代物流业和制造业储存货物的重要场所,实现仓储智能化是现代信息技术发展的必然要求[11-15]。随着物联网和移动互联网的快速发展,智能仓储已经逐步在大中型企业开始应用。本文从系统体系结构、系统设计、系统实现等环节进行探索,实现了基于 Android的移动端智能仓储平台,经过测试,系统性能达到了设计要求。

[1] 蒋玉芳. 基于Android的仓库管理系统的设计与实现[J].科技广场, 2017, (5): 49-52.

[2] 李光革, 苗建松. 基于Android的物联网环境监控应用设计与实现[J]. 软件, 2013, 34(9): 32-35.

[3] 杜晓萌, 唐碧华, 吴帆. 基于Android终端的物联网物流管理系统的设计与实现[J]. 软件, 2013, 34(12): 26-31.

[4] 曹小阳. 基于物联网RFID技术的智能仓储系统的设计与实现[J]. 现代信息科技, 2017, 1(5): 75-77.

[5] 陈燕. 基于云计算技术的智能仓储管理系统设计与实现[J].自动化与仪器仪表, 2016, (11): 160-162.

[6] 贾兴苇, 王丹志. 基于Android 的出租车智能管理系统的研究与设计[J]. 软件, 2016, 37(1): 38-43.

[7] 郭鹏, 周俊, 胡慧. 智能仓储管理系统的设计与实现[J].湖南工程学院学报, 2016, 26(3): 42-45.

[8] 苏诚, 许朋刚, 代志良. 智能仓储系统设计与开发应用[J].机械, 2017, 44(10): 65-71.

[9] 王亚东, 雷灵光, 周健, 等. Android 移动设备管理系统的设计与实现[J]. 软件, 2016, 37(2): 11-16.

[10] 葛俊峰, 戈华. 基于ZigBee无线传输技术的智能仓储系统设计[J]. 内蒙古师范大学学报(自然科学汉文版), 2015,44(1): 49-52.

[11] 李华忠, 梁永生. Android高级应用编程实践[M]. 北京: 中国铁道出版社, 2015: 233-255.

[12] 郑家宋, 孟玮. 基于物联网的煤矿智能仓储与物流运输管理系统设计与应用[J]. 工矿自动化, 2015, 41(8): 108-111.

[13] 刘烈君. 基于云计算技术的智能仓储管理系统设计研究[J].数字通信世界, 2016, (10): 11-13.

[14] 张晓诺. 基于Android 的智能家居环境监测系统APP 设计与实现[J]. 软件, 2015, 36(2): 77-79.

[15] 郑开增. 智能仓储管理系统[J]. 农村电气化, 2017, (7):37-38.

猜你喜欢

出库入库货物
重磅!广东省“三旧”改造标图入库标准正式发布!
中国食品品牌库入库企业信息公示①
逛超市
卷烟配货出库流程的优化与应用
散粮出库 加快腾仓
“出库费” 应由谁来付
身临其境探究竟 主动思考完任务——《仓储与配送实务》入库作业之“入库订单处理”教学案例
基于PLC的物流自动化包装线出库穿梭车的设计
批量地籍图入库程序设计方法