Введение
3D-принтеры на базе прошивок Marlin и Klipper стали стандартом в аддитивном производстве — от хобби-мастерских до промышленных ферм. Однако даже самые продвинутые прошивки не умеют предсказывать сбои, уведомлять о проблемах в Telegram или автоматически перезапускать печать по внешней команде. Интеграция с AI-агентом ASI Biont решает эти задачи: вы подключаете принтер к облачному интеллекту, который анализирует телеметрию в реальном времени, управляет G-кодом и строит прогнозы. В этой статье — пошаговое руководство по интеграции Marlin/Klipper с ASI Biont через MQTT и SSH, с примерами кода и сценариями автоматизации.
Зачем подключать 3D-принтер к AI-агенту?
Стандартный 3D-принтер — это изолированное устройство: вы загружаете G-код через SD-карту или OctoPrint, запускаете печать и надеетесь, что всё пройдёт гладко. В реальности:
- 15-20% длительных печей (более 10 часов) завершаются сбоем из-за засорения сопла, перегрева или смещения слоёв (данные All3DP, 2025).
- Отсутствие мониторинга приводит к потере материала и времени — до 8 часов на один неудачный запуск.
- Предиктивное обслуживание требует сбора логов температуры, скорости и вибраций, что вручную сделать невозможно.
ASI Biont решает эти проблемы: AI-агент подключается к принтеру через MQTT (для Klipper) или SSH (для Marlin с OctoPrint/Raspberry Pi), читает показания датчиков, отправляет команды G-кода и уведомляет вас в Telegram при аномалиях. Всё настраивается через диалог в чате — никаких панелей управления.
Как ASI Biont подключается к 3D-принтеру?
ASI Biont использует два основных способа интеграции:
| Способ | Прошивка | Канал | Тип данных |
|---|---|---|---|
| MQTT | Klipper (Moonraker) | MQTT-брокер (Mosquitto, HiveMQ) | JSON с телеметрией (температура, позиция, статус) |
| SSH | Marlin (OctoPrint на Raspberry Pi) | SSH-сессия через paramiko | Python-скрипты для чтения логов и отправки G-кода через API OctoPrint |
| COM-порт | Marlin (прямое подключение) | Hardware Bridge (bridge.py) | G-код через последовательный порт |
Выбор способа зависит от вашей конфигурации. Для Klipper оптимален MQTT — Moonraker (API-сервер Klipper) поддерживает публикацию в MQTT-топики. Для Marlin на Raspberry Pi с OctoPrint — SSH. Для прямого подключения Arduino-совместимого принтера к ПК — Hardware Bridge.
1. Подключение Klipper через MQTT
Moonraker (REST API для Klipper) умеет публиковать статус принтера в MQTT-топики. Настройка:
- Установите MQTT-брокер (например, Mosquitto) на Raspberry Pi:
sudo apt install mosquitto mosquitto-clients. - В конфигурации Moonraker (
moonraker.conf) добавьте:
[mqtt]
address: localhost
port: 1883
username: mqtt_user
password: mqtt_pass
api_topic: printer/{printer_name}/status
- После перезапуска Moonraker данные будут публиковаться в топик
printer/my_printer/status.
Теперь в чате ASI Biont вы пишете:
«Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, логин mqtt_user, пароль mqtt_pass. Подпишись на топик printer/my_printer/status и сообщай мне, когда температура экструдера превысит 260°C.»
AI сгенерирует и выполнит Python-скрипт:
import paho.mqtt.client as mqtt
import json
import time
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
extruder_temp = data.get('extruder', {}).get('temperature', 0)
if extruder_temp > 260:
print(f"ALERT: Температура экструдера {extruder_temp}°C превысила 260°C!")
except Exception as e:
print(f"Ошибка парсинга: {e}")
client = mqtt.Client()
client.username_pw_set("mqtt_user", "mqtt_pass")
client.on_message = on_message
client.connect("192.168.1.100", 1883, 60)
client.subscribe("printer/my_printer/status")
client.loop_start()
time.sleep(30) # sandbox таймаут — 30 секунд
client.loop_stop()
Результат: ASI Biont мониторит температуру и уведомляет вас через Telegram (AI может отправить сообщение через requests.post к api.telegram.org).
2. Подключение Marlin через SSH (OctoPrint)
Если у вас Marlin на Raspberry Pi с OctoPrint, используйте SSH:
- Убедитесь, что SSH включён на Raspberry Pi.
- В чате ASI Biont напишите:
«Подключись по SSH к 192.168.1.101 (порт 22, логин pi, пароль raspberry). Через API OctoPrint (http://localhost:5000/api/printer) получи текущий статус. Если принтер в состоянии печати, отправь команду M105 (температура) через OctoPrint API.»
AI сгенерирует код с paramiko:
import paramiko
import requests
import json
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.101", username="pi", password="raspberry")
# Получаем статус через OctoPrint API
response = requests.get("http://192.168.1.101:5000/api/printer", headers={"X-Api-Key": "YOUR_API_KEY"})
status = response.json()
if status.get('state', {}).get('flags', {}).get('printing'):
# Отправляем G-код через M105
cmd = "M105\n"
stdin, stdout, stderr = ssh.exec_command(f"echo '{cmd}' > /dev/ttyUSB0")
# Читаем ответ
time.sleep(0.5)
stdin, stdout, stderr = ssh.exec_command("cat /dev/ttyUSB0")
print(stdout.read().decode())
ssh.close()
Важно: команда echo используется для отправки G-кода, но в реальности лучше использовать OctoPrint API: POST /api/printer/command с JSON {"command": "M105"}.
3. Прямое подключение Marlin через COM-порт (Hardware Bridge)
Для принтеров, подключённых к ПК по USB (COM-порт), используйте Hardware Bridge:
- Скачайте
bridge.pyиз дашборда ASI Biont (Devices → Create API Key). - Запустите bridge на ПК:
pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
- В чате ASI Biont напишите:
«Подключись к COM3 через bridge, baud rate 115200. Отправь команду M105 и верни ответ.»
AI выполнит industrial_command:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='4d3130350a' # M105 в hex
)
Bridge преобразует hex в bytes, отправит в порт и вернёт ответ (например, "ok T:210.0 /210.0 B:60.0 /60.0").
Сценарии автоматизации
1. Мониторинг температуры и детекция сбоев
Сценарий: AI подписывается на MQTT-топик с телеметрией Klipper и отслеживает:
- Резкое падение температуры экструдера (засорение сопла).
- Превышение температуры стола выше 110°C (риск деформации).
- Отсутствие данных более 5 минут (потеря связи).
При обнаружении аномалии AI отправляет уведомление в Telegram и, по вашему желанию, останавливает печать через MQTT publish: client.publish("printer/my_printer/command", "M112").
2. Автостарт печати по команде из Telegram
Вы отправляете в Telegram-бот ASI Biont: «Напечатай вазу с SD-карты».
AI:
1. Подключается к OctoPrint через SSH.
2. Получает список файлов: curl http://localhost:5000/api/files.
3. Находит файл vase.gcode.
4. Отправляет команду старта: POST /api/files/local/vase.gcode с телом {"command": "select"}.
5. Подтверждает в Telegram: «Печать файла vase.gcode запущена. Прогнозируемое время: 2 часа 15 минут.»
3. Предиктивное обслуживание на основе данных датчиков
ASI Biont собирает исторические данные температуры, скорости оси Z и уровня вибраций (если есть акселерометр). Используя библиотеку scikit-learn, AI строит модель регрессии для прогноза износа подшипников. Например:
import numpy as np
from sklearn.linear_model import LinearRegression
# Данные: [температура, скорость оси Z, вибрация] -> время до отказа (часы)
X = np.array([[210, 60, 0.5], [215, 55, 0.7], [220, 50, 1.0]])
y = np.array([200, 150, 100]) # часы до следующего обслуживания
model = LinearRegression()
model.fit(X, y)
# Новые данные
new_data = np.array([[218, 58, 0.8]])
prediction = model.predict(new_data)
print(f"Прогнозируемое время до отказа: {prediction[0]:.1f} часов")
AI выполняет этот скрипт, сохраняет результат и предупреждает вас: «При текущей нагрузке подшипники оси Z потребуют замены через 127 часов печати. Рекомендую снизить скорость до 50 мм/с.»
Почему ASI Biont — это выгодно?
- Нет необходимости писать код вручную. Вы просто описываете задачу на русском языке, AI генерирует и выполняет Python-скрипт с paho-mqtt, paramiko, pyserial или requests.
- Поддержка любого протокола. MQTT, SSH, COM-порт, Modbus, OPC-UA — AI сам выбирает подходящий способ на основе вашего описания.
- Гибкая автоматизация. AI может комбинировать данные с нескольких устройств (3D-принтер + датчик влажности + умная розетка) и принимать решения: «Если влажность > 60%, включить осушитель и поставить печать на паузу.»
- Безопасность. execute_python выполняется в изолированном sandbox-окружении без доступа к локальной файловой системе. Для работы с COM-портами используется Hardware Bridge — данные передаются через WebSocket с шифрованием.
Заключение
Интеграция 3D-принтера с AI-агентом ASI Biont превращает обычное устройство в интеллектуальную систему мониторинга и управления. Вы получаете:
- Реальные уведомления о сбоях в Telegram.
- Возможность запускать печать голосом или из мессенджера.
- Прогнозы износа деталей на основе машинного обучения.
- Экономию времени и материалов за счёт своевременного обнаружения проблем.
Попробуйте сами — подключите ваш 3D-принтер к ASI Biont прямо сейчас. Зайдите на asibiont.com, создайте API-ключ, скачайте bridge.py из дашборда и опишите в чате, что хотите сделать. AI сделает всю интеграцию за секунды.
Комментарии