При наличии работающего и правильно настроенного Wi-Fi модуля на esp32, который разработал автор прошивки, существует возможность отправлять в мессенджер Telegram сообщения о работе принтера и процессе печати, а так же управлять принтером посылая ему команды g-code. Еще одним приятным бонусом станет возможность скачивать прямо в принтер файлы gcode, которые размещены в вашем телеграмм-канале (а-ля Telegram Disk).
Как это работает
Для тех, кому интересно, как это работает вкратце расскажу механику: автор создал телеграм-бота посредника для общения с принтером, который умеет отправлять сообщения в канал телеграмма, принимать команды оттуда и отсылать их принтеру. В прошивке WiFi-модуля автор разместил код для общения с этим ботом. Чатбот в изначально обезличенный, т.е. он не привязан ни к чему и просто так не работает. Соответственно, для его работы необходимо будет создать собственного чат-бота, получить его индивидуальный токен и внести в настройки. О том, как это сделать - написано далее.
Прошивка
Прежде всего необходимо прошить и принтер и WiFi-модуль последними версиями прошивок (test-only, о других не говорим). Это критически важно для успеха всех дальнейших действий.
Создаем канал в Telegram
После установки модуля, его прошивки и подключению к вашей Wi-Fi-сети, приступаем к подключению к телеграмму. Переходим в Телеграмм (удобнее всего это делать в компьютерной версии телеграм, с телефона не удобно) и создаем там _КАНАЛ_ (именно КАНАЛ, а не группу, это важно:
Затем присваиваете каналу имя. Можете обозвать его как вам угодно.
Канал лучше сделать частным:
Следующим шагом после создания канала будет добавление в него участников. На этом этапе следует в строке поиска указать бота @shui_wifi_bot (он же Shubot) - это специальный чатбот, который разработал автор прошивки и который поддерживает всё это волшебство. Жмем "добавить".
Соглашаемся и делаем бота админом:
Права по умолчанию:
Создание собственного бота
Теперь, необходимо создать свою собственную нежить, чтобы оплодотворить ею бота сидящего в WiFi-модуле. Для этого ищем в телеграмме отца ботов, он так и называется: BotFather:
Чтобы не напороться на поддельного бота, настоящий имеет рядом синий значок с галочкой, остальные - фейки. Теперь начинаем с ним чат. Сначала он нам сообщает, что он прародитель всех нежитей телеграмма:
В ответ нужно дать ему команду "Запустить" (нажать кнопку Запустить), появится команда:
Бот ответит большой подсказкой, где расписаны команды. Снимок приводить не буду, это не принципиально. Далее командуем еще одну команду:
Бот ответит, что мол ага, создаем нового бота, Теперь нужно указать, как будут звать нового бота. Просто напишем ему имя вашей будущей нежити. Желательно не использовать в имени SHUI, чтобы его нельзя было просто найти поиском, будьте креативны.
Теперь он хочет, чтобы вы придумали боту имя пользователя. Имя пользователя должно содержать только латинские буквы и может содержать символ подчеркивания. Обязательное условие: имя пользователя должно оканчиваться буквами "bot". Здесь тоже проявляем креатив и не упоминаем SHUI. Вводим имя пользователя бота и всё, наш бот готов:
Папа-бот сообщил, что ваш бот готов, а так же дал его токен, чтобы использовать его в дальнейшем. Токен на снимке подчеркнут красной линией. Необходимо скопировать этот набот букв и цифр, он нам скоро понадобится. На этом общение с папой ботов закончено. Возвращаемся в свой канал.
Добавление своего бота в канал
Добавление своего бота в канал ничем не отличается от того, как до этого добавлялся @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" внизу экрана подтвердит, что процесс оживления Франкенштейна прошел успешно.
После этого в созданный вами канал даже сразу может упасть сообщение от принтера, что принтер подключился к сети и сконфигурирован. Но это еще не так, внутренний бот оживет потом, после перезагрузки.
Наслаждаемся
Теперь перезагружаем принтер и смотрим в канал дальше:
"Looking for a listening bot for a party ;)." - это стандартное сообщение принтера, а вот дальше - идет лог сообщений от принтера.
С этой минуты вы можете управлять принтером просто - введите команду /snippets и увидите меню:
Таким образом, мы получаем возможность управления принтером из любой точки где есть телеграм и интернет. Спасибо Вячеслав, этого многие ждали!
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%. Используйте возможности телеграмм диска как перевалочный механизм для передачи файлов на принтеры.
Подключение принтера к Яндекс Диску >>
Последняя правка: 24.08.2024