Как подключить термопринтер к 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
@Thomas, 👍1
Обсуждение1 ответ
Необходимо использовать <HardwareSerial. h> библиотека. SoftwareSerial предназначен для плат Arduino. "Библиотека термопринтеров" от Larry Bank для GOOJPRT PT-210 и использует Bluetooth. Не работает для QR-701. Вместо использования библиотеки Adafruit вы можете попробовать это: ThermalPrinter.
Это может помочь, Питер
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
Какую ошибку вы на самом деле получаете? Сообщение, которое вы вставили нам, говорит вам о том, что произошла ошибка, а не о том, что это была за ошибка. Без фактической ошибки мы не сможем вам помочь., @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