Как подключить термопринтер к ESP32?

Я хочу подключить свой термопринтер GOOJPRT (кажется, модель QR701, связь RS232) к моему ESP32, но не могу заставить их работать.

Я испробовал все примеры библиотеки термопринтеров Adafruit, но каждый раз получаю одну и ту же ошибку:

"Error compiling for board ESP32 Dev Module." 

Думаю, библиотеки не предназначены для ESP32. Я также попробовал "Библиотеку термопринтеров" от Ларри Бэнка (который должен быть совместим с ESP32 в соответствии с его документацией на github), но я не могу понять, как правильно подключить провода термопринтера к ESP32.

Конечно, я не прошу конкретного решения, я просто ищу того, кто укажет мне правильное направление!

Это изображение точного термопринтера, который у меня есть

Полное сообщение об ошибке из примеров термопринтера Adafruit:

C:\Users\Thomas\Documents\Arduino\libraries\SoftwareSerial-master\SoftwareSerial.cpp:41:27: fatal error: avr/interrupt.h: No such file or directory
compilation terminated.
Multiple libraries were found for "Adafruit_Thermal.h"
 Used: C:\Users\Thomas\Documents\Arduino\libraries\Adafruit_Thermal_Printer_Library
 Not used: C:\Users\Thomas\Documents\Arduino\libraries\Adafruit-Thermal-Printer-Library-master
Multiple libraries were found for "SoftwareSerial.h"
 Used: C:\Users\Thomas\Documents\Arduino\libraries\SoftwareSerial-master
 Not used: C:\Users\Thomas\Documents\Arduino\libraries\EspSoftwareSerial
exit status 1
Error compiling for board ESP32 Dev Module

Второе сообщение об ошибке из примера термопринтера Adafruit после удаления установленного вручную SoftwareSerial.h:

A_printertest:21:28: fatal error: SoftwareSerial.h: No such file or directory
Multiple libraries were found for "Adafruit_Thermal.h"
compilation terminated.
 Used: C:\Users\Thomas\Documents\Arduino\libraries\Adafruit_Thermal_Printer_Library
 Not used: C:\Users\Thomas\Documents\Arduino\libraries\Adafruit-Thermal-Printer-Library-master
exit status 1
SoftwareSerial.h: No such file or directory

, 👍1

Обсуждение

Какую ошибку вы на самом деле получаете? Сообщение, которое вы вставили нам, говорит вам о том, что произошла ошибка, а не о том, что это была за ошибка. Без фактической ошибки мы не сможем вам помочь., @Majenko

@Majenko♦ См. полное сообщение об ошибке выше, которое я скопировал из Arduino IDE., @Thomas

Похоже, вы вручную установили какую-то другую библиотеку SoftwareSerial. Вам никогда не понадобится это делать, поскольку почти все ядра имеют собственную версию, специфичную для ядра. Удали это. Вы не хотите этого. Всегда., @Majenko

@Majenko♦ Спасибо за информацию! Я вручную установил SoftwreSerial, потому что IDE выдавала ошибку «Нет такого файла или каталога». Это также дает мне эту ошибку после того, как я удалил библиотеку, которую установил вручную., @Thomas

Ну так удали библиотеку еще раз, потом попробуй скомпилировать, и выложи потом что получится., @Majenko

@Majenko Я снова разместил другое сообщение внизу. Теперь я сделал крошечный шаг вперед, мне удалось получить вывод с моего термопринтера через порт Serial2 на моем ESP32 (tx/rx на контактах 16/17). К сожалению, на выходе все тарабарщина, но последовательная (скорость в бодах правильная). Я разместил тему здесь, на форуме Adafruit: https://forums.adafruit.com/viewtopic.php?f=22&t=174116, @Thomas

ÊSP32 имеет три аппаратных последовательных порта (UARTS), поэтому нет необходимости в SoftwareSerial. Чтобы использовать Serial1 и Serial2, см., например, https://github.com/espressif/arduino-esp32/issues/1838#issuecomment-418744153., @ridgy

@ridgy спасибо за ваш ответ, я понял это и заставил принтер что-то напечатать. Тем не менее, проблема все еще существует: текст, который выходит из принтера, не такой, как должен, хотя моя скорость передачи данных правильная. Пожалуйста, перейдите по следующей ссылке, возможно, вы знаете, что пошло не так https://forums.adafruit.com/viewtopic.php?f=22&t=174116, @Thomas

Что, если вы замените printer.println() на Serial2.printl()? Вам не нужна библиотека термопринтера, чтобы просто распечатать обычный текст — если это работает, ошибка в библиотеке., @ridgy


1 ответ


-1

Необходимо использовать <HardwareSerial. h> библиотека. SoftwareSerial предназначен для плат Arduino. "Библиотека термопринтеров" от Larry Bank для GOOJPRT PT-210 и использует Bluetooth. Не работает для QR-701. Вместо использования библиотеки Adafruit вы можете попробовать это: ThermalPrinter.

Это может помочь, Питер

,