При наличии работающего и правильно настроенного Wi-Fi модуля на esp32, который разработал автор прошивки, существует возможность отправлять в мессенджер Telegram сообщения о работе принтера и процессе печати, а так же управлять принтером посылая ему команды g-code. Еще одним приятным бонусом станет возможность скачивать прямо в принтер файлы gcode, которые размещены в вашей телеграмм-группе (а-ля Telegram Disk).

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

Для тех, кому интересно, как это работает вкратце расскажу механику: в прошивке WiFi-модуля автор разместил телеграм-бота, который умеет отправлять сообщения в приватный чат телеграмма, принимать команды оттуда и отсылать их принтеру. Чатбот в модуле изначально обезличенный, т.е. он не привязан ни к чему и просто так не работает. Соответственно, для его работы необходимо будет создать собственного чат-бота, получить его индивидуальный токен и внести в настройки. О том, как это сделать - написано далее.

Прошивка

Прежде всего необходимо прошить и принтер и WiFi-модуль последними версиями прошивок (test-only, о других не говорим). Это критически важно для успеха всех дальнейших действий.

Создаем приватную группу в Telegram

После установки модуля, его прошивки и подключению к вашей Wi-Fi-сети, приступаем к подключению к телеграмму. Переходим в Телеграмм (удобнее всего это делать в компьютерной версии телеграм, с телефона не удобно) и создаем там _группу_ (именно ГРУППУ, а не канал, это важно:

Затем присваиваете группе имя. Можете обозвать её как вам угодно.

Следующим шагом после создания группы будет добавление в него участников. На этом этапе следует в строке поиска указать бота @shui_wifi_bot (он же Shubot) - это специальный чатбот, который разработал автор прошивки и который поддерживает всё это волшебство. Жмем "добавить".

Теперь необходимо назначить бота Shubot админом группы. Для этого заходим в свойства группы и делаем его админом:

Там же необходимо установить права бота, особое внимание уделить анонимности - она должа быть выключена, т.к. анонимный бот не сможет отправлять сообщения:

Точно так же необходимо проверить права у вашей учетной записи, как у хозяина группы - там тоже не должно быть анонимности.

Создание собственного бота

Собственный бот необходим для того, чтобы можно было управлять принтером через вашу телеграмм-группу. Если вам не нужно управлять принтером, а нужно только получать от него сообщения, можете сразу перейти в раздел "Получение ID-группы".

Теперь, необходимо создать свою собственную нежить, чтобы оплодотворить ею бота сидящего в WiFi-модуле. Для этого ищем в телеграмме отца ботов, он так и называется: BotFather:

Чтобы не напороться на поддельного бота, настоящий имеет рядом синий значок с галочкой, остальные - фейки. Теперь начинаем с ним чат. Сначала он нам сообщает, что он прародитель всех нежитей телеграмма:

В ответ нужно дать ему команду "Запустить" (нажать кнопку Запустить), появится команда:

/start

Бот ответит большой подсказкой, где расписаны команды. Снимок приводить не буду, это не принципиально. Далее командуем еще одну команду:

/newbot

Бот ответит, что мол ага, создаем нового бота, Теперь нужно указать, как будут звать нового бота. Просто напишем ему имя вашей будущей нежити. Желательно не использовать в имени SHUI, чтобы его нельзя было просто найти поиском, будьте креативны.

Теперь он хочет, чтобы вы придумали боту имя пользователя. Имя пользователя должно содержать только латинские буквы и может содержать символ подчеркивания. Обязательное условие: имя пользователя должно оканчиваться буквами "bot". Здесь тоже проявляем креатив и не упоминаем SHUI. Вводим имя пользователя бота и всё, наш бот готов:

Папа-бот сообщил, что ваш бот готов, а так же дал его токен, чтобы использовать его в дальнейшем. Токен на снимке подчеркнут красной линией. Необходимо скопировать этот набот букв и цифр, он нам скоро понадобится. На этом общение с папой ботов закончено. Возвращаемся в свою группу.

Добавление своего бота в группу

Добавление своего бота в группу ничем не отличается от того, как до этого добавлялся @shui_wifi_bot бот. Найдите в свойстах группы кнопку "добавить участника", в качестве имени участника укажите имя пользователя бота которое вы ему придумали. Когда он найдется, выберите его и нажмите "Добавить". Скриншот приводить не буду, поскольку процесс не отличается от описанного выше.

Теперь вашего собственного бота так же необходимо сделать админом с правами как у @shui_wifi_bot - об этом тоже было написано выше.

Получение ID-группы

Еще один идентификатор, который нужно знать принтеру - это идентификатор вашей группы. Поскольку бот @shui_wifi_bot уже добавлен в канал, он запросто может дать этот идентификатор по команде:

/chat_id@shui_wifi_bot

В ответ вы увидите нечто подобное:

Копируем Chat Id (это цифра вместе с минусом), далее он нам тоже понадобится. Если вам не нужно управление принтером, а вы хотите только получать от него сообщения, то можете просто ввести полученный Chat Id прямо в принтере в разделе настроек "Telegram". Если же вы хотите обладать полной функциональностью, тогда читайте дальше.

Результат манипуляций с телеграммом

В результате вышеуказанных действий в вашей группе должно быть либо 2 (если вы не создавали своего бота для управления), либо 3 учатника (для полного феншуя): Вы, @shui_wifi_bot и ваш бот, если вы его создавали - причем все участники - админы группы с выключенной анонимностью:

Кроме того, у нас есть ID группы и токен доступа для нашего (своего собственного!) ботика. Переходим к настройке железки.

Настраиваем принтер

Для того, чтобы всё заработало, нужно оживить бота, сидящего в WiFi-модуле принтера. Для этого нужно скормить принтеру файл конфигурации. Вы можете создать этот файл самостоятельно, а можете воспользоваться конфигуратором, выдающим готовый файл.

Если хотите приготовить суп самостоятельно, нужно создать g-code файл следующего содержания:

M2009.3 C:-XXXXXXXXX K:YYYYYYY:YYYYYYYYYYYYYYYYYYYYYYY
M117 Configured
M500
M2009 M1
;
  • Если вы читаете эту страницу со смартфона, обратите внимание: каждая строка начинается с команды Mxxx и идет сплошной строкой. Перенос части команды на другую строку недопустим.
  • После последней команды обязательно должна быть пустая строка, иначе предыдущая команда может не отработать! Для этого я на всякий случай поставил в конце точку с запятой.

Где M2009.3 добавляет идентификаторы и токены, параметр С: - это идентификатор вашей группы, chat_id то есть. А параметр K: - это тот самый токен, который вы получили от папы ботов при создании своей нежити, если вы её создавали. Иначе параметр "K:" писать не нужно.

M117 сообщает об успешном конфигурировании, а M500 - сохраняет настройки в энергонезависимую память. M2009 M1 - стоит на всякий случай. Эта команда отключает режим "Точка доступа" у WiFi модуля.

То есть для меня, учитывая снимки экранов выше, этот файлик будет с таким содержимым:

M2009.3 C:-679467685 K:5308194817:AAGSGBBm_vffS4TnKHVsYZs6d1M79PIy7Xw
M117 Configured
M500
M2009 M1
;

Внимание, содержимое выше - ЭТО ПРИМЕР! Вы должны указать в файле именно свои ID и токен бота.

Короче, создаете в блокноте файлик, где есть все эти команды и сохраняете его на флешку принтера с именем @mybot.gcode

Файл начинающийся с символа @ сразу применяется без лишних вопросов со стороны печатающего устройства под управлением SHUI. Поэтому втыкаете флешку с этим файлом, включаете принтер, и запускаете его на печать. Надпись "Configured" внизу экрана подтвердит, что процесс оживления Франкенштейна прошел успешно.

После этого в созданную вами группу даже сразу может упасть сообщение от принтера, что принтер подключился к сети и сконфигурирован. Но это еще не так, внутренний бот оживет потом, после перезагрузки.

Наслаждаемся

Теперь перезагружаем принтер и смотрим в группу дальше:

"Принтер подключился к сети" - это стандартное сообщение принтера, а вот дальше - идет оживление нашего нежитя. Наш бот говорит "I'm here! Waiting for NTP server." - значит он запустился и подключился. И ждет подключения к серверу времени в интернете: пока он его не увидит работать не будет. Точное время нужно боту чтобы отделять свежие команды для принтера в группе от старых. А вот "NTP OK" уже означает, что бот увидел сервер времени и готов принимать команды.

С этой минуты вы можете управлять принтером просто вводя G-CODE прямо в чат телеграмма и принтер будет их выполнять:

Вот например такой диалог у меня вышел. Сначала M117 с сообщением, причем сообщение отразилось и на дисплее и продублировано в канал. Потом паркова всех осей G28, причем принтер сообщил об этом. Потом выключение принтера по M81 - прошло успешно.

Таким образом, мы получаем возможность управления принтером из любой точки где есть телеграм и интернет. Спасибо Вячеслав, этого многие ждали!

Telegram-диск

Кроме получения сообщений и управления принтером, вы так же можете использовать файлы, загруженные в группу для закачки на принтер. Это так называемый Telegram Disk. Для этого особо ничего делать не нужно - так как принтер ведь уже подключен к группе. Достаточно просто вывести виджет "TG Disk" на экран. Делается это через долгое нажатие.

Теперь кидаете файл gcode прямо в группу, заходите на принтере в виджет TG Disk - и получаете фозможность скачать этот файл на принтер.

Управление файлами в группе

Для управления файлами в группе есть несколько команд для бота:

/list - показать список файлов

/del a,b,c,d... - удалить файл(ы) номер a,b,c,d.... Например /del 1 - удалить файл номер 1, del 1,3 - удалить файлы 1 и 3

/clear - удалить все файлы (на текущий момент не работает)


Несколько нюансов от автора:

1. Для ботов телеграмм есть ограничения. Телеграмм бот может получить доступ к файлам, размер которых менее 20М. В дальнейшем можно будет добавить архивы ZIP.

2. Следует понимать, что так как @shui_wifi_bot должен иметь доступ на чтение поступающих в канал сообщений, все каналы, куда он будет добавлен будут доступны серверному программноу обеспечению обслуживающему бота с правами, которыми наделен бот. Если Вы не доверяете данной разработке или данные, которые будут публиковаться в телеграмм канале имеют особый статус секретности не пользуйтесь телеграмм диском. Это не относится к сообщениям отправляемым ботом во время работы принтера, так как для данного режима не требуется чтения сообщений канала.

3. Серверное программное обеспечение, которое ведет базу данных загруженных файлов в стадии разработки, поэтому и базы данных и стабильность ответов телеграмм бота не является 100%. Используйте возможности телеграмм диска как перевалочный механизм для передачи файлов на принтеры.


Подключение принтера к Яндекс Диску >>

Copyright © 2024 SHUI - прошивка для 3D-принтеров. All rights reserved.
Мы используем куки (cookie) для наилучшего представления нашего сайта. Если вы продолжите использовать сайт, мы будем считать что вас это устраивает. Вы можете просматривать сайт без использования куки (cookie) с частичной потерей функциональности в приватном режиме вашего браузера. Если вы полностью отказываетесь использовать куки (cookie), вы обязаны покинуть сайт.  Принять  Больше информации