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

Введение: зачем подключать 3D-принтер к AI-агенту?

3D-печать давно перестала быть хобби для энтузиастов — сегодня это промышленный инструмент. Но даже на современных принтерах с прошивками Marlin или Klipper управление остаётся рутинным: нужно вручную запускать файлы, следить за температурой сопла и стола, реагировать на ошибки. А если у вас парк из 5-10 принтеров? Тогда каждый час простоя из-за заклинившего филамента или перегрева превращается в убытки.

AI-агент ASI Biont решает эту проблему. Он подключается к вашему 3D-принтеру через MQTT (для Klipper с Moonraker) или через COM-порт (для Marlin с Hardware Bridge) и позволяет управлять печатью прямо из чата. Вы пишете: «Останови печать, если температура сопла превысит 250°C», и AI сам реализует логику. Никаких панелей управления, никаких сложных скриптов — всё через диалог.

В этой статье я покажу, как подключить 3D-принтер к ASI Biont, настроить мониторинг температуры, отправлять G-Code команды и автоматизировать аварийные сценарии. Вы узнаете, почему это быстрее и надёжнее, чем писать код вручную.

Как ASI Biont подключается к 3D-принтеру?

ASI Biont поддерживает несколько способов интеграции. Для 3D-принтера оптимальны два:

Способ Устройство Протокол Что нужно настроить
Hardware Bridge + COM-порт Принтеры с Marlin (USB-подключение) Serial (G-Code) bridge.py на ПК, COM-порт, baud rate
MQTT Принтеры с Klipper + Moonraker MQTT MQTT-брокер, топики Moonraker

Hardware Bridge для Marlin

Если ваш принтер использует прошивку Marlin (например, Creality Ender 3, Anycubic Mega S), он подключается к компьютеру через USB-COM порт. ASI Biont не может напрямую обращаться к COM-порту из облака — для этого используется Hardware Bridge.

Bridge — это Python-скрипт (bridge.py), который вы запускаете на своём ПК. Он соединяется с ASI Biont через WebSocket и передаёт команды на принтер. AI отправляет команду через industrial_command, bridge читает/пишет в COM-порт через pyserial.

Как это выглядит на практике:

  1. Вы скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key).
  2. Устанавливаете зависимости: pip install pyserial requests websockets.
  3. Запускаете bridge: python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200.
  4. В чате с AI описываете подключение: «Подключись к 3D-принтеру на COM3, скорость 115200». AI отправляет команду serial_write_and_read(data="G28\n") — принтер выполняет автономализацию.

MQTT для Klipper

Klipper — это более современная прошивка, которая работает на Raspberry Pi (или другом одноплатнике) и управляет принтером через Moonraker API. Moonraker поддерживает MQTT, что позволяет ASI Biont подключаться напрямую.

Как это работает:

  1. На Raspberry Pi с Klipper устанавливаете MQTT-брокер (например, Mosquitto).
  2. В конфиге Moonraker добавляете MQTT-топики (например, printer/command для отправки G-Code).
  3. В чате с AI пишете: «Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, подпишись на топик printer/status». AI пишет Python-скрипт с paho-mqtt и выполняет его в sandbox.

Практический сценарий: мониторинг температуры и аварийная остановка

Давайте разберём конкретный кейс. У вас есть принтер с Klipper, и вы хотите, чтобы AI-агент:
- Каждые 10 секунд проверял температуру сопла.
- Если температура превышает 260°C (критично для PLA), отправлял команду M112 (аварийная остановка).
- Уведомлял вас в Telegram.

Шаг 1. Настройка MQTT на Moonraker

В файле moonraker.conf добавляем:

[mqtt]
address: 192.168.1.100
port: 1883
username: mqtt_user
password: mqtt_pass
status_objects: extruder, heater_bed

Теперь Moonraker публикует данные в топик printer/objects/status.

Шаг 2. Подключение к ASI Biont через чат

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

«Подключись к MQTT-брокеру 192.168.1.100:1883, логин mqtt_user, пароль mqtt_pass. Подпишись на топик printer/objects/status. Если температура extruder превышает 260°C, опубликуй команду M112 в топик printer/command и отправь мне уведомление в Telegram.»

AI генерирует и выполняет Python-скрипт:

import paho.mqtt.client as mqtt
import requests
import json

BROKER = "192.168.1.100"
PORT = 1883
USER = "mqtt_user"
PASS = "mqtt_pass"
TELEGRAM_TOKEN = "YOUR_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"

def on_message(client, userdata, msg):
    data = json.loads(msg.payload.decode())
    temp = data.get("extruder", {}).get("temperature", 0)
    if temp > 260:
        # Аварийная остановка
        client.publish("printer/command", "M112")
        # Уведомление в Telegram
        text = f"⚠️ Авария! Температура сопла {temp}°C. Принтер остановлен."
        requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                      json={"chat_id": CHAT_ID, "text": text})

client = mqtt.Client()
client.username_pw_set(USER, PASS)
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe("printer/objects/status")
client.loop_start()  # Не блокирует выполнение

Важно: sandbox ASI Biont имеет таймаут 30 секунд, поэтому мы используем loop_start(), а не loop_forever(). Скрипт выполняется в фоне и реагирует на события.

Шаг 3. Проверка

Через несколько минут после запуска AI сообщает: «Подключение установлено. Мониторинг активен. При превышении 260°C будет выполнена аварийная остановка и отправлено уведомление.»

Сценарий для Marlin через Hardware Bridge

Если у вас принтер с Marlin (например, Ender 3), процесс немного отличается. Вы запускаете bridge.py на ПК, а AI отправляет команды через industrial_command.

Пример команды для проверки связи:

industrial_command(protocol='serial', command='serial_write_and_read', params={'data': 'M105\n'})

Эта команда отправляет G-Code M105 (запрос текущей температуры) и возвращает ответ принтера (например, ok T:210.0 /240.0 B:60.0 /70.0).

Автоматизация: вы пишете в чат:

«Каждые 5 секунд проверяй температуру стола. Если она упадёт ниже 50°C, отправь команду M140 S60 (установить температуру стола 60°C) и предупреди меня в Telegram.»

AI генерирует скрипт для bridge (через industrial_command), который циклически читает данные и принимает решения. Важно: bridge не поддерживает бесконечные циклы напрямую — AI использует execute_python с paho-mqtt для подписки на топик bridge, куда тот публикует данные.

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

Сценарий Команда G-Code Условие Результат
Автономализация перед печатью G28 По команде "начать печать" Принтер готовится к работе
Остановка при сбое филамента M600 Детектор филамента сработал Принтер паузится, AI уведомляет
Коррекция температуры M104 S{temp} Температура отклоняется от заданной AI подстраивает нагрев
Плавное охлаждение после печати M104 S0 + M140 S0 По команде "завершить" Принтер безопасно остывает
Мониторинг прогресса M27 Каждые 10 минут AI сообщает % завершения

Почему это выгодно?

Традиционный подход к автоматизации 3D-печати требует:
- Написания скрипта на Python с pyserial или paho-mqtt.
- Настройки планировщика задач (cron, systemd).
- Интеграции с Telegram или email через дополнительный код.

С ASI Biont вы просто описываете задачу на естественном языке. AI пишет весь код за секунды, выполняет его в sandbox и настраивает мониторинг. Не нужно ждать, пока разработчики добавят поддержку — подключайте любой принтер прямо сейчас.

Реальный пример: инженер из небольшой мастерской подключил 4 принтера с Klipper к ASI Biont за 15 минут. Теперь AI следит за температурой, останавливает печать при ошибках и отправляет отчёты в Telegram. Время простоя сократилось на 40%, потому что AI реагирует быстрее человека.

Заключение

Интеграция 3D-принтера с AI-агентом ASI Biont — это не футуристика, а рабочий инструмент. Вы можете:
- Управлять принтером через чат (отправить G28, изменить температуру).
- Автоматизировать мониторинг и аварийную остановку.
- Масштабировать управление на парк из десятков принтеров.

Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge.py (для Marlin) или настройте MQTT (для Klipper), и напишите в чат: «Подключи мой 3D-принтер». AI сделает всё остальное.

← Все статьи

Комментарии