20 Ноя

Принтер чеков

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

Тем, кто сталкивается с понятием онлайн торговля очевиден тот факт, что при заказе товара или услуги нам на электронную почту приходит письмо с уведомлением и не более. Далее при отгрузке товара начинающие мастера hand-made не задумываются от вложении счета или чека в посылку. Что безусловно сбивает с толку, так как в случае возврата товара, человеку невозможно будет предъявить чек. Ваш сайт могут проверить соответствующие «органы», сделать контрольную закупку и признать с вашей стороны факт мошенничества. Особенно если вы начинайте «расти на глазах», как бизнес. Чтобы избежать подобного рода проблем, предлагаем ознакомится, как сделать печатное устройство для чеков на фискальной термо-бумаге и обеспечить вывод  информации онлайн чека на бумажный носитель.




Материалы и инструменты:

Плата контроллера Raspberry Pi модель B — 1шт.

Микросхема логического сдвига уровня — 1шт.

Набор джамперов (перемычек-проводов)

Карта памяти SD с установленным ПО Raspbian — шт.

Модуль Wi-Fi USB — 1шт.

Модуль термопринтера — 1шт.

Блок питания 5В/5А — 1шт.

Кнопка SPST — 1шт.

Разъем питания на корпус DC jack

Индикатор световой WS2812B — 1шт.

Корпус, подходящий по размерам компонентов — 1шт.

Или можно вырезать самому с помощью станка с ЧПУ из акрила. Материал, в принципе, можно рассмотреть любой, в том числе и лист фанеры.

Скачать Файл AI 1

Скачать Файл AI 2

Весь набор «Сделай сам» можно приобрести здесь.





Шаг 1: Сборка.

Начнем сборку.  Используем набор перемычек, чтобы соединить

  • Raspberry пин 1 -> LV (low voltage) пин на микросхеме логического сдвига уровня
  • Raspberry пин 2 -> Вывод питания 5 В разъема jack.
  • Raspberry пин 6 -> GND вывод разъема jack
  • Raspberry пин 8 -> Вывод RX принтера (желтый провод).
  • Raspberry пин 9 ->  Контакт COM кнопки.
  • Raspberry пин 10 -> Выход RXO (rx output) на микросхеме логического сдвига уровня.
  • Raspberry пин 12 -> Вход TXI (tx input) на микросхеме логического сдвига уровня.
  • Raspberry пин 14 -> Вывод логический GND.
  • Raspberry пин 16 -> Контакт НО кнопки.
  • TXO микросхемы логического сдвига уровня -> Вывод WS2812B.
  • RXI микросхемы логического сдвига уровня-> Вывод принтера TX (зеленый провод).
  • HV микросхемы логического сдвига уровня-> 5v from the barrel jack.
  • GND микросхемы логического сдвига уровня -> GND вывод разъема jack.
  • Вывод GND от WS2812B GND -> GND вывод разъема jack.
  • Вывод WS2812B Vin -> Вывод питания 5 В разъема jack.
  • Vin принтера -> Вывод питания 5 В разъема jack.
  • GND принтера -> GND вывод разъема jack.

Воспользуйтесь схемой соединений, чтобы не ошибиться

Груда смонтированных проводов, главное не запутаться!

Проверьте правильность соединений еще раз прежде чем подать питание. Также используйте клей для монтажа пластиковых элементов, например для установки светодиодных модулей для подсветки (в наборе обратная сторона панели с вырезом «облако»)


Шаг 2: Программирование.

Я думаю, что вы уже успели установить ПО Raspbian на карту SD и у вас есть настроенный Wi-Fi. Теперь нам нужно установить несколько библиотек и изменить некоторые настройки, прежде чем приступить к кодингу.

Подключитесь через wi-fi к вашему контроллеру, откройте «sudo raspi-config«-> Advanced options/serial->NO, это позволит нам управлять серийным портом raspberry, а значит и термо-принтером. По окончании, запустите «sudo reboot«.

Теперь нужно настроить управление светодиодными модулями. Скомпилируйте и установите библиотеку rpi_ws281x.

sudo apt-get update
sudo apt-get install build-essential python-dev git scons swig
git clone https://github.com/jgarff/rpi_ws281x.git
cd rpi_ws281x
scons

Далее установите библиотеку Python:

cd python
sudo python setup.py install

После выполнения комманд rpi_ws281 будет установлена.

Для  изменения частоты мерцания светового модуля можете также воспользоваться данным руководством.

Далее выполните следующие команды:

sudo apt-get install python-pip
sudo pip install imapclient"
sudo apt-get install python-serial python-imaging python-unidecode"
sudo apt-get install git
git clone https://github.com/DAFRELECTRONICS/IoTprinter

Теперь мы готовы провести испытания принтера, введите следующие команды:

cd IoTprinter
sudo python printertest.py

Если ваш принтер заработал, значит мы все сделали правильно. Теперь перейдем к следующей части — настройке почты, для того чтобы принтер мог распечатывать счета-чеки, поступающие нам по почте.


Шаг 3: Настройка gmail для вывода печати на принтер.

Следуйте по шагам, указанным на скриншотах.

Зайдите в почту gmail, войдите в свой аккаунт или зарегистриуйтесь. Нажмите кнопку «Мой аккаунт»

Перейдите во вкладку «настройки безопасности».

И включите опцию доступа к почте сторонним приложениям и устройствам.

Примените настройки фильтрации к входящим сообщениям.

Создайте специальную папку для фильтрации писем с чековыми счетами. Задайте требуемые параметры и создайте папку.


Шаг 4: Пишем программу для Raspberry.

Выполните команду:

sudo nano mailverifier.py

Найдите следующие параметры и измените их: Username, Password и Mailbox. Введите ваши данные от gmail. Также в теле письма можете указать служебное сообщение по умолчанию. Сохранитесь и выйдите из проекта.

Запустите:

sudo nano mailverifier.py

Если компиляция кода происходит без ошибок, введите команду:

cd
sudo nano /etc/rc.local

после строки «#By default this script does nothing» добавьте

cd /home/pi/Python-Thermal-Printer
python mailverifier.py &

После чего сохранитесь, перезагрузитесь и наслаждайтесь работой своего нового принтера чеков!


Полезная информация:

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

2

  • Зеленый: загрузка программы.
  • Белый: загрузка программы.
  • Желтый: в принтере нет бумаги.
  • Красный: нет писем для печати чеков.
  • Синий: есть новые чеки для печати.
  • Фиолетовый: нет интернет соединения или ошибка при обработке данных.

Особое СПАСИБО:

instructables.com/Автор: Daniel Fernandez R.