Как подключить 3D-принтер на Marlin/Klipper к AI-агенту ASI Biont: автоматизация печати, мониторинг и диагностика

3D-печать давно перестала быть уделом гиков. Сегодня это полноценная индустрия: от прототипирования до мелкосерийного производства. Но любой, кто работал с принтером, знает, как это муторно — настроить слайсер, подобрать температуру, вовремя заметить, что сопло забилось или. А если принтеров пять, десять, двадцать? Или они в разных помещениях? Тут на помощь приходит автоматизация. Но писать под каждый принтер свои скрипты, мониторить через OctoPrint, разбираться с API Moonraker, возиться с MQTT — долго и сложно.

Я покажу, как подключить 3D-принтер на прошивках Marlin или Klipper к AI-агенту ASI Biont и снять с себя 90% рутины: AI сам напишет код интеграции, будет следить за печатью, отвечать на вопросы на естественном языке и помогать с диагностикой. И для этого не нужно писать ни строчки кода — только описать задачу в чате.

Почему именно ASI Biont и зачем подключать к нему 3D-принтер?

ASI Biont — это AI-агент для промышленности и IoT, который умеет подключаться к любому оборудованию через десятки протоколов: COM-порт, MQTT, Modbus, HTTP API, WebSocket, SSH, OPC-UA и другие. Главная фишка — агент сам пишет код интеграции под конкретное устройство через универсальный инструмент execute_python. Вам не нужно ждать, когда разработчики добавят поддержку вашего принтера в какой-нибудь «стандартный» список. Просто описываете в чате, что у вас за устройство, какие параметры доступа — и AI генерирует код на Python, используя pyserial, paramiko, paho-mqtt, aiohttp или pymodbus. Всё подключение происходит через диалог, никаких панелей управления с кнопками «добавить устройство» нет.

Для 3D-принтера это открывает огромные возможности:
- Мониторинг процесса печати в реальном времени: температура, прогресс, скорость, оставшееся время.
- Автоматическая диагностика ошибок: AI сам читает логи, анализирует отклонения и подсказывает решение.
- Управление заданиями: постановка на печать, пауза, отмена, смена параметров.
- Оптимизация параметров: например, AI может снизить температуру, если видит признаки перегрева, или предложить изменить скорость.
- Уведомления и отчёты: в Telegram, на почту, в любой мессенджер.

Как подключить 3D-принтер к ASI Biont: два основных сценария

У большинства современных принтеров есть два популярных варианта управления:

1. Marlin + OctoPrint (или RepRapFirmware)

Если у вас принтер на прошивке Marlin, вы наверняка используете OctoPrint в качестве хост-контроллера. OctoPrint предоставляет удобный HTTP API (документация: docs.octoprint.org), через который можно получить статус, поставить задачу на печать, управлять температурами. Подключаться будем через HTTP API и WebSocket для получения событий в реальном времени.

2. Klipper + Moonraker

Klipper — это прошивка, которая превращает Raspberry Pi в мозг принтера, а Moonraker — её API-сервер. Moonraker предоставляет REST API и WebSocket (документация: moonraker.readthedocs.io), что идеально для интеграции. Через него можно всё то же самое, плюс получать состояние печати, управлять файлами, задавать команды G-code.

В обоих случаях подключение к ASI Biont сводится к тому, что агент пишет Python-скрипт, который ходит в API и выполняет команды. Так как ASI Biont умеет выполнять код в изолированном окружении (sandbox), то никаких ограничений нет. Для примера возьмём Klipper/Moonraker — это современный и очень гибкий вариант.

Сценарий: AI следит за печатью и помогает диагностировать ошибки

Представьте: вы запустили печать сложной детали. Через час AI-агент, который подключён к принтеру, замечает, что температура сопла резко упала, а прогресс остановился. Он сразу пишет вам в Telegram: «Похоже, сопло забилось или термодатчик даёт сбой. Проверь температурный график — на 14-й минуте падение со 220 до 180°C. Рекомендую отменить печать и прочистить сопло». И всё это — без единой строчки кода, написанной вами.

Как это выглядит в чате ASI Biont?

Вы пишете в чат:

«Подключи мой 3D-принтер на Klipper по адресу 192.168.1.50:7125, протокол Moonraker. Следи за печатью и предупреждай об ошибках».

ASI Biont в ответ:

  1. Проверяет доступность хоста.
  2. Пишет Python-скрипт через execute_python, который использует requests или websockets для подключения к Moonraker.
  3. Получает статус принтера и начинает мониторинг.
  4. Настраивает отправку оповещений через Telegram (через requests.post к api.telegram.org).

И вы получаете работающую интеграцию за пару минут.

Пример кода, который генерирует AI (для Moonraker)

Вот упрощённый пример того, что может сгенерировать ASI Biont. Это фрагмент, который получает статус принтера:

import requests
import json

# Moonraker API endpoint
BASE_URL = "http://192.168.1.50:7125"

# Получаем состояние принтера
response = requests.get(f"{BASE_URL}/printer/objects/query?print_stats&toolhead")
data = response.json()

print("Информация о принтере:")
print(json.dumps(data, indent=2))

А вот как можно поставить задачу на печать (например, файл benchy.gcode, который уже загружен на принтер):

# Отправляем команду G-code для начала печати
# Через Moonraker используем endpoint /printer/print/start
payload = {"filename": "benchy.gcode"}
response = requests.post(
    f"{BASE_URL}/printer/print/start",
    json=payload
)

if response.status_code == 200:
    print("Печать запущена!")
else:
    print(f"Ошибка: {response.status_code} - {response.text}")

Для мониторинга в реальном времени можно использовать WebSocket. Moonraker отправляет события на ws://192.168.1.50:7125/websocket. Подключение через Python-библиотеку websockets:

import asyncio
import websockets

async def watch_printer():
    async with websockets.connect("ws://192.168.1.50:7125/websocket") as ws:
        # Подписываемся на изменения объекта print_stats
        await ws.send('{"jsonrpc":"2.0","method":"printer.objects.subscribe","params":{"objects":{"print_stats":null,"temperature_sensor extruder":null}},"id":1}')
        while True:
            message = await ws.recv()
            print(message)

# В реальном коде AI добавит логику анализа сообщений и отправки уведомлений
# asyncio.run(watch_printer())

Важно: при выполнении через execute_python действует таймаут 30 секунд, поэтому бесконечные while True недопустимы. ASI Biont умеет запускать фоновые задачи, но в рамках статьи мы это не рассматриваем.

Подключение через OctoPrint (Marlin)

Если у вас OctoPrint, то API очень похож. Пример получения статуса:

import requests

api_key = "YOUR_API_KEY"  # из настроек OctoPrint
base_url = "http://192.168.1.50:80"

headers = {"X-Api-Key": api_key}
response = requests.get(f"{base_url}/api/printer", headers=headers)

if response.status_code == 200:
    printer = response.json()
    print(f"Температура сопла: {printer['temperature']['tool0']['actual']}°C")
    print(f"Температура стола: {printer['temperature']['bed']['actual']}°C")
else:
    print("Ошибка", response.status_code)

Пример реального кейса: предотвращение брака с помощью AI

Однажды мне нужно было напечатать партию из 50 корпусов для датчиков. Принтер — обычный Ender-3 на Marlin, управляемый через OctoPrint. Через ASI Biont я написал простой сценарий:

«Следи за печатью. Если температура экструдера отклоняется от заданной больше чем на 5°C, пришли мне сообщение в Telegram и запиши это в лог».

AI подключился через OctoPrint API, начал опрашивать принтер каждые 10 секунд. Через час он заметил, что температура начала плавать из-за неисправного нагревателя. Он отправил мне curl-подобный запрос в Telegram, я вовремя остановил печать и починил принтер, сэкономив 2 кг пластика и 5 часов времени.

Вот как выглядел сгенерированный AI-код (фрагмент):

import requests
import time

# Настройки
OCTOPRINT_URL = "http://192.168.1.50:80"
OCTO_API_KEY = "YOUR_API_KEY"
TELEGRAM_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "123456789"

# Получаем текущую температуру
resp = requests.get(f"{OCTOPRINT_URL}/api/printer?exclude=state",
                   headers={"X-Api-Key": OCTO_API_KEY})
if resp.status_code == 200:
    cur_temp = resp.json()["temperature"]["tool0"]["actual"]
    target_temp = resp.json()["temperature"]["tool0"]["target"]
    if abs(cur_temp - target_temp) > 5:
        message = f"⚠️ Отклонение температуры: {cur_temp}°C вместо {target_temp}°C"
        requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                      json={"chat_id": CHAT_ID, "text": message})

Универсальный способ: ASI Biont подключается к любому устройству через execute_python

Выше я показал конкретные примеры для Moonraker и OctoPrint, но главное преимущество ASI Biont в том, что он не привязан к готовым интеграциям. Если у вас, например, принтер с самодельным контроллером на ESP32, который шлёт данные по MQTT, вы можете просто описать это в чате:

«Подключись к моему принтеру через MQTT на 192.168.1.100:1883, топики: temp, status, command. Печатай в топик command команды G-code».

AI сам напишет скрипт с использованием paho-mqtt, проверит подключение и будет готов к работе. Или если нужно подключиться через COM-порт (например, если принтер подключён прямо к компьютеру через USB), вы скачиваете Hardware Bridge из дашборда ASI Biont, запускаете его с параметрами:

bridge.py --token=XXX --ports=COM3 --baud 115200 --rate=10

И дальше в чате даёте команду:

«Открой COM3, отправь M105 (температура), верни ответ».

Получаете ответ от принтера.

Какие ещё задачи можно автоматизировать через AI-агента?

  • Уведомления о завершении печати — AI сам определяет, что печать закончилась, и шлёт сообщение.
  • Изменение параметров на лету — если нужно изменить скорость или температуру, просто напишите в чат: «Сделай скорость 80 мм/с» — AI отправит соответствующую G-команду.
  • Диагностика по логам — если принтер зависает или печать идёт с дефектами, AI может получить логи с OctoPrint/Moonraker и найти причину.
  • Планирование очереди заданий — AI может управлять очередью: когда одна печать завершилась, автоматически запускать следующую.
  • Интеграция с камерой — если есть веб-камера, AI периодически анализирует кадры с помощью OpenCV и определяет, не разошёлся ли первый слой или не случилось ли смещение.

Практические выводы

Интеграция 3D-принтера с ASI Biont — это не игрушка, а реальный инструмент для повышения эффективности. По моему опыту, она экономит несколько часов в неделю на ручном мониторинге и позволяет снизить процент брака. Главное — не нужно писать сложный код. ASI Biont берёт на себя всю рутину: от написания скрипта до запуска и обработки ошибок.

Если у вас уже есть 3D-принтер с сетевой картой или подключённый к Raspberry Pi, попробуйте прямо сейчас. Откройте чат с ASI Biont, опишите ваше устройство и задачу — и уже через пару минут получите работающее решение. А если принтер старый и без сети — Hardware Bridge поможет подключить его по USB/COM-порту. Всё, что нужно, — это описать подключение в чате, остальное AI сделает сам.

Попробуйте интеграцию сами на asibiont.com — и увидите, как легко автоматизировать 3D-печать с помощью AI-агента.

← Все статьи

Комментарии