基于Android的超市冷链设备数据监测系统设计
2018-03-30李慧敏
余 梦,李慧敏
(东华大学 机械工程学院,上海 201620)
近年来,随着社会的发展,科技的进步,人们的生活质量有了很大提升,大型超市日益增多,市场上对于制冷压缩机的需求量也逐渐增加。为了提高服务质量,冷链节能设备企业逐渐开始重视对制冷压缩机运行情况的监测。
传统的监测方式主要依靠技术人员亲临现场,对制冷压缩机的运行参数进行采集,然而这种人工监测的方式已经不能满足现代企业的需求。同时,企业的设备维护人员在现场进行调试时,无法方便、有效地查看设备运行情况。对此,有必要开发设计一种基于移动终端的无线数据监测系统。该系统不仅能移动、便携地实现各项数据的监测,减少监测人员的工作量,而且便于对分散的超市冷链系统实现集中化管理,并能及时预警,提高系统的安全性。
在移动终端普及度极高的今天,手机或平板电脑上网已经成为人们生活的一部分。Android由于其开源、市场占有率高等优势成为移动端软件开发的热门平台[1]。在此,利用Android平台推出的SDK,蓝牙传输技术、Tomcat服务器和SQL Server数据库,进行超市冷链设备数据监测系统的开发,实现数据的远程监控、信息管理和蓝牙现场调试等功能。
图 1 超市冷链设备数据监测系统总体架构Fig.1 Overall structure of supermarket cold chain equipment data monitoring system
图3 各模块界面Fig.3 Interface of each module
1 数据监测系统总体架构
基于Android的超市冷链设备数据监测系统总体架如图1所示。该系统由4部分构成:Android移动终端、现场蓝牙传输模块、Tomcat服务器和SQL Server数据库。
现场调试模式下,Android移动终端通过调用蓝牙串口,与现场蓝牙模块进行配对,使用Socket连接来进行数据传输,主要用于维护人员进行现场调试,也可实现监测人员由无线网络切换为蓝牙进行现场实时监测。
远程监控模式下,系统采用C/S架构,Android移动终端通过HTTP协议和服务器进行通信,Tomcat服务器通过JDBC——一种用于执行SQL语句的Java API——连接数据库,对数据库进行增删查改等操作[2],SQL Server数据库存储着从下位机发送来的超市冷链设备各项数据和用户信息。当用户远程手持Android移动终端,通过前台APP进行相关操作,移动终端便可通过HTTP协议与后台服务器建立连接,连接建立后前台发送请求,服务器响应请求,通过JDBC对数据库进行增删查改等操作,并返回相关数据到前台移动终端,将结果显示在APP界面上。
2 系统前台客户端设计
该监测系统前台客户端共有10大模块,如图2所示。
前台客户端的信息管理、实时数据监测、现场蓝牙实时数据、硬件调试等模块的界面如图3所示。
客户端应用程序启动后,显示用户登录界面,当用户输入正确的用户名和密码后,即可进入主界面。该界面有门店选择模块、用户管理模块和现场蓝牙调试模块可供选择。在门店选择界面中,当用户选择了城市之后,可看到该城市的所有门店,此时用户可通过点击任意门店,进入相应门店的实时数据监测模块和历史数据查询模块。在其实时数据监测模块中,用户可监测到压力值、电能值、开关、继电器和报警灯的实时数据与状态;在历史数据查询模块中,用户还可以通过选择日期和器件来查看该元器件当日的所有历史数据。
在用户管理界面中,用户可进行注册用户和查询用户信息的操作。在注册用户界面,管理人员可以注册新员工(或门店)的姓名(门店名称)、部门(门店地址)、电话、邮箱、账户、密码等信息,提交之后存储到数据库中;在信息查询界面,企业管理人员可以查询所有员工和门店的相关信息。
在现场蓝牙调试模块中,用户可以打开蓝牙,选择扫描到的附近蓝牙设备进行配对。配对成功后,用户可以进入该蓝牙设备所在的超市门店实时数据监测界面和硬件调试界面。在实时数据监测界面中,用户可以下拉刷新界面,监测到当前现场设备的最新实时数据,便于设备维护人员了解设备的运行情况;在硬件调试界面,维护人员可以通过蓝牙来设置硬件的各项参数。同时,现场用户可将界面跳转至蓝牙调试模块界面,进行配对连接,配对成功后,数据传输方式由无线网络传输转换为蓝牙传输,用户可以监测到当下实时的数据,减少了远程监控模式下由于时间差导致的数据误差。
图4 远程监控流程Fig.4 Remote monitoring flow chart
3 远程监控功能的实现
3.1 远程监控流程
远程监控的流程如图4所示。前台客户端的任意远程监控activity打开后,先初始化控件,显示界面布局。当客户端接收到点击事件后,随即向服务器端发送请求,如果请求成功则接收服务器端的响应,获取到JSON格式的数据,然后客户端再解析JSON数据,并将数据显示在界面中;如果请求服务器失败则回复客户端请求失败的信息,提醒用户。
3.2 客户端网络功能实现
设计中,采用HTTP协议以实现Android客户端与后台服务器的通信,选用HttpURLConnection方式发送POST请求。具体步骤如下:
步骤1创建1个URL,知道连接服务器的地址。
步骤2 设置HTTP协议的内容。
步骤3 使用流写入内容。
步骤4 获取响应的输入流。
要使用Android客户端的网络功能,必须在AndroidManifest.xml文件中增加访问互联网的权限[3],其代码如下:
由于Android程序不允许在主线程中访问网络,所以必须开启1个子线程,在子线程中实现客户端与后台的通信。开启子线程的方法是:在主程序中创建Thread对象,然后调用Thread类的start方法启动。
3.3 系统后台服务器端设计
系统后台服务器的流程如图5所示。服务器开启后,等待前台客户端的连接,当有请求到达后,服务器端设置编码格式,接收用户请求,随即连接数据库,根据请求操作数据库,最后获取数据,响应用户请求。
图5 后台服务器流程Fig.5 Background server flow chart
3.3.1 服务器设计
系统选用Tomcat作为服务器,在eclipse软件上进行程序的编写。服务器主要实现与客户端的交互,以及对数据库的增删查改等操作。为了使与客户端交互的数据传输效率更高,系统采用了JSON格式的数据,Android提供JSON的API,故使用起来非常方便。
服务器程序包的构成如下:①Dao包 对数据库的操作类即增删查改等;②DBUtil包 用于连接数据库;③entity包 封装了数据表的实体类;④JsonUtil包 将数据转换成JSON格式;⑤servlet包实现服务器与数据库的交互;⑥DBConfig.Properties包含SQL Server数据库的JDBC驱动、数据库URL、数据库的用户名和密码。
服务器通过request.getParameter()获取客户端请求参数,response.getOutputStream()响应客户端内容。
连接数据库的部分关键程序如下:
3.3.2 数据库设计与连接
数据库采用了Microsoft SQL Server 2008数据管理系统,其主要功能是存储并管理超市冷链设备远程实时监测系统的相关数据。根据功能需求,数据库需要建立1张用户信息表、1张城市门店表、n张门店数据表。用户信息表包含了门店和员工的具体信息;城市门店表包含各个城市的所有门店;门店数据表则包含该门店冷链设备的所有监测数据。
门店数据表的结构见表1。
表1 门店数据表结构Tab.1 Structure of store data
系统服务器应用程序与后台数据的链接采用JDBC接口。它由1组用Java语言编写的类和接口组成,提供了标准API,可向相应数据库发送SQL调用[5]。系统中DBUtil包用于连接数据库。
4 现场蓝牙监控功能实现
4.1 现场蓝牙监控流程
现场蓝牙监控流程如图6所示。进入蓝牙监控界面后,先判断移动端蓝牙是否开启,如果没有开启则跳转至打开蓝牙;蓝牙开启后进行搜索配对,然后建立socket连接,如果连接失败则显示“连接失败”以提醒用户。如果连接成功则创建输入流,进行数据接收与解析,并显示到用户界面,同时创建输出流,为需发送的数据创建数据格式,然后发送到后台蓝牙模块中。当用户退出蓝牙监测界面时,断开socket连接。
图6 现场蓝牙监控流程Fig.6 Field bluetooth monitoring flow chart
4.2 客户端蓝牙通信的实现
Android进行蓝牙开发,必须在Android Manifest.xml文件中加入以下权限[4]:
5 结语
基于Android的超市冷链设备数据监测系统,不仅能移动、便携地实现各项数据的采集监测,减少监测人员的工作量,还能方便地对分散的超市冷链系统进行集中化管理,且能够及时预警,大大提高系统的安全性。相较于传统现场监测模式,移动互联网平台下的数据监测管理系统,将使数据监测变得更加便捷高效,同时利用无线蓝牙通信技术进行现场数据监测会使维护人员更方便、有效地进行设备的调试。
该系统客户端远程监测通过无线互联网络,访问系统Web服务器以获取后台数据信息,所采用的C/S结构在较大程度上透明化数据的储存管理功能,同时又降低了客户端运行负荷,减少对于本机资源的占用。短距离现场调试通过蓝牙和现场蓝牙模块进行数据通信,可以获取当下实时的数据,减少了远程监测由于时间差造成的数据误差,极大地方便了维护人员的调试工作。系统运行稳定可靠,且不需高昂的建设和维护成本,非常适用于企业管理人员对于超市冷链设备数据的监测和管理。
[1]孙丽娟.基于Android的物联网数据采集监测系统开发[D].南京:南京理工大学,2016.
[2]刘胜前,陈立定.基于Android平台的车辆导航系统设计与实现[J].自动化与仪表,2012,27(4):1-4.
[3]于啸天.基于Android+Java EE的设备监测和台站设备信息管理系统[D].石家庄:河北师范大学,2014.
[4]侯新琦,李佳.基于Android蓝牙通讯的研究[J].电子世界,2012,34(11):84-85.
[5]宋恒力.基于Android平台与Web服务器的课程管理信息系统[J].电子技术,2014,43(12):59-63.