当前位置: 首页 > news >正文

香橙派One安装OctoPrint 实现控制3D打印机

目录

  • 1 安装OctoPrint
  • 2 启动OctoPrint,进行初始化配置
  • 3 安装中文语言包
  • 4 配置OctoPrint服务
  • 附录:systemctl命令权限问题解决方法

系统环境如下图
Ubuntu 20.04 Server,使用orangepi普通用户
在这里插入图片描述

1 安装OctoPrint

首先创建目录,作为安装路径。

mkdir OctoPrint && cd OctoPrint

安装必要软件包

sudo apt install python3 python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential libffi-dev libssl-dev

创建并激活虚拟环境

python3 -m venv venv
source venv/bin/activate

终端提示符前看到venv字样,说明虚拟环境已经激活
在这里插入图片描述

可以先配置一下pip镜像,设置为清华源

pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

执行命令安装OctoPrint

pip install --upgrade pip wheel
pip install octoprint

我这一步耗时比较长,主要是编译比较慢。耐心等待即可。
在这里插入图片描述

然后给用户添加访问串口的权限

sudo usermod -a -G tty orangepi
sudo usermod -a -G dialout orangepi

2 启动OctoPrint,进行初始化配置

启动octoprint,使用以下命令

~/OctoPrint/venv/bin/octoprint serve

在这里插入图片描述

浏览器访问 http://<香橙派IP>:5000,可以看到初始化页面

在这里插入图片描述
首先设置用户名和密码
在这里插入图片描述

其他设置自行配置即可。初始化完成,可以看到OctoPrint界面

在这里插入图片描述

3 安装中文语言包

打开设置,选择【appearance】,点击【manage】
在这里插入图片描述

这里可以上传语言包。语言包可以从这个Github仓库 Octoprint-i18n-zh_Hans_CN - Awkee - GitHub 找到。这个语言包不是最新的,但基本功能都有翻译。

在这里插入图片描述

这里不知为什么,上传语言包后没反应。自己尝试出了另一种方法,也可以汉化:

进入用户文件夹的.octoprint/translations/路径,可以看到现在是空的

cd .octoprint/translations/

在这里插入图片描述

然后将解压后的语言包复制到该目录,确保目录结构如下:
(即.octoprint/translations/zh_Hans_CN/LC_MESSAGES路径存在messages.momessages.pomessages.zh_CN.momessages.zh_CN.po这四个文件,可以用ls -R命令确认)

在这里插入图片描述

再次打开语言界面,就能看到手动上传的语言包了

在这里插入图片描述

然后重启OctoPrint,就能自动切换为中文了(页面语言根据浏览器语言自动切换,如果不能自动变为中文,可以在这个设置处手动更改)

在这里插入图片描述

4 配置OctoPrint服务

接下来创建服务,使OctoPrint可以开机自动运行。

sudo nano /etc/systemd/system/octoprint.service

填写下面内容。其中可执行文件的路径需要根据自己的环境修改。可以先将ExecStart路径手动放在终端执行一次,确保可以启动,然后再填写服务配置文件。
在这里插入图片描述

[Unit]
Description=The snappy web interface for your 3D printer
After=network-online.target
Wants=network-online.target[Service]
Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"
Type=exec
User=用户名
ExecStart=/home/用户名/OctoPrint/venv/bin/octoprint serve[Install]
WantedBy=multi-user.target

完成后,使用ctrl+s保存,ctrl+x退出

然后执行命令,启用该服务。

sudo systemctl enable octoprint.service

确保现在没有使用命令~/OctoPrint/venv/bin/octoprint serve手动启动的OctoPrint实例,然后执行下面命令,启动OctoPrint

sudo systemctl start octoprint

可以使用命令检查一下服务是否启动成功

sudo systemctl status octoprint

看到running,说明服务启动正常,可以打开网页测试。
在这里插入图片描述

接下来配置重启OctoPrint的命令。有时候修改配置文件后,需要重启才能生效,如果每次都通过ssh连接到香橙派,执行systemctl restart octoprint命令,就有些麻烦。还好OctoPrint提供了在网页执行上述命令的方式。

打开设置,在【服务器】这一栏中,填写重启OctoPrint的命令systemctl restart octoprint。当然也可以顺便把重启系统和关机的命令也添加进来。

在这里插入图片描述

保存后,可以看到右上角多了一个电源图标,点击它,就能看到重启OctoPrint的按钮了。

在这里插入图片描述

之后可以参考香橙派手册,启用40pin GPIO中的串口。在OctoPrint中选择正确的串口和波特率,就能和打印机通信了。


附录:systemctl命令权限问题解决方法

后面在另一台linux主机上安装OctoPrint时,发现systemctl命令无法执行,普通用户没有权限,提示Interactive authentication required.

在这里插入图片描述

加上sudo命令执行时,提示需要密码,如果通过命令传递密码,很不安全。

在这里插入图片描述

找到一种方法,可以为指定用户设置无需密码就能执行某个命令。

执行 sudo visudo,添加如下内容,允许用户使用/bin/systemctl restart octoprint命令,且不需要输入密码验证。

用户名 ALL=(ALL) NOPASSWD: /bin/systemctl restart octoprint

这样设置后即可运行。


参考资料:

  • OctoPrint官网
    OctoPrint The snappy web interface for your 3D printer
  • 安装过程参考
    Setting up OctoPrint on a Raspberry Pi running Raspberry Pi OS (Debian)
  • 汉化教程
    OctoPrint汉化 本地中文部署教程 - CSDN
  • 使用的中文语言包(非最新版,存在汉化不完全的情况)
    Octoprint-i18n-zh_Hans_CN - Awkee - GitHub
http://www.dtcms.com/a/304276.html

相关文章:

  • WebRTC 2025全解析:从技术原理到商业落地
  • 容器技术原理(一):从根本上认识容器镜像
  • Linux boot 目录损坏如何修复:从救援模式到系统恢复
  • APK重打包流程
  • K8s集群两者不同的对外暴露服务的方式
  • 如何迁移gitlab到另一台服务器
  • Makefile 快速入门指南
  • LangChain和LangGraph 里面的 `create_react_agent`有什么不同
  • 机器学习—逻辑回归
  • VitePress学习-自定义主题
  • 使用 Django REST Framework 构建强大的 API
  • 在依赖关系正确的情况下,执行 mvn install 提示找不到软件包
  • Python Day17 面向对象 及例题分析
  • Apache Ignite 的分布式队列(IgniteQueue)和分布式集合(IgniteSet)的介绍
  • 集成电路学习:什么是Wi-Fi无线保真度
  • 机器学习sklearn:泰坦尼克幸存预测(决策树、网格搜索找最佳参数)
  • 永磁同步电机无速度算法--静态补偿电压模型Harnefors观测器
  • 泛微E9 引入高版本spring导致webservices接口报错
  • vue2 使用liveplayer加载视频
  • 【初识数据结构】CS61B中的基数排序
  • 彻底清理ArcGIS 10.2残留的步骤
  • 【自制组件库】从零到一实现属于自己的 Vue3 组件库!!!
  • 堆的理论知识
  • uniapp如何封装uni.request 全局使用
  • qt webengine播放视频
  • VS+Qt中使用QCustomPlot绘制曲线标签(附源码)
  • 002 TrafficGenerator 类详解
  • FCN语义分割算法原理与实战
  • 八股训练营 40 天心得:一场结束,也是一场新的开始
  • 力扣热题100--------240.搜索二维矩阵