物联网不求人-3D打印机伴侣(上)

物联网   2023-10-11 19:46   2165   0  

在上一期物联网不求人-服务器搭建So Easy教程中,我们学会了搭建常见的一些创客相关物联网服务器,让我们以最低成本拥有了自己的私有服务器,从此物联网不求人。对于一名合格的Maker来说,除了了解到一些物联网服务之外,我们还会接触到一些创客DIY神器,如3D打印机,激光切割机等。通常我们使用3D打印机都是将G文件拷贝到U盘或者SD卡中再插入到3D打印机当中进行打印,在这个过程当中,我们会时不时的来查看打印的进度和打印质量,偶尔还会有打印失败从而打印连成一坨或者是打印成“泡面”,这我怎么能忍?于是强迫症的我开始寻找如何能够愉快玩耍3D打印机的方法,经过不懈努力最终我找到了OctoPrint这个3D打印机控制神器。一开始我用的是创客朋友送的树莓派用来部署OctoPrint,但随着我的3D打印机增至四台而且由于众所周知的原因现在的树莓派价格贵的离谱,如果继续使用树莓派那么我重新部署三台OctoPrint服务器的价格都能让我继续再买一台3D打印机了。因此我决定用最低的成本来改造我的3D打印机,在上个教程当中我所使用的电视盒子足够便宜且配置不低刚好能够满足我的要求,因此我将改造的过程记录下来,希望能够帮助到拥有3D打印机的小伙伴,让我们愉快的使用3D打印机吧。

视频演示

下面让我们来看看OctoPrint控制打印的演示视频,该视频中我们使用电视盒子搭配M5 TIMER CAMERA X远程监测并记录打印过程,最后将打印过程通过延时摄影呈现给我们,让我们能够实时了解打印进度与打印状态,同时获得打印过程的录像(根据录像我们可以分析打印情况,若有打印失败情况的发生可以辅助我们寻找打印失败原因)。


所用硬件

  •  M5 Timer Camera X

5kxqcl.png

M5 Timer Camera X特点

  • 基于 ESP32 开发,支持 WiFi,蓝牙

  • WIFI图像传输

  • 定时休眠唤醒

  • 状态指示灯

  • 超低功耗设计

  • 内置140mAh电池

  • 一路拓展接口

搭建Octoprint需要哪些准备

硬件准备

  • 一个可以安装Armbian的任意开发板;

  • 一个U盘(至少16G用于写入镜像);

这里我们使用型号为CM311-1A电视盒子为例(实际上任何支持Armbian的盒子或者开发板都可以),此电视盒子为运营商宽带赠送,某鱼某多价格50+,配置为2+8G架构为ARM,与同为ARM架构的树莓派相比尽管没有千兆网口与USB3.0,但其价格感人,不足同等配置树莓派的1/10,作为个人第一款入门级服务器来说是绰绰有余的,购买时只需告知商店帮刷安卓系统可以从U盘启动系统即可。CM311-1A主视图如下:

5kxqpi.jpg

Armbian基础

Armbian”是一个基于Debian和Ubuntu的操作系统,专门为ARM架构的嵌入式设备设计。它支持多种ARM单板计算机,包括Raspberry Pi、Orange Pi、Banana Pi等,并提供了针对这些设备的优化版本,关于Armbian的详细信息与支持的开发板请访问Armbian官网进行了解。

Docker基础

Docker”是一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器,Docker基础可通过bilibili“Docker 10分钟快速入门”进行了解,通过Docker我们可以使用一条指令便可部署服务而无需理会各种环境与配置问题,在这里我们仅需了解镜像,映射端口与挂载点即可,这个我们将下面实际服务器部署中进行说明。

CasaOS基础

CasaOS”是一个基于Docker生态系统的开源家庭云系统,专为家庭场景而设计。致力于打造全球最简单、最易用、最优雅的家居云系统。使用CasaOS我们可以很方便的管理与配置我们的Docker应用并管理Armbian的文件系统(可通过文件共享将Armbian的文件挂载到电脑方便管理),其有一个特点就是可以随时修改已有Docker容器的任意配置项,如端口映射,挂载点等。

Octoprint基础

OctoPrint”是一款用于3D打印机的开源软件,它可以通过网络连接控制和监控3D打印机。OctoPrint提供了一个用户友好的Web界面,使用户可以远程控制打印机,例如启动和停止打印,调整打印机设置,查看打印进度和监控打印状态。此外,OctoPrint还支持各种插件,以扩展其功能,例如添加监控,导入和导出打印文件等。 OctoPrint一般通过树莓派或其他类似的单板计算机运行也可以使用Docker部署,但前提是你的设备至少具备一个USB口且支持串口。(下面会介绍到几个实用的OctoPrint拓展插件,让我们的更加便利的使用3D打印机)

开始服务器搭建

镜像烧录

准备一张16G的U盘使用文末附件中的镜像烧录工具烧录Armbian镜像

5kxnb4.png

Armbian初始配置

镜像烧录成功后插入靠近网口的USB口,插上网线并开启设备,等待路由器发现增加的设备后,通过ssh登陆设备,默认ssh账号为root密码为1234

登陆成功后出现下方界面(如果你是第一次使用盒子,请参考上一期物联网不求人-服务器搭建So Easy教程启动U盘启动系统设置)

5kxr4r.png


Armbian第一次引导,会要求你创建密码,密码设置字母加数字(简单数字密码不行至少8位密码),输入两次自己想要设置的密码并回车,出现下方提示后选择1并回车最后按Ctrl+C跳出如下图

6596_krju_4712.png

烧录镜像后系统并不能正确识别U盘的容量,因此想要扩容。输入命令armbian-tf扩容并选择e如下图

5kxniz.png


扩容时间与U盘速度与容量有关,容量越大需要的时间越长,扩容成功后如下图所示(扩容时间可能会持续几小时,此处可以去喝杯咖啡玩会游戏)

5kxpg1.png


安装Docker

扩容完成后接下来安装Docker,输入命令curl -fsSL https://get.docker.com/ | sh回车如下图(安装时间与网络环境有关)

5kxr1y.png


安装Docker成功后出现下方画面

5kxuz2.png



安装CasaOS

输入wget -qO- https://get.casaos.io | bash回车安装CasaOS如下图

5kxz44.png


出现如下字样后自动安装CasaOS

5kxxoi.png

等待一段时间后出现下方字样表示安装成功

5kxuei.png

CasaOS使用

浏览器访问Armbian的IP地址后出现下图所示界面

5kxwgr.png

点击开始按照提示输入用户名与密码创建CasaOS新用户

5kxuzm.png

用户创建成功后登陆出现下方界面

5kxxzh.png

点击Files图标可以在线访问与管理Armbian的所有文件,如下图所示

5kxydb.png

切换到Root根目录下选择dev文件夹,可看到ttyAML0与video0文件,看到此文件基本代表Armbian可以使用串口与USB摄像头(若你用的是其他设备使用Armbian,这两个文件不一定有可能有ttyAML0但不一定有video0,没有的就代表系统没有相关驱动,上个教程物联网不求人-服务器搭建So Easy中的系统就没有这两个驱动因此不能用于3D打印机的控制)

5kxyyk.png

5kxyab.png

将3D打印机插入盒子的另一个USB口可以发现增加了一个设备ttyACM0或者video1,video2等表示设备识别到了串口设备或者USB摄像头,下图所示为插入USB摄像头增加了video1与video2(此处只有一个USB口因此只能接入一个USB设备,可以通过USB集线器拓展多个USB设备,但可靠性较弱些)

5kxuzu.png

Octoprint部署

通过CasaOS可以通过网页在线使用ssh登陆Armbian系统,点击CasaOS主界面右上角第三个图标进入ssh登陆界面如下图

5ky5e2.png

输入ssh账号与密码后进入下图界面

5ky2ae.png

输入下方指令部署Octoprint如下所示(此处没有映射任何实体设备到Docker仅将容器的80端口映射到设备的81端口,因为设备80端口已被CasaOS占用)

docker run -d -v octoprint:/octoprint \
            -e ENABLE_MJPG_STREAMER=true \
            -p 81:80 --name octoprint \
            octoprint/octoprint

5ky5ha.png

等待Octoprint容器部署完成如下图

5ky7nm.png

关闭网页ssh并刷新网页可以看到其他容器里面一个名为octoprint的Docker容器如下图

5l9qpk.png

点击该图标设置端口号为上面的81端口并确定如下图(注意IP地址不要修改保持默认)

5l9pc9.png

点击保存后出现下面的界面

5l9r37.png

等待几分钟后点击octoprint图标自动跳转到如下界面表示Octoprint已经成功部署了

5l9r8k.png

按照提示完成Octoprint配置后出现下方界面,这里我们没有添加串口设备因此红色提示我们没有串口设备(此处篇幅有限忽略配置过程,不懂可以百度参考详细设置过程)

5l9xqh.png



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。