思兼的 KlipperBox 套件之打完安全关机插座介绍

前言

原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正交流。

本智能插座方案实现 非侵入式 的 Klipper 3D 打印机的电源管理(以 打完安全关机 为例)。

  • 所谓 非侵入式,就是无需改变原有打印机电路,即插即用。

  • 所谓 安全关机,就是在打印完成后,先自动关闭上位机操作系统,再断开打印机电源。

至于为什么要安全关机,这是由于 Klipper 的上位机(树莓派等)其实相当于一台卡片微型电脑,麻雀虽小但五脏俱全,其上运行着 Linux 操作系统。如果你日常关闭家中的计算机是通过关机按钮,那么相信你明白我在说什么;否则如果你日常关机靠拔电源,那这篇文章可能不适合你,对于这样的莽士,我还是有两点要说:

  1. 系统、存储硬盘/ SD 存储卡等现在没坏不代表以后不会坏,也不代表直接拔电关机是对的;
  2. 请及时备份当前用户 home 目录下的 klipper_configs 文件夹内的配置文件。

【电脑主机在哪里?】支持双 4K 显示器输出的 RaspberryPi 4b。 source: pcworld.com


文章如有更新请访问 DFRobot社区 或者 cnblogs博客园(排版更好)

欢迎对 Klipper 固件、KlipperBoxOS 感兴趣,以及对改版 CNC 加工的 Voron 三叉戟、v0、v2.4 感兴趣的朋友加群交流(QQ Group:490111638)

1、Why | Klipper 电源管理的背景介绍

1.1 打完关机的必要性

  • 节省电力
  • 提高无人值守的用电安全性

1.2 传统的打完关机方案与不足

  • Marlin上的 打完关机模块 或者 普通继电器
  • 普通远程智能插座 或者 带电量统计功能的智能插座

image-20220313225817132

由于现在越来越多的朋友选择将上位机封在电器仓内,从主板/开关电源直接取电,以上方案不尽完美:

  • 或仅适用于上位机独立供电的情况
  • 或需要更改原有电路
  • 或对于非独立供电,其结果就是 直接切断电源,导致上位机系统非正常关机,最终造成系统损坏无法启动或者文件丢失

1.3 东半球比较完美的打完安全关机方案

理论基础可以参考前文 智能插座与 Gemini 主板[电源管理完结] ,有兴趣的朋友可以参考自行实现这种插座。借助 moonraker 的隐藏参数,我们获得了一个比较完美的方案:运行 Tasmota 固件的智能插座。

image-20220313233837002

优点:

  • 非侵入式,无需改变原有电路,即插即用
  • 可以实现智能电源管理(不仅限于打完安全关机)
  • 可以实现切片上传完成后自动为打印机上电(上位机独立供电时)
  • 可以实现远程操作打印机上电(上位机独立供电时,经过设置后可以实现外网控制)
  • 支持 MQTT 协议,支持集成到 Home Assistant 等智能家居系统
  • 无需自行搭建 Home Assistant 服务器
  • 借助思兼的一键脚本,无需繁琐设置
  • 支持 KlipperBoxOS v2,也支持其他上位机使用
  • 支持 Fluidd/Mainsail 等网页控制安全关机
  • 支持拓展功能,如配合炒面检测(打印失败检测),保护性计划外自动断电前,发送通知请求确认

缺点:

  • Tasmota 固件仅支持 ESP32、ESP8266 无线智能芯片的插座,导致选型困难
  • 市面上没有出厂搭载 Tasmota 固件的智能插座,需要自行费时费力烧录测试固件
  • 无损拆解智能插座并进行固件烧录是个难题

由于以上问题,导致很长时间我都是使用 HA 来控制智能插座,也使得这批 Tasmota 智能插座数量稀少。

2、What | Kbos_Plug 简介

型号外观与硬件参数

【Qutiger WSP-2UCHN--01】

  • 额定电压:100-250V
  • 最大电流:10A
  • USB 输出:5V--2.1A (双 USB 接口共享)
  • 无线连接:WiFi IEEE802.1b/g/n 2.4Ghz & Bluetooth
  • 基于 ESP32 高性能智能无线芯片
  • 提供两个 USB-A 供电接口

实现效果:

  • 支持打完且喷嘴冷却到 [50℃] 以下时自动安全关机
  • 支持非打印状态下空闲超过一定时间后自动安全关机

3、How | Kbos_Plug 的使用

3.1 设置智能插座无线网络

收到插座后,接通电源,稍等片刻便可以搜索到名为 tasmota_XXXXXX-#### 的无线热点,连接上去并打开网址:http://192.168.4.1 即可进入智能插座设置界面。

image-20220813190439351

image-20220813190515394

注意:

  • 热点只会存在 3分钟,需要给插座重新上电才会再次出现。
  • 新界面会提示你输入当前无线网络的用户名和密码,注意目前仅支持 2.4GHz 无线网络。
  • 连接无线网络后在当前页面会自动刷新设备IP地址,请务必记牢
  • 如果没有显示 IP 地址或者忘记了,可以在路由器管理页面内或者使用 Fing 等局域网扫描软件查看(如果没有路由器访问权限)。

3.2 喜闻乐见的一键设置脚本

买过我摄像头的朋友,应该不陌生,这里同样提供方便好用的一键脚本:

# 注意命令之间有空格,其中 [ip] 为上面记录的智能插座IP地址,[auth]为认证密钥,请咨询我获得。
curl -fsSL http://klipper.7130404.xyz:8001/add_plug.sh | bash -s -- [ip] [auth]
# 例如 curl -fsSL http://klipper.7130404.xyz:8001/add_plug.sh | bash -s -- 192.168.0.254 greedisgood

3.3 自定义设置

  1. 输入 M81(关机) 指令后,系统将会自动关闭上位机系统,在 [10s] 后断开打印机电源
  2. 可以设置智能插座访问密码,避免意外非授权操作
# 修改 moonraker.conf
[power Kbos_Plug]
type: tasmota
address: 192.168.0.201        # 请设置正确的设备 IP 地址
timer: 10                     # 请设置合适的延时时间以等待上位机系统安全关闭,单位:秒
locked_while_printing: False  # 打印过程中禁止关闭电源,默认不启用(False)
# password: mypassword        # 启用智能插座密码访问功能
  1. 打印机处于空闲状态 [360s] 后,会关闭步进电机和所有加热器,并在 [60s] 后执行 M81 指令
  2. 以上所有使用 [] 括起来的参数可以自行设置。
# 修改 misc/Kbos_Plug.cfg
#####################################################################
#  延时(挤出头降温)自动关机
#####################################################################
[idle_timeout]
# https://www.klipper3d.org/Command_Templates.html?h=update_delayed_gcode#delayed-gcodes
# https://github.com/Klipper3d/klipper/issues/3865 | Firmware Restart 之后,要先home之后才会进入空闲状态
# 空闲状态360s后关闭电机和加热头,60s后关闭电源
gcode:
  M84
  TURN_OFF_HEATERS
  UPDATE_DELAYED_GCODE ID=delayed_printer_off DURATION=60
timeout: 360

3.4 进阶电源管理

主要适用于上位机独立供电的场景,这里介绍 切片完成后自动打开打印机电源 的功能,参考 Power on G-Code Uploads 进行配置即可,此时无需启用智能插座延时功能。

4、Tasmota 固件为什么不启用 mDNS?

It generates more problems than it solves.

Source: github.com

5、购买途径

可以从我的闲鱼主页购买(sjqlwy)粉丝有优惠;或者参考我之前的文章自行实现。

posted @ 2022-08-13 19:21  思兼  阅读(1788)  评论(0编辑  收藏  举报