При наличии работающего и правильно настроенного Wi-Fi модуля на esp32, который разработал автор прошивки, существует возможность отправлять в мессенджер Telegram сообщения о работе принтера и процессе печати, а так же управлять принтером посылая ему команды g-code. Еще одним приятным бонусом станет возможность скачивать прямо в принтер файлы gcode, которые размещены в вашей телеграмм-группе (а-ля Telegram Disk).
Как это работает
Для тех, кому интересно, как это работает вкратце расскажу механику: в прошивке WiFi-модуля автор разместил телеграм-бота, который умеет отправлять сообщения в приватный чат телеграмма, принимать команды оттуда и отсылать их принтеру. Чатбот в модуле изначально обезличенный, т.е. он не привязан ни к чему и просто так не работает. Соответственно, для его работы необходимо будет создать собственного чат-бота, получить его индивидуальный токен и внести в настройки. О том, как это сделать - написано далее.
Прошивка
Прежде всего необходимо прошить и принтер и WiFi-модуль последними версиями прошивок (test-only, о других не говорим). Это критически важно для успеха всех дальнейших действий.
Создаем приватную группу в Telegram
После установки модуля, его прошивки и подключению к вашей Wi-Fi-сети, приступаем к подключению к телеграмму. Переходим в Телеграмм (удобнее всего это делать в компьютерной версии телеграм, с телефона не удобно) и создаем там _группу_ (именно ГРУППУ, а не канал, это важно:
Затем присваиваете группе имя. Можете обозвать её как вам угодно.
Следующим шагом после создания группы будет добавление в него участников. На этом этапе следует в строке поиска указать бота @shui_wifi_bot (он же Shubot) - это специальный чатбот, который разработал автор прошивки и который поддерживает всё это волшебство. Жмем "добавить".
Теперь необходимо назначить бота Shubot админом группы. Для этого заходим в свойства группы и делаем его админом:
Там же необходимо установить права бота, особое внимание уделить анонимности - она должа быть выключена, т.к. анонимный бот не сможет отправлять сообщения:
Точно так же необходимо проверить права у вашей учетной записи, как у хозяина группы - там тоже не должно быть анонимности.
Создание собственного бота
Теперь, необходимо создать свою собственную нежить, чтобы оплодотворить ею бота сидящего в WiFi-модуле. Для этого ищем в телеграмме отца ботов, он так и называется: BotFather:
Чтобы не напороться на поддельного бота, настоящий имеет рядом синий значок с галочкой, остальные - фейки. Теперь начинаем с ним чат. Сначала он нам сообщает, что он прародитель всех нежитей телеграмма:
В ответ нужно дать ему команду "Запустить" (нажать кнопку Запустить), появится команда:
Бот ответит большой подсказкой, где расписаны команды. Снимок приводить не буду, это не принципиально. Далее командуем еще одну команду:
Бот ответит, что мол ага, создаем нового бота, Теперь нужно указать, как будут звать нового бота. Просто напишем ему имя вашей будущей нежити. Желательно не использовать в имени SHUI, чтобы его нельзя было просто найти поиском, будьте креативны.
Теперь он хочет, чтобы вы придумали боту имя пользователя. Имя пользователя должно содержать только латинские буквы и может содержать символ подчеркивания. Обязательное условие: имя пользователя должно оканчиваться буквами "bot". Здесь тоже проявляем креатив и не упоминаем SHUI. Вводим имя пользователя бота и всё, наш бот готов:
Папа-бот сообщил, что ваш бот готов, а так же дал его токен, чтобы использовать его в дальнейшем. Токен на снимке подчеркнут красной линией. Необходимо скопировать этот набот букв и цифр, он нам скоро понадобится. На этом общение с папой ботов закончено. Возвращаемся в свою группу.
Добавление своего бота в группу
Добавление своего бота в группу ничем не отличается от того, как до этого добавлялся @shui_wifi_bot бот. Найдите в свойстах группы кнопку "добавить участника", в качестве имени участника укажите имя пользователя бота которое вы ему придумали. Когда он найдется, выберите его и нажмите "Добавить". Скриншот приводить не буду, поскольку процесс не отличается от описанного выше.
Теперь вашего собственного бота так же необходимо сделать админом с правами как у @shui_wifi_bot - об этом тоже было написано выше.
Получение ID-группы
Еще один идентификатор, который нужно знать принтеру - это идентификатор вашей группы. Поскольку бот @shui_wifi_bot уже добавлен в канал, он запросто может дать этот идентификатор по команде:
В ответ вы увидите нечто подобное:
Копируем Chat Id (это цифра вместе с минусом), далее он нам тоже понадобится. Если вам не нужно управление принтером, а вы хотите только получать от него сообщения, то можете просто ввести полученный Chat Id прямо в принтере в разделе настроек "Telegram". Если же вы хотите обладать полной функциональностью, тогда читайте дальше.
Результат манипуляций с телеграммом
В результате вышеуказанных действий в вашей группе должно быть либо 2 (если вы не создавали своего бота для управления), либо 3 учатника (для полного феншуя): Вы, @shui_wifi_bot и ваш бот, если вы его создавали - причем все участники - админы группы с выключенной анонимностью:
Кроме того, у нас есть ID группы и токен доступа для нашего (своего собственного!) ботика. Переходим к настройке железки.
Настраиваем принтер
Для того, чтобы всё заработало, нужно оживить бота, сидящего в WiFi-модуле принтера. Для этого нужно скормить принтеру файл конфигурации. Вы можете создать этот файл самостоятельно, а можете воспользоваться конфигуратором, выдающим готовый файл.
Если хотите приготовить суп самостоятельно, нужно создать g-code файл следующего содержания:
M117 Configured
M500
M2009 M1
;
![]() |
|
Где 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%. Используйте возможности телеграмм диска как перевалочный механизм для передачи файлов на принтеры.