APP下载

基于微信小程序的云打印系统设计

2020-09-10项靖赵陈萍

中国新技术新产品 2020年13期
关键词:微信小程序物联网

项靖 赵陈萍

摘  要:随着物联网技术和移动设备的快速发展,许多互联网+产品走进人们的生活。微信小程序并不需要用户下载和安装应用程序,用户只需要扫一扫即可打开。云打印系统能够上传用户需要打印的文档,选择就近的打印点进行打印,学生不必出学校就可以享受打印服务。相比于传统的打印服务,云打印不需要排队等候,更加方便快捷。

关键词:微信小程序;云打印系统;物联网

中图分类号:TP311               文献标志码:A

1 系统简介

近年来,随着云计算、物联网、嵌入式等技术日趋成熟,以及移动设备的快速发展,许多互联网+产品走进人们的生活,越来越多的产品向着无线化、网络化、智能化的方向发展,基于物联网技术的智能硬件从理念变为现实。

在学习工作和生活中,打印机是人们常使用的设备,而微信更是不可或缺的工具,两者相互结合可以实现远程打印,其相较于传统的打印流程更安全、快捷。

该文设计并开发了一种基于微信小程序的云打印系统,用户只需要上传需要打印的文件,系统就可以自动进行打印服务,最后只需要到指定的地方取件便可以完成一次服务。

1.1 主要研究内容

云打印系统旨在实现一个基于互联网+的打印服务平台,其能够让打印更加智能化、便捷化。该文的主要研究内容包括云打印系统的设计、微信小程序的设计、研究阿里云服务器部署软件和数据库设计。

该文制定了云打印系统和微信小程序之间交互的解决方案,对用户上传的文件进行合理地保存。同时专门设计了方案对用户的登录状态进行维护。基于Java开发并使用MySQL作为数据库,微信小程序采用微信开发者工具设计。

该文研究并解决了服务器和终端之间的通信问题,因为终端采用Wi-Fi接入互联网,无固定IP,服务器无法访问,所以通信十分困难。

云打印系统的数据采用Socket连接发送,系统将打印数据封装成包,然后发送到终端,终端再解析数据包,获取需要传输的文件地址、FTP端口、账号和密码等信息[1]。终端传输完信息后再进行打印。

终端采用PDFBox工具控制打印机,Apache PDFBox是一个开源的Java库,支持PDF文档的开发和转换[2]。使用这个库可以开发创建、转换和操作PDF文档的Java程序。

1.2 技术创新之处

与其他类似的打印解决方案相比,该系统的创新之处有2个。1)提出利用微信小程序,通过小程序完成文档的远程打印模式。2)采用云服务器来处理用户上传的打印资料,终端经过Wi-Fi+FRP的方式来传输数据。

2 系统功能需求分析

该系统由打印机终端和云服务器组成。终端部分的主要功能包括接收云服务器数据和控制打印机,完成经无线网络接入互联网与云服务器进行通信,以及对各种文档、照片进行处理和打印,云服务器的主要功能包括微信小程序设计和云打印服务设计。

2.1 软件方面功能描述

2.1.1 微信小程序功能描述

用户可通过小程序上传文档、照片等文件,并且能够浏览、操作已经上传的文档、照片等文件。

用户可打印已上传的资料,查看打印状态、浏览历史订单等信息。

2.1.2 云服务器功能描述

云服务器能处理微信小程序的业务信息,提供打印数据下发的云端打印服务。

2.2 硬件方面功能描述

可接收云服务器下发的打印任务和数据,进行打印作业,返回打印结果并记录打印操作。

3 系统总体方案

根据对系统功能的需求分析和相关技术研究,制定了系统的总体设计方案,其流程如图1所示。

云打印平台是为小程序和打印终端服务的一个系统,由云服务器和云打印系统组成,系统要处理小程序发送的POST请求,处理用户的业务。还能接收储存用户上传的文件、图片等数据,并生成打印任务,下发到打印终端。同时能够分析打印终端的HTTP请求,判断打印任务是否完成。

打印终端是用来完成云打印的设备,通过Wi-Fi连接互联网与云服务器进行通信,当收到系统发送的打印命令时,终端对数据进行分析并执行打印操作,完成打印工作后,将文件状态返回给云服务器。

4 打印终端设计方案

打印终端是接收打印任务和处理打印任务的一个设备。云服务器发送数据到设备,该系统通过无线连接的方式来传输数据。目前无线网络的覆盖情况十分良好,为打印终端在实际应用的过程中提供了良好的基础。

该设计中采用Z3735F主板作为基础,微处理器采用的是Intel Atom Z3735F。该主板采用3 V直流电源供电,2G内存,32GB存储。

终端系统采用CentOS作为操作系统,由于云服务器不能直接通过网络访问终端设备,因此需要内网穿透工具,该系统使用FRP内网穿透软件,可以完成从公网到FRP(服务器)到终端的连接。打印端通过监听指定端口,获取云服务器数据,通过FRP设置指定端口接收数据。

5 云打印系统设计

5.1 用户登录设计

微信小程序并非传统的Web网页,不能保存收到的會话信息,这使得每次请求到后台服务端都会创建一个新的会话ID,后端服务器就不会保存小程序的登录状态。解决方法是封装自定义微信请求,在小程序端获取会话信息时,将其保存到本地,后续请求时,再从本地取出,添加到header请求里。

在用户打开小程序时,会请求微信服务器返回独有的验证数据,再携带这个数据去请求云服务器,云服务器再请求微信服务器获取用户的ID(openid)和会话秘钥(session key),生成用户初步数据并存储在数据库中。openid是普通用户的一个唯一标识,因此系统可以根据openid判断用户。

5.2 用户上传文件设计

将本地资源上传到云服务器。页面通过wx.chooseImage等接口获取到一个本地资源的临时文件路径后,可以通过该接口将本地资源上传到指定服务器中。发起一个HTTPS请求,其中Content-Type为multipart/form-data。小程序还可预览上传的图片,实现删除功能。

上传文件后,每个文件会生成唯一的文件ID,用户文件表的file_state字段用来记录文件状况,wait_order状态说明文件已经上传,等待下单,同时也会生成socket_file表数据,记录文档打印份数和打印范围。

5.3 用户文件传输设计

云服务器和终端设备之间的文件传输是通过Socket连接来实现的,使用FRP时需要在终端和云服务器安装软件,并配置相应的端口。

设备启动时,会请求并携带信息向服务器注册该设备,该信息如图2所示,device_port字段代表服务器访问的端口号,建立连接时,可跟距用户选择的设备查询Device表,获取设备对应的端口号,建立Socket连接。

建立连接后,通过查询用户文件表中记录的文件地址获取文件,与socket_file表中的打印数据一起封窗成SocketFile对象,经Java的I/O数据流通过网络传输到终端,终端和云服务器有着相同的类文件,序列化对象并调用打印服务。

5.4 设备注册设计

设备每次启动时候都要更新数据库的信息,保证用户的发送数据都是向正确的设备发送的。终端设备根据自定义HTTP请求发送配置信息来发送数据。

6 结语

随着互联网时代的快速发展,云打印服务已逐渐成为社会发展的主要方向。该课题根据该校的一些基本现狀,以提升学生打印服务效率、降低打印成本为目的来设计云打印系统,实现了以互联网+为思想的创新创业目标。

参考文献

[1]玉亮.网络编程1[EB/OL].(2018-08-23)[2020-05-30].https://blog.csdn.net/qq_32417289/article/details/81980239.

[2]Sky浪翻云.PDFBox简介[EB/OL].(2012-05-16)[2020-5-30].https://www.yiibai.com/pdfbox/pdfbox_overview.htm.

猜你喜欢

微信小程序物联网
当图书馆遇上微信小程序
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者