При наличии работающего и правильно настроенного 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%. Используйте возможности телеграмм диска как перевалочный механизм для передачи файлов на принтеры.


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

Последняя правка: 01.09.2022

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