Pull to refresh
0
Команда Цифровой Трансформации Татарстана
Министерство цифрового развития Татарстана

Разработка мобильного термопринтера на базе модуля ESP32: опыт студента

Reading time4 min
Views5.2K

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

Ссылка на репозиторий GitHub.

Список необходимых компонентов:

  • 2 аккумулятора 18650;

  • BMS контроллер;

  • OLED экран 128×64;

  • плата зарядки;

  • USB‑TTL конвертер CH340;

  • зуммер;

  • конвертер уровней;

  • модуль термопринтера qr204;

  • энкодер;

  • понижающие dc‑dc стабилизаторы напряжения;

  • кнопки и резисторы.

Сборка

Для начала я изготовил печатную плату.

Для изготовления печатных плат можно использовать различные технологии, но я остановился на технологии фоторезиста, так как в данном проекте используются тонкие дорожки и необходима высокая точность. Также для защиты платы я покрыл ее специальной маской (Mechanic). На картинке ниже представлена готовая печатная плата.

Далее я припаял все элементы на свои места. Плата после пайки представлена на рисунке ниже.

Корпус я распечатал на 3D принтере, а модель спроектировал в программе Fusion 360. Fusion 360 — это облачная платформа САПР, которая является доступной, высокоэффективной альтернативой другим аналогичным программным продуктам. Он прост в использовании и обладает всеми функциями, которые содержат популярные пакеты САПР. Готовое устройство после сборки можно увидеть на рисунке ниже.

Программирование

Следующим шагом было написание программы. На этом этапе были некоторые трудности с передачей данных по Bluetooth и отправкой команд на модуль термопринтера.

Сначала необходимо разобраться с отправкой команд.

В интернет-ресурсах можно было найти список ESC/POS команд. Однако не все они работали, поэтому мне пришлось скачать программу Print_Assistant. Данная программа хорошо работала с моим модулем. Особенностью данной программы было то, что в специальном окне можно было видеть какие именно команды она отправляла на принтер в формате HEX. Таким образом я отправлял нужные мне команды через эту программу и переписывал HEX команду в свою программу.

После того, как переписал все нужные мне команды, я начал писать алгоритм для передачи данных по Bluetooth, и с этим тоже возникли сложности.

Дело в том, что при одной отправке можно было отправить лишь 250 символов, поэтому я сделал разбивку пакета данных. В мобильном приложении программа отправляла пакеты данных по 100 символов до тех пор, пока передача не завершится. Этот процесс занимает немного времени, но таким способом все данные передавались корректно и без потерь.

Как же программа понимает, что именно ему печатать? Здесь все довольно просто: первый пакет данных – это всегда команды. Этот пакет содержит в себе переменные, разделенные символом «@». Первый элемент обозначает, что именно печатать: текст, QR-код, штрих-код или чек. Остальные элементы обозначают настройки, которые необходимо установить перед печатью. После этого программа принимает оставшиеся пакеты данных, содержащие информацию, которую нужно распечатать. Вся программа представлена в репозитории GitHub. Также там можно скачать само приложение.

Приложение

Приложение я разработал в программе Kodular Creator. Это аналог популярной программы Mit App Inventor. Разница лишь в том, что Kodular Creator имеет хороший дизайн, благодаря чему можно создавать красивые приложения за короткое время.

Разберу интерфейс моего приложения. На рисунке ниже представлена первая вкладка.

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

Назначение кнопок:

«B» - полужирный шрифт;

«U» - подчеркивание

«Т» - ширина и высота символа;

«А» - инвертирование текста (черный текст на белом фоне или наоборот).

Третья кнопка сверху слева предназначена для установки выравнивания текста.

Левая кнопка на втором ряду – для очистки поля для ввода текста, а правая – для отправки на печать.

Во второй вкладке можно печатать штрих-коды и QR-коды. Она представлена на рисунке ниже.

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

Следующая вкладка — печать чеков (на рисунке ниже).

В данной вкладке необходимо указать ФИО кассира и номер смены. После этого можно добавлять товары, указав наименование, НДС, стоимость и количество. Далее программа предложит выбрать способ оплаты, после чего можно распечатать чек.

В последней вкладке находится кнопка для подключения принтера и информация об организации, которая необходима для печати чеков.

Данную информацию необходимо заполнить заранее, прежде чем печатать чеки. Вся эта информация будет храниться в памяти принтера, ее также можно посмотреть в самом принтере в разделе «Информация об организации».


Статью подготовил И. Гараев, студент 4 курса специальности «Компьютерные системы и комплексы» ГАПОУ «МЦК-КТИТС».

Tags:
Hubs:
Total votes 12: ↑8 and ↓4+7
Comments9

Articles

Information

Website
digital.tatarstan.ru
Registered
Founded
Employees
101–200 employees
Location
Россия