Зачем 3D-принтеру AI-агент?
Современная 3D-печать — это не просто нажатие кнопки «Печать». Длинные циклы, риск сбоя (например, застревание филамента или перегрев сопла) и необходимость постоянного мониторинга — задачи, которые отнимают время. Интеграция 3D-принтера с AI-агентом ASI Biont позволяет:
- удалённо отслеживать температуру стола и сопла в реальном времени;
- получать оповещения в Telegram при критических отклонениях;
- запускать печать голосовой командой или по расписанию;
- автоматически ставить принтер на паузу при обнаружении аномалий.
И всё это без написания кода вручную: вы описываете задачу в чате, а AI-агент самостоятельно генерирует и выполняет Python-скрипт интеграции.
Как ASI Biont подключается к 3D-принтеру?
ASI Biont поддерживает разные способы подключения — выбор зависит от прошивки принтера:
| Прошивка | Рекомендуемый метод | Протокол |
|---|---|---|
| Klipper (через Moonraker) | HTTP API / WebSocket | REST API (aiohttp) + |
| Marlin (через OctoPrint) | HTTP API / MQTT | REST API OctoPrint |
| Marlin (прямой USB) | COM-порт (Hardware Bridge) | Serial G-code |
В этой статье разберём самый современный вариант — Klipper с Moonraker API. Этот способ не требует дополнительных адаптеров: принтер подключён к локальной сети, и вы просто указываете его IP-адрес.
Пошаговый сценарий: Klipper + Moonraker + Telegram-мониторинг
1. Подготовка
Убедитесь, что на Raspberry Pi (или другом хосте) запущен Moonraker (обычно на порту 7125). Проверьте доступность:
curl http://192.168.1.100:7125/printer/info
Если приходит JSON с данными — всё готово.
2. Описываем задачу в чате ASI Biont
Вы пишете (или диктуете голосом):
«Подключись к моему 3D-принтеру на 192.168.1.100:7125. Читай температуру сопла и стола каждые 30 секунд. Если температура сопла превысит 250°C — отправь мне предупреждение в Telegram (токен: XXX, chat_id: XXX). Также дай мне возможность отправить команду "пауза" через чат, чтобы принтер остановил печать.»
3. Что делает AI-агент?
AI-агент генерирует Python-скрипт, который выполняется в sandbox-окружении ASI Biont (с доступом к aiohttp, requests и всем стандартным библиотекам). Скрипт:
- устанавливает HTTP-соединение с Moonraker;
- через WebSocket (если нужно) или периодические GET-запросы получает статус принтера;
- анализирует данные и при превышении порога отправляет сообщение в Telegram;
- ожидает входящие команды (через чат AI Biont) и транслирует их в G-код.
Пример реального кода, который напишет AI:
import asyncio
import aiohttp
import requests
MOONRAKER_URL = "http://192.168.1.100:7125"
TELEGRAM_TOKEN = "YOUR_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"
async def get_status():
async with aiohttp.ClientSession() as session:
async with session.get(f"{MOONRAKER_URL}/printer/objects/query?extruder=temperture,heater_bed=temperture") as resp:
data = await resp.json()
return data['result']['status']
async def monitor():
while True:
status = await get_status()
extruder_temp = status['extruder']['temperture']
bed_temp = status['heater_bed']['temperture']
if extruder_temp > 250:
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": f"⚠️ Температура сопла {extruder_temp}°C — превышен порог!"}
)
await asyncio.sleep(30)
# Запуск (sandbox выполнит этот код с таймаутом 30 сек)
asyncio.run(monitor())
Важно: В sandbox-окружении ASI Biont нельзя использовать бесконечные циклы (таймаут 30 секунд). Поэтому в реальном сценарии AI настраивает триггеры на стороне Biont: например, при получении нового сообщения от принтера (через вызов industrial_command) выполняется проверка и отправка Telegram. Код выше — упрощённая иллюстрация логики.
4. Управление печатью голосом
Для команды «Пауза» AI-агент выполняет:
industrial_command(protocol='http_api', command='POST', url='http://192.168.1.100:7125/printer/gcode/script', data='{"script": "PAUSE"}')
Этот вызов отправляет G-код PAUSE напрямую в Moonraker. Аналогично можно возобновить печать (RESUME) или остановить (CANCEL).
Альтернативные способы интеграции
Marlin через OctoPrint API
Если у вас старый принтер с прошивкой Marlin и вы используете OctoPrint, AI-агент может подключаться по REST API OctoPrint (порт 80). Пример команды:
industrial_command(protocol='http_api', command='GET', url='http://octopi.local/api/printer?apikey=YOUR_KEY')
Marlin через USB (Hardware Bridge)
Для принтеров, подключённых к ПК по USB, запускается bridge.py (скачивается из дашборда ASI Biont). Bridge открывает COM-порт, и AI отправляет G-код через industrial_command:
industrial_command(protocol='serial', command='serial_write_and_read', data='M105\n') # запрос температуры
Почему это удобно?
- Никакого ручного кодирования. Вы говорите на естественном языке — AI пишет скрипт и выполняет его. Не нужно разбираться в Moonraker API или paho-mqtt.
- Любое устройство. ASI Biont подключается к чему угодно: от ESP32 до промышленных контроллеров. Вы не ограничены готовыми интеграциями.
- Единый центр управления. Все устройства и оповещения — в одном чате. Можно комбинировать: замолотил принтер — AI выключает свет через умную розетку.
Заключение
Интеграция 3D-принтера с AI-агентом ASI Biont превращает громоздкий процесс печати в управляемую автоматизированную систему. Вы получаете контроль над производством прямо из мессенджера, а AI берёт на себя мониторинг и реагирование на нештатные ситуации.
Готовы попробовать? Зайдите на asibiont.com, создайте API-ключ, скачайте bridge (если нужно) и опишите в чате вашу задачу — AI сам настроит интеграцию за секунды.
Комментарии