方统浩+吕宁
摘要:随着近年来3D打印逐渐融入我们的生活,传统3D打印服务模式的弊端也愈显严重,本文旨在对现有传统的3D打印服务上,运用云计算技术与传统3D打印相结合的方式,设计一种3D打印机网络云平台的设计方案,给用户提供新的解决方案和智能服务。经搭建测试后,平台的运作结果符合预期要求。
关键词:3D打印机;云计算;智能服务;云服务
引言
随着近年来3D打印逐渐融入我们的生活,其传统的打印方式的弊端也越显严重。传统的3D打印服务的有着“传统3D打印服务没有依靠云平台来作服务支撑”,“资源由于没有整合形成资源池,导致设备资源的调度极其不方便”等固有缺陷。所以本文的内容着力用“云”+“3D打印”的结合来解决传统3D打印方案的缺陷。
3D打印机+云的结合可以解决传统的3D打印不灵活的情况,可以实现“远程打印”,“一键打印”,“模型库共享”等功能,以提供全新的智能化3D打印解决方案。云平台有着“灵活”,“按需服务”,“无处不在的网络访问”等相对于传统平台的优势。
1 系统主要技术以及框架
1.1 3D打印云平台主要技术
其客户机采用了3D打印機+客户端的形式。3D打印机方面,主控平台采用Arduino MEGA 2560 + RAMPS,采用A4988步进电机驱动,人机交互采用LCD12864+HMI串口屏,与客户机通信方案有SD卡+Wifi+串口。服务器方面,采用CentOS操作系统,Web前端采用PHP,数据存储方面选择Mysql,在Web服务器方面采用Ngnix、技术。客户可以通过人机交互串口屏来实现3D打印机的本地打印,也可以联网通过云平台服务来进行一键打印与状态检测,以及模型文件上传下载等功能,实现“随时随地即可打印”。
1.2 系统框架
整体系统框架,如图2-1所示。
图2-1 整体系统框架图
2 3D打印机部分
2.1 Arduino Mega 2560 + RAMPS主控
Arduino Mega2560是基于采用ATmega 2560的AVR架构处理器的微控制板,其最大的特点在于拥有54路数字输入/输出,其中15路可以作为PWM输出,特别适合于大量IO接口的需求,16路模拟输入,4路UART接口,一个16MHz晶体振荡器。Mega2560属于Mega的升级版,Arduino平台相比于传统硬件平台,拥有社区,以及设计完善的软件模块等优势。
2.2 LCD12864 HMI串口屏
采用LCD12864 HMI串口屏作为人机交互的手段,其最大的特点在于开发速度极快,可以自行利用PC机进行对其UI编程,拥有可编程智能LCD,触摸显示屏,嵌入式图形界面,上位软件自动在线升级等特点。
2.3 HC-05蓝牙模块
蓝牙模块BT-HC05模块是一款高性能的主从一体可以设置的蓝牙串口模块,模块的接口有串口、SPI接口、USB接口,可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。产品开发中我们选用了串口进行通信。
2.4 软件部分
单片机编程采用Arduino Mega 2560 + RAMPS作为主控,可以跨平台开发,便捷灵活,方便上手。其程序初始化过程为:系统初始化、IO初始化、串口初始化、中断初始化、定时器初始化、HMI显示屏初始化。
3 客户端设计
3.1 本地打印
利用客户端程序,通过串口,Wifi,SD卡以及蓝牙的方式与3D打印机进行通信,来布置用户的打印任务,相对于传统打印没有什么较大的区别。
3.2 联网打印
利用云平台的优势,用户可以下载官方客户端,通过客户端访问服云端,实现例如“一键打印”,“模型上传”,“模型下载”,“在线3D工具”等功能以及各种行业解决方案。用户访问Web网站,账号与密码采用RSA加密算法进行加密存储于服务器的Mysql数据库中,用户通过HTTP协议GET请求与服务器进行通信,并且采用MD5校验算法来检验数据的完整性。
3.3 软件部分实现
3.3.1 图形用户界面
采用C++编程语言,图形用户界面应用开发采用比较流行的Qt程序开发框架,相较于传统的MFC与win32,Qt开发具有以下优点,如表3-1所示。
表3-1 Win32、MFC和Qt程序开发对比
可见,Qt除了运行效率低于传统的Win32与MFC,其余无论是从开发速度、可维护性、跨平台、学习难度等方面来讲,并且Qt可以解析HTTP协议,所以采用Qt作为图形用户界面。
3.3.2 客户端框架
考虑到Windows操作系统和Linux操作系统的一些内核设计上的差异性,由于Windows下多进程程序的开发对操作系统的开销十分巨大,决定采用多线程并发模式编程,采用高效的半同步--半异步并发模式。由于传统的半同步--半反应堆模式其中的循环队列需要临界区,所以其并发性会有瓶颈。而后者的循环队列采用的是原子性操作的管道(PIPE),所以采用高效的半同步--半异步并发模式。
其数据流走向过程如图3-1所示。
图3-1 半同步--半异步并发模式流程图
4 服务器设计
4.1 服务器开发环境
服务器操作系统为CentOS 6.7操作系统,相对于同样为Linux的Ubuntu,其特点在于CentOS相对于Ubuntu来讲更加稳定以及更加安全。用CentOS,不会因为在Ubuntu系统中安装带有Bug的应用程序版本而遇到任何稳定性方面的问题,这也是采用CentOS操作系统的原因之一。endprint
4.2 Nginx Web服务器
Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,通知支持IMAP、POP3、STMP服务。Nginx作为Web服务器,有着处理静态文件、索引文件以及自动索引效率高的优点;作为负载均衡器,内不支持Rails和PHP,并且也支持HTTP代理服务器,对外进行服务。同时支持简单容错和利用算法进行负载均衡
4.3 Web前端设计
采用PHP作为前端开发语言,采用AJAX方式与后端进行交互,来获得相关信息状态。
4.4 数据加密与数据存储部分
采用RSA加密算法对用户的用户名与密码进行加密,RSA算法是目前最具有影响力以及最常用的公钥加密算法,它能抵抗这个世界上绝大多数的密码攻击,已被ISO推荐为公钥数据加密标准。服务端接收其被加密过的用户名与密码,并将其储存在Mysql数据库中以方便后续查询。工作流程如图4-1所示。
图4-1 RSA加密算法与客户登陆流程图
5 系统测试
5.1 测试步骤
1.开启打印机,启动相关设备,可以尝试本地打印来测试打印机功能完整性;
2.通过浏览器访问相关网站,下载客户端程序;
3.登入客户端,输入用户名和密码,等待验证,进入客户端主控界面;
4.点击“模型库”,选中要打印的模型,点击“下载模型文件”;
5.点击“一键打印”,導入下载好的模型库,此时客户端和3D打印机液晶屏应该能正确显示打印进度以及温度等信息,此时可以测试“暂停打印”与“继续打印”功能;
6.若可以打印且打印完成,可以将打印过程信息数据和模型上传云端,测试其数据上传功能。
5.2 测试设备
本测试方案的所需的设备包括:3D打印机一台;PC机一台;用于调试的PC机一台。
5.3 测试数据
利用Wireshark网络分析包软件来进行抓取分析客户端与服务器之间的通信数据包,
其服务器响应控制码如表5-2所示。
表5-2 服务器响应控制码表
5.4 测试结果
1.3D打印机启动无问题,最基本的本地打印功能无问题;
2.客户端程序下载无问题;
3.模型库浏览无问题。用Wireshark进行抓包分析,其中HTTP请求与响应无问题;
4.一键下载功能无问题,打印机启动,此时液晶屏显示3D打印机目前的打印信息,如打印进度,温度等信息;
5.打印完成,本地打印信息文件生成无问题,点击“上传云端”,无问题,服务器接收成功。
测试结果如表5-3所示。
表5-3 测试结果
6 结语
云计算平台是未来众多技术发展的趋势之一,随着“互联网+”模式的逐渐普及,云计算平台也逐渐走进大众生活。相信未来的不久,3D打印+云平台的服务模式将成为主流的服务模式。
参考文献:
[1]万伟康,赵康,王文博等.3D打印机网络服务的智能云平台设计[J].单片机与嵌入式系统应用.2016,33(03):19-22.
[2]张良杰,钟石根,郭凌等.基于物联网的在线打印出版云平台设计[J].信号与系统,2017,23(07):37-41.
[3]王文涛,刘燕华.3D打印制造技术发展趋势及对我国结构转型的影响[J].科技管理研究.2014,34(06):22-25.
作者简介:第一作者:姓名:方统浩(1996.10--);性别:男;籍贯:黑龙江省尚志市;学历:本科.endprint