基于Android应用的新型电子秤设计与实现
2019-08-16陈劲鸿
丁 磊,陈劲鸿
(广东工业大学计算机学院,广东 广州 510006)
农贸市场常见的传统电子秤计量和计价功能简单,在互联网经济飞速发展的今天已无法满足市场的需要.且随着大数据时代的到来,传统电子秤在称重、交易记录的储存和统计方面存在的功能缺失日益显现.近年来,有研究者设计出一些新型的电子秤,如利用RFID 射频识别模块[1]或蓝牙模块[2]对电子秤数据进行无线传输,但没有设计相应的应用程序对数据进行储存和处理.而一些基于蓝牙2.0 模块和Android 应用的无线电子秤系统[3-4],则能实现重量数据的处理和储存.有的研究侧重于提升电子秤的数据处理能力,如有一种基于Android 平台的收银秤系统,能实现商品管理、计价收银、交易记录储存等的功能[5].
参考上述的研究成果,本文设计了一种基于Android 应用的新型电子秤.在使用自定义通信接口协议的基础上,通过有线/ 无线的方式实现称重模块(含通讯模块)与Android 终端之间的数据传输,Android 系统上运行的电子秤APP 具备商品管理、计价收银、数据储存、数据分析等功能.使用两种方式进行数据传输的设计有利于提高电子秤系统的可靠性,适应更多的应用场合.而基于Android 系统的电子秤APP,可以方便快捷地对传统电子秤的功能进行扩展,功能迭代的速度更快,开发成本更低,可以大大降低用户的成本.
1 新型电子秤设计
新型电子秤的总体结构如图1 所示,其主要由称重模块(含通信模块)和Android平板电脑两部分组成.称重及通讯模块包含05-1K 压力传感器、HX712 A/D 转换模块[6]、CC2540 低功耗蓝牙模块[7-8]和PL2303HXD USB 转串口模块.CC2540 芯片内嵌射频收发器并运行BLE4.0 协议栈,兼具控制与蓝牙通讯功能.Android 平板电脑使用UnisCom的mz73.新型电子秤设计了独立的电源模块,包括1 路5V/1A 及1 路5V/2A,分别为称重模块(含通讯模块)和平板电脑供电.
图1 系统整体结构设计
新型电子秤具有数据采集传输和数据储存处理两大功能分层.每个分层包含若干个子层,下层结构能为上层结构提供数据或接口.
1.1 称重及通信模块设计与实现
称重及通讯的程序流程如图2 所示,核心功能包括传感器数据采集及按自定义的通信接口协议进行数据通信.
实际应用中应变式压力传感器输入- 输出特性存在非线性误差.同时,HX712 A/D转换模块受到外界干扰时亦可能会出现输出异常,因此电子秤使用限幅和算数平均方法对称重数据进行滤波[9],并使用曲线拟合的方法对传感器的误差进行校正[10].
图2 称重及通讯模块程序
1.2 基于Android系统的APP设计与实现
APP 使用Java 语言和扩展标记语言(Extensible Markup Language,XML)进行混合编程.Java 语言主要用于编写应用程序的流程和逻辑,XML 主要用于界面布局的设计[11].APP 应用程序的主要功能包括商品管理、重量数据接收和处理、交易记录管理、生成报表、功能设置,如图3 所示.
图3 收银秤APP 功能框架
1.2.1 数据库设计
APP 使用Android 系统集成的一个轻量级关系数据库——SQLite 来储存用户数据.为了实现商品管理和交易记录储存的功能,设计了如表1 至表3 所示的数据表.商品信息表用于储存商品的基本信息,如名称、单价等.交易记录表用于储存交易的大致信息,如时间,交易额等,信息量较少,方便用户快速了解交易情况,而交易记录细节表则储存了每笔交易中所交易的商品的详细信息,信息量较大,可用于统计商品销量.
一条商品信息占用23 B 的储存空间,由于每一条商品信息对应一张图片,而经测试一张大小约为30 KB 的图片即可满足显示需要.因此对于有100 种商品的用户,约需2.3 KB 的储存空间来储存商品信息,约需3 MB 的储存空间来储存商品图片.
表1 商品信息表
一条交易记录占用37B 的储存空间,一条交易记录细节占用60 B 的储存空间.对于每天大约有500 笔交易,每笔交易大约有50 种商品的用户,一天会产生约1.5 MB的交易数据.因此Android 平板电脑能满足数据储存的空间要求.
1.2.2 商品管理
商品管理的程序流程和界面如图4 所示,用户可对数据库中的商品信息进行添加、查找、删除等的操作.此外该界面还具有简易收银和界面跳转的功能.用户可以通过点击商品列表中的商品,跳转到数据接收和处理界面,所选择的具体商品信息会用于计价和生成交易记录.
表2 交易记录表
表3 交易记录细节表
图4 商品管理界面和程序
1.2.3 数据接收和处理
数据接收和处理的程序流程和界面如图5 所示.APP 会根据用户的设置切换通讯模式为蓝牙模式[12]或USB Host 模式[13],并自动连接称重及通讯模块,然后根据用户所选择的商品或所输入的单价生成相应的交易记录.此外该界面还提供去皮、清零和收银等功能.
1.2.4 交易记录管理
交易记录界面和报表界面如图6 所示.交易记录界面提供了交易记录和交易记录细节查看、删除和导出功能.用户可通过下拉菜单来选择交易时间,然后对筛选出来的交易记录和交易记录细节进行相应的操作.
在报表界面,用户可通过下拉菜单选择时间来查看年报表、月报表或日报表.此外,应用还提供一定的数据挖掘功能,通过点击商品图表按钮,用户可查看销售量前十的商品的销售额排名.通过点击时间图表按钮,用户可查看各时段的销售量分布.
图5 数据接收与处理程序界面和功能流程
图6 交易记录和报表界面
2 自定义通信接口协议设计
称重模块通过表4 所示的自定义通讯接口协议来进行数据传输,传统电子秤的通讯协议一般包含重量、单价和总金额3 个部分,因此为了保持通用性,本文所设计的通讯协议保留了这3 部分内容.此外该协议还增加了版本号、支付序列号、签名信息和校验码等部分.版本号用于指示数据包的开始位置.支付序列号用于区分两次称重结果,如连续两次称重同一种商品时,可使用该序列号进行区分,并生成两条交易数据.签名信息可对各数据项按特定的规则进行转换从而对数据进行加密.校验码通过各数据项的按序异或得出,用于对称重数据的完整性进行校验.
表4 自定义通讯接口协议
称重模块能通过有线和无线的方式进行数据传输,但这两种数据传输方式有一定的差异.通过自定义的通讯接口协议,在应用层上统一这两种通讯方式的数据传输格式.这种分层设计,有利于屏蔽硬件间的差异,方便后续的功能扩展.
3 新型电子秤的测试
为了测试新型电子秤的称重、数据储存和处理的性能,本文使用一台UnisCom 的mz73 型平板电脑运行APP.平板电脑一方面通过蓝牙与称重模块进行无线连接,以便接收重量数据.另一方面通过Android Studio 的调试桥插件和电脑连接,以便电脑监控其工作状态,并记录所需的数据.
3.1 称重测试
利用M1 级砝码的组合、一台符合标准的电子秤、一台新型电子秤进行称重误差测试[14].将标准电子秤与新型电子秤放置于同一工作台上,测试所用的M1 级砝码的最大重量为1 kg,在该范围内实际值为砝码的重量.当重量超出1 kg 时,利用重物模拟砝码,并在标准电子秤上得出重物的重量,实际值为重物的重量.测试结果如表5 所示.
表5 电子秤称重误差测试结果
市面上的电子秤精度可分为四级,而农贸市场所用的数字指示秤一般准确度等级为3 级,因此根据国家计量检定规程《JJG 539-2016 数字指示秤检定规程》[15],对于一台最大量程为12 kg 的电子秤,可取其检定分度值e 为10 g.则当载荷m 满足0≤m≤5 kg时,最大允许误差为±0.5 e,即±5 g,而当荷载m 满足关系5 kg≤m≤20 kg 时,最大允许误差为±1.0 e,即±10 g.则由表5 可知,新型电子秤的称重误差符合国家相关计量检定规程.
3.2 数据存储及处理测试
使用测试程序随机生成100、1 000 和10 000 条交易记录,每笔交易包含50 种商品的交易信息.将上述数据写入到电子秤APP 的数据库中,然后模拟用户对交易记录进行删除、查找和统计等操作,测试这些操作的完成时间,测试结果如表6 所示.
删除交易记录和统计商品销量前十操作所消耗的时间较长,其余操作均能在1 s 内完成,说明新型电子秤的大部分的数据操作能提供较好的用户体验.
表6 数据操作完成时间测试结果
4 结语
本文设计的基于Android 应用的新型电子秤,在通讯方面,使用无线和有线方式进行数据传输,提高了系统的可靠性.而使用自定义的通讯接口协议统一数据传输的格式,则实现了分层设计,有利于屏蔽硬件的差异.在软件方面,基于Android 平台开发的APP,除了能提供数据储存和管理功能外,还提供一定的数据分析功能,方便用户进行商品管理和实时了解交易状况.该新型电子秤具有简单易用、可靠、数据处理功能强的特点,能满足人们对电子秤功能提升的需求.