基于云平台与MQTT协议的售货系统设计

2021-05-24 10:34骆德汉
物联网技术 2021年5期
关键词:售货客户端服务器

向 瑞,骆德汉,幸 兴

(1.广东工业大学 信息工程学院,广东 广州 510006;2.广东瑞德智能科技股份有限公司,广东 佛山 528000)

0 引 言

随着“物联网+”概念的兴起,人们对售货机期待的发展方向是:设备功耗低、支付方式数字化、购物界面清晰明了化、设备连接速度更加迅速[1]。

基于以上需求,文中设计了售货机控制硬件,采用支付宝、微信移动支付技术[2],以微信小程序作为购物的显示界面,为了快速连接并且处理保存大量的订单数据以及设备状态数据,该系统将MQTT(Message Queuing Telemetry Transport)协议与4G通信技术相结合,并且采用云服务端保存各项处理数据。该系统满足人们所期待的需求并且能够实时监控设备,支持多用户同时购物,具有广阔的应用前景。

1 系统总体设计

系统总体设计分为两大模块:售货机硬件及其驱动程序、售货显示页面和支付后台程序。系统总体结构如图1所示,售货系统流程如图2所示。

图1 系统总体结构

图2 售货系统流程

通过微信小程序,用户进行购物请求,服务器接收到请求后调用支付程序接口,并且将正在进行交易的设备信息进行保存,然后调用MQTT协议的API(Application Programming Interface, API)进行消息发布。

售货机硬件部分的4G模块接收到MQTT协议发送的msg之后进行数据解析,然后调用核心控制板的电机驱动程序打开货柜门。出货成功之后,云服务器记录本次交易数据,包括订单号、出货设备号、商品名等信息,最后向用户返回交易完成的信息。

2 售货机硬件设计

硬件设计包括4G通信模块、以SWM220P6T7控制芯片为核心的控制板模块、电机驱动模块、出货检测模块、电源转换模块。硬件总体构成如图3所示。售货机硬件实物图如图4所示。

图3 硬件总体构成

图4 售货机硬件实物图

控制模块采用华芯微特SWM220P6T7作为主控芯片,该芯片内嵌ARM Cortex-M0内核,其特点是高性能、高可靠性、超低功耗、多通信接口,包括多个UART接口、SPI通信接口和I2C接口,其正常模式工作电流为20 mA。MCU驱动4G模块CU101-G,并承担主控芯片与4G模块的通信服务。除此之外,主控芯片还要驱动出货电机,所以必须具有电机位置检测和堵转检测、红外检测出货、充电及断电检测等功能[3]。

4G通信模块采用中国联通4G模块CU101-G实现远程网络通信功能,采用base64编码和JSON(JavaScript Object Notation)数据格式与云服务器传输数据[4]。该模块支持自定义心跳包,支持标准的MQTT协议,具有扩展AT指令集和数据传输功能,同时其工作能耗低。

电机驱动模块采用直流电机驱动,MCU的I/O口的驱动能力达不到驱动电机的效果,因此在I/O口的输出端加入一个NPN的三极管和NCE55P15K的MOS管。用2个I/O口分别控制电机的2个端子就可以启动电机,在I/O口输出PWM(Pulse Width Modulation)信号就可以进行电机调速[5]。电机驱动的正负极与I/O口的连接如图5所示。

图5 电机正负极接口电路

由于电机驱动电压与MCU供电电压不一致,电机驱动需要24 V电压,MCU需要3.8 V供电,所以采用XL1509芯片降压,其具有良好的负载驱动能力,且纹波低。通过芯片的VIN端输入24 V电压,芯片输出端就会输出3.8 V的电压[6]。电压转换模块电路如图6所示。

图6 电压转换电路

出货检测模块是由一个红外检测模块组成,该红外检测模块发射红外光,当有物体被接收管接收时,检测货物是否被取走,当货物被取走时,返回消息给服务器,即与用户本次交易已经完成。

3 客户端与服务器软件设计

现在市面上的售货机常常自带显示屏幕,但是本文设计的售货机是通过机器上的二维码进入微信小程序,然后在微信小程序上进行购物操作。相比较而言,本文售货机功耗更低,机器出现问题时便于维修,显示界面清晰,操作更加简单。微信小程序操作界面如图7所示,软件设计流程如图8所示。

图7 微信小程序界面

图8 软件设计流程

客户端与服务器的通信方式是WebSocket和HTTPS,微信小程序基于HTTPS协议和TCP/IP协议与服务器端进行数据通信[7]。客户端与服务器端通信的数据格式为JSON数据格式[8]。客户端发送数据的格式如下:

客户端与服务器的连接采用长连接的方式,客户端会发送一个心跳包和对应的时间戳保持与服务器的连接状态,时间戳是一个关键信息,系统判断交易时间是否超时的依据就是时间戳,时间戳可以转换为当前时间。当客户端向服务器发送购物请求时,客户端需要提供IMEI(International Mobile Equipment Identity)号、订单号、时间戳等信息。服务器接收到该信息后进入订单轮询状态,判断订单时间是否超过规定的阈值,同时,服务器会向客户端返回轮询的结果。如果订单没有超时,服务端通过MQTT协议推送出货的消息,售货机4G模块收到出货的信息后,经过MCU调用电机驱动模块,完成出货,并且向服务器返回出货状态,由服务器保存记录本次交易信息;如果订单超时,服务器向客户端发送订单超时信息,并且取消本次订单。支付程序测试效果如图9所示。服务器与客户端传输的JSON数据格式参数说明见表1所列。

图9 支付测试程序效果

表1 JSON数据格式参数说明

4 MQTT协议

MQTT协议是一种轻量级的消息传输协议,其消息传输形式为主题发布/订阅的方式[9],是基于TCP/IP协议改进而来,由于其可以适应低带宽、网络不可靠、嵌入式处理器等环境条件,所以被广泛应用在M2M通信中[10]。本系统MQTT结构如图10所示。

图10 MQTT结构

基于售货机应用场景需求,通过MQTT协议建立消息转发机制,并且采用云端服务器与MQTT融合的方式,实现了一个服务器同时与多个客户端连接的网络通信模式,并且可以远程登录服务端实时查看交易信息。

MQTT固定报文头最少是两个字节,第一个字节是消息类型Qos级别等标志位,第二个字节开始是字节总长度,包括可变报文头和消息负载[11],该字段最多允许4 B。该协议相比HTTP,资源开销小、网络流量消耗低,而且网络实时性好。但是由于MQTT属于应用层协议,其安全性缺乏保证,所以在应用层MQTT需提供用户名和密码方可进行用户检测,同时在传输层使用TLS加密,以此提高数据安全性。

5 结 语

本文设计了一种基于售货硬件、云平台、MQTT协议融合的售货系统,该系统可使用移动支付的方式,购物页面采用微信小程序显示清晰明了,4G通信模块和MQTT的低流量消耗和低延迟保证了系统连接的快速性。由于售货装置小巧轻便、功耗低,几乎不会受到空间限制,可以将其放置在酒店房间中,方便顾客购物,如果将购物平台与酒店管理平台进行融合,将会有更加广泛的应用市场。

猜你喜欢
售货客户端服务器
“自动售货”,主动监管!
科技背景下售货机器人控制方法研究
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
客户端空间数据缓存策略