APP下载

基于LinuxQt智能衡器的研究和应用

2017-09-18,

关键词:衡器键盘嵌入式

,

(上海师范大学 信息与机电工程学院,上海 200234)

基于LinuxQt智能衡器的研究和应用

沈丹来, 赵梗明*,祁琴琴

(上海师范大学 信息与机电工程学院,上海200234)

通过对当前衡器产品的调研,并以现代衡器行业发展的需求为依据,提出了一种智能衡器的整体设计方案.以ARMllS3C6410为核心处理器,Linux嵌入式系统为智能衡器提供控制系统,使用LinuxQt完成了控制程序及人机界面.采用WIFI通信技术达到系统远程通信及数据采集的目的,通过STM32芯片设计了USB键盘,并采用热敏打印机来打印交易记录.在传统衡器的基础上,加入了网络和数据库技术,使得衡器更具智能化.测试结果表明,系统稳定可靠、易于操作,达到了设计目标.

智能衡器;Qt; 嵌入式Linux;ARM; 人机交互

0 引 言

随着网络技术的不断发展以及硬件处理数据能力的不断提升,越来越多传统行业的电子仪器仪表产品都被带有平板显示的智能终端逐步取代,这给数据的采集和处理带来了更多的便捷.仪器仪表接入互联网络后,便捷的操作方式及友好的人机交互界面给现场的实际操作使用带来了更多的操作体验.

衡器是指计量物体质量(重量)的器具和装备,是应用范围最广泛,品种数量最多的计量装备.据统计,世界上有60%以上的产品都要经过称重计量[1].我国在衡器技术方面的发展取得了较大的技术进步,主要表现在2000年以来,国内电子衡器制造技术得到了较快发展.电子称重技术从静态称重向动态称重发展,计量方法从模拟测量向数字测量发展,测量特点从单参数测量向多参数测量发展,特别是对动态称重的研究已经达到一个较高的水平[2].但是国内衡器企业技术缺乏技术保障能力和技术创新能力,是中国衡器前进路上的两大瓶颈[1].从每年国际衡器展览的情况会发现,欧美国家的电子衡器较国内产品体积更小、精确度和可靠性更高、相对质量也更好.智能化已经成为衡器一个发展的方向,欧美国家的互联网技术也比较发达,多台电子衡器终端配合云服务器协同运作,衡器终端负责采集称量数据,服务器负责数据处理并管理衡器终端.综合比较国内的衡器在智能化方面不占优势,且在高端衡器的市场份额非常低.

本文作者使用的WIFI技术属于一种短距离的无线信息技术,在办公和家庭中都得到了广泛地应用.无线WIFI具有以下几个特点:(1)架网方便,与传统以太网相比无需布局大量网线,同时设备可以在WIFI覆盖的区域任意移动;(2)WIFI无线电波覆盖距离广,蓝牙的无线电波可以覆盖的距离大概15m而WIFI的无线电波可以覆盖100m左右[3];(3)传输速度快,相比其他无线网络,WIFI有比较高的传输速度,能够满足智能衡器的数据传输要求.此外随着中国国力的不断发展,互联网络用户的不断提升,中国已经成为一个互联网络的大国,越来越多的电子产品接入互联网络已经是一种趋势.在外围电路的设计中,为了方便用户的输入操作,设计了以STM32F103C8T6为MCU(Microcontroller Unit)的USB键盘,同时为了记录衡器的交易记录,采用了热敏打印技术,将交易的部分数据打印出来,解决了智能衡器的网络接入、USB通用键盘的设计、热敏打印机的控制等相关技术难题,分析了各个模块的基本特点和所要实现的基本功能,在此基础上提出了基于Linux嵌入式系统的智能衡器整体设计方案.

1 系统整体设计方案

智能衡器的概念是指在传统衡器的计量功能的基础上,添加网络通信模块、数据处理和保存模块以及友好的人际交互模块的新型衡器.智能衡器通过WIFI模块进行网络通信,在数据保存方面选择了小巧、灵活的Sqlite数据库,它支持经典的SQL语句,能够非常便捷地完成数据的增删改查,也满足了数据备份和数据多样化处理的要求.同时智能衡器配备了键盘交互和热敏打印的功能模块.Linux系统的内核版本号为2.6.30.考虑到友好的人机交互能够很大程度上提升整个系统的体验度,图形界面交互以其直观、简易、并且人性化的特性深受人们的青睐.Qt是一个跨平台的C++图形用户界面应用程序框架,它提供给应用程序开发者建立图形用户界面所需的所用功能[4],本研究中Qt的版本为4.8.5.整个系统设计如图1所示.

图1 系统整体设计方案

2 关键模块具体实现

2.1WIFI通信模块

2.1.1 无线网络通信

无线网络的移动、动态和空间特性拓展了网络的空间,给运营商也提供了更广阔的应用服务的空间[5],WIFI模块选用的是杭州利尔达科技有限公司型号为LSD5WF-3015B,它符合IEEE802.11b/g/n无线局域网标准,可以与其他符合该标准的无线设备互相联通,支持最新的64/128位有线等效保密(WEP)数据加密,支持WPA-PSK/WPA2-PSK,WPA/WPA2安全机制,无线传输速率高达150 Mbps,工作频段为2.4 GHz;该WIFI模块在Station状态下运行,通过无线访问接入点(AP)连接到广域网(WAN),这样智能衡器就能访问整个Internet,能够和互联网中服务器进行通信;WIFI的配置使用了开源的wpa_supplicant网卡管理工具,编译wpa_supplicant源码后会得到wpa_supplicant和wpa_cli两个工具,到其所在的目录运行“./ wpa_supplicant”后就进入了wpa_supplicant命令交互模式,其常用命令格式如表1所示.

表1 wpa_supplicant最常用基本命令

通过表1的命令就能够配置好WIFI,当使用scan_r查看扫描到的服务集标识(SSID)的时候一定要使用scan命令先扫描一遍,在连接之前将扫描的结果放到与wpa_supplicant同一文件夹下的temp文件中,然后读入temp文件中的SSID进行连接,整体流程如图2所示.

Qt中代码如图3所示.

图2 WIFI连接过程

图3 WIFI连接代码

图4 ping Tencent的实验结果

连接上无线网络后,telnet登录到设备上,通过ping通Tencent网表明网络连通,结果如图4所示.

2.1.2 智能衡器连接服务器

智能衡器和服务器之间的通信是采用TCP协议,在Qt中,通过QtcpSocket类进行连接,基本流程如下:首先新建一个QTCPSocket对象,然后通过服务器的IP和端口号进行连接(此时服务器监听相应的端口号),最后通信结束一定要将socket关闭,不然多次连接会出现内存泄露.在TCP保活方面,采用的定时检测,通过定时器不断检测连接是否断开,如果断开则会重新连接.

智能衡器和服务器连接在Qt中代码如图5所示.

图5 智能衡器连接服务器代码

图6 WIFI和服务器设置界面

为了方便用户对网络和服务器连接的设置,设计了友好的人机交互界面如图6所示.

2.2数据库的设计

Sqlite是一款轻量级别的小型嵌入式数据库,实现了完备的和可嵌入的SQL 数据库引擎,目前已广泛应用于嵌入式产品中[6].同时,由于其小巧、便捷同时能很好支持Linux系统,将商品的固定信息如商品名称、商品编号、商品价格等保存到Sqlite数据库中,这样不仅方便数据的操作,同时还能够减少智能衡器和服务器之间的数据通信.

2.2.1 创建新的数据库

创建一个名为smartweight的数据库并设置用户名和密码如图7所示.

图7 创建smartweight数据库代码

2.2.2 执行SQL语句

表2 商品信息表

通过QsqlQuery::exec()函数执行SQL语句,创建数据表、插入数据及其他查询操作.

1) 创建商品表:商品表中记录了商品的名称、商品编号、商品单价、商品生产日期、商品保质期如表2所示;

2) 插入数据:使用标准SQL插入语句,将商品信息输入插入;

3) 查询数据:使用标准SQL查询语句,查询特定条件的商品信息;

4) 删除数据:使用标准SQL删除语句,删除指定的数据记录.

采用Qt实现的数据库设计中,首先要能够和数据库取得连接,然后通过SQL语句对数据库进行操作,来完成对数据库增删改查.

2.3USB键盘的设计和实现

2.3.1 USB键盘系统设计

在智能衡器中,由于Qt提供了用于处理鼠标、键盘等用户输入操作的事件模型[7],并且这些事件模型都是基于USB键盘来设计的,要设计一款键盘来满足用户不同事件的输入操作.通常对键盘的设计,需要一款能适用于实时操作系统的控制器芯片,而控制器芯片的种类非常繁多,不同类型的芯片在结构上性能上都存在一定程度的差异性[8].本文作者选择的是功能、资源丰富的STM32F102RBT6芯片,键盘采用的是行列式扫描的方式,核心电路图如图8所示.

2.3.2 USB键盘在Qt中实现

在Qt中,系统会捕获所有的键盘事件,然后根据键盘事件的不同键值处理不同的事件,F1键打印交易数据,F2弹出设置网络界面,F3根据设置界面连接网络,并退出网络,其他数字、字母键用于输入字符,Table键依次切换键盘.

2.4热敏打印模块

2.4.1 打印系统的组成

选择一款带图形打印的打印系统,打印系统的中控和智能衡器的MCU通过串口方式通信,在打印之前首先要制作打印的图形并以位图的格式设计好,然后将位图数据通过串口传输到打印系统,调用特定的指令进行图形打印.

目前图形化数据在人们的数字化生活中应用越来越方便,在图形打印中引入了应用比较广泛的EAN13条形码和Qrcode二维码.EAN 13条码技术是一种广泛应用于图书、期刊的条形码,它集编码、印刷、识别、数据采集于一体[8],用其来记录交易数据,前6位为商品编号,后6位为商品总价,最后1位为校验位,具体打印图形如图9所示,为了以后方便对商品进行溯源,图10添加了数据容量较大的二维码.

图9 普通打印格式

图10 带溯源码打印格式

2.4.2 位图的设计及传输

在位图数据传输之前,在Qt要先通过Qbitmap类创建位图,然后再使用Qpainter类对位图进行绘制,关键代码如下:

图11 位图绘制代码

绘制结束后就可以通过串口将数据传送到打印系统中进行打印,由于位图数据通常比较大,达到10~20 kB左右,所以将串口波特率设置为115 200 Baud.在Linux系统中串口的实现使用的是符合可移植操作系统接口(POSIX)规范的termios结构.通过对termiso结构的配置,实现读写串口和读写文件相同函数处理方式,传输、接收数据时直接使用write()、read()函数.

3 实验结果与分析

为了测试智能衡器终端,在阿里云服务器上租了一台公网服务器,公网IP地址为121.42.13.176,在服务端的程序监听6666端口数据,同时将衡器终端的IP地址和端口号设置成公网的服务器的IP地址和端口进行连接如图12(a)所示,当销售成功时在服务器终端接收到数据如图12(b)所示.

图12 网络性能测试

为了测试终端和数据通信性能,使用测试脚本在智能终端上和服务器之间进行通信,分别设置数据量Q为10、100、1 000、10 000条交易记录,每条交易记录的通信间隔时间T为5、4、2和1 s,测试记录如表3所示.

表3 智能衡器网络通信性能测试

测试表明在时间间隔为5 s左右的时候通信性能非常好,服务端收集的数据比较完整,符合一般交易数据采集的要求.

图13 打印模块

打印模块测试,主要是按照3.4节中的方式,打印200条交易记录,通过“我查查”软件进行一维码和二维码的解码,测试通过率100%,打印模块如图13所示.

4 总结和展望

本文作者设计的智能衡器经测试能够便捷地接入网络,拥有良好的人机交互界面,操作人员能够通过键盘和其交互,同时配备销售记录打印功能,达到预期设计目的.智能衡器主控如图14(a)所示,系统初始化和称重界面如图14(b)和(c)所示.

智能衡器的设计和实现方便了传统行业通往“互联网+”的时代,与此同时还有很多亟待解决的任务和技术难题.首先,虽然智能衡器能够很好地接入到互联网中,能够便捷地访问网络资讯,但是选择什么样网络接入方式以及如何进行网络接口协议的定义是下一步研究和探讨的一个方向;其次,目前在网络安全方面拥有很多的解决方案,但是如何在嵌入式设备的处理性能和嵌入式设备网络安全之间寻找一个平衡点也是下一步工作的一个方向;最后,智能衡器作为一个新兴的嵌入式设备,如何降低其成本,使其能够真正成为传统行业和“互联网+”时代的一个“桥梁”也是今后的研究方向.

[1] 刘爱平.基于嵌入式系统的网络智能衡器控制平台 [D].济南:山东大学,2007.

Liu A P.Network intelligent weighing control platform based on Embedded System [D].Ji′nan:Shandong University,2007.

[2] 郑文广.国外电子衡器的现状与对策 [J].衡器,2015(07):6-8.

Zheng W G.Foreign electronic weighing instrument of the present situation and the countermeasures [J].Weighing Instrument.2015(07):6-8.

[3] 张茁.无线WIFI技术应用现状及发展分析 [J].数字技术与应用,2014(6):44.

Zhang Z.Application and development of wireless WIFI Technology [J].Digital Technology and Application,2014(6):44.

[4] 贾仕俊,秦开宇,陈华伟,等.基于QT的数据图形化设计与分析 [J].软件导刊,2011(7):156-158.

Jia S J,Qin K Y,Chen H Y,et al.Design and Analysis of Data Graphical Based on QT [J].Software Guide,2011(7):156-158.

[5] 盛蕾.WIFI网络研究及基于Linux的测试平台的实现 [D].上海:同济大学,2007.

Sheng L.Research of wireless network and implementation of the WIFI test platform on Linux [D].Shanghai: Tongji University,2007.

[6] 潘学文,文汉云.基于Qt4的SQLite数据库应用编程 [J].电脑编程技巧与维护,2011(4):49-50.

Pan X W,Wen H Y.SQLite Database Application Programming Based on Qt4 [J].Computer Programming Skills & Maintenance,2011(4):49-50.

[7] 田福英.基于Linux Qt的软键盘设计与实现 [J].计算机与现代化,2011(12):179-181.

Tian F Y.Design and Implementation Methods for Soft Keyboard Based on Linux Qt [J].Computer and Modernization,2011(12):179-181.

[8] 张淼,赵冒童.基于STM32F103RBT6芯片的USB键盘设计与实现 [J].福建电脑,2014(12):122-125.

Zhang M,Zhao M T.Design and implementation of USB keyboard based on STM32F103RBT6 chip [J].Fujian Computer,2014(12):122-125.

[9] 李杰,方仲民,刘云.条码技术与应用 [M].北京:清华大学出版社,2003.

Li J,Fang Z M,Liu Y.Bar code technology and Application[M].Beijing: Tsinghua University press,2003.

(责任编辑:包震宇)

TheresearchandapplicationofsmartweighingapparatusbasedonLinuxandQt

Shen Danlai,ZhaoGengming*,QiQinqin

(The College of Information,Mechanical and Electrical Engineering,Shanghai Normal University,Shanghai200234,China)

Through the investigation on the current weighing products,with the demand on development of modern weighing industry as the basis,this paper proposed a novel design of smart weighing apparatus. It takes ARMllS3C6410as the MCU and embedded Linux as control system,and uses Linux and Qt to complete the control procedures and man-machine interface.It aloe uses WIFI communication technology to complete the remote communication and data acquisition.We use the STM32chip to design the USB keyboard and use thermal printer to print transaction records.The approach based on the traditional weighing apparatus,joined with the network and database technology,makes the weighing apparatus more intelligent.Test results show that the system is stable,reliable and easy to operate.

smart weighing apparatus; Qt; embedded Linux; ARM; man-machine interaction

2015-11-17

沈丹来(1989-),男,硕士研究生,主要从事计算机系统结构方面的研究.E-mail:17721129316@163.com

导师简介: 赵梗明(1959-),女,副教授,主要从事嵌入式系统的开发和应用方面的研究.E-mail:gengming@shnu.edu.cn

TP311.5

:A

:1000-5137(2017)04-0506-08

*

猜你喜欢

衡器键盘嵌入式
你知道手机拨号键盘上为什么要有*和#吗?
影响衡器检定准确度的因素分析及完善措施
键盘猫
Cлово месяца
ikbc R300机械键盘
搭建基于Qt的嵌入式开发平台
影响衡器检定准确度的因素及解决方法分析
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器