TelegaGraph, ESP32, Термопринтер QR204, Micropython, печать фото

Совсем недавно я перенёс свой проект TelegaGraph на esp32. На esp8266 код работал, но часто были глюки из-за нехватки памяти, приходилось пересобирать прошивку микропитона — в общем не фонтан. Чего не хватало моему TelegaGraph, так это печати фотографий на термопринтер из сообщений. И вот этот день настал.

Конечно, несмотря на использование более мощного микроконтроллера, чудо не может произойти. Фотография с телефона даже физически не влезет в память микроконтроллера, не говоря о том, чтобы обработать её. Поэтому пришлось написать маленький скрипт на Flask, и загрузить его на PythonAnywhere, переложив тем самым скачивание и обработку фотографии на него. Алгоритм простой: когда боту приходит сообщение содержащее фотографию, он отправляет запрос на сайт где крутится мой скрипт, скрипт получает фото (по file_id), обрезает под нужный размер (ширина для принтера нужна 384 точки), дорисовывает фотографии текст, переводит его в ч/б и отправляет обратно на микроконтроллер в виде байтов. Микроконтроллер сохраняет полученные байты фотографии в файл и печатает её на принтере. Вот и вся магия.

Итак, если вы собирали TelegaGraph, то изменений в подключении производить не нужно. Нужно только обновить код в микроконтроллере. Код проекта лежит в том же репозитории на GitHub. Так же, в этом репозитории в папке www лежат файлы, которые нужно будет разместить на хостинге в интернете. Я использую PythonAnywhere потому что он бесплатный. Как запустить приложение Flask на этом хостинге я не буду тут объяснять, поскольку статья не об этом. Там нет ничего сложного, правда весь сайт на английском.
В файле main.py нужно указать адрес сайта, на котором вы разместили скрипт для обработки фотографии из папки www. Если всё сделано правильно, то теперь ваш TelegaGraph будет печатать фото!

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

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

2 комментария на “TelegaGraph, ESP32, Термопринтер QR204, Micropython, печать фото

    1. Дмитрий Автор записи

      Там скорее надо параметры печати принтера подкручивать.

      Нравится

Оставьте комментарий