Проблема с подключением сканера штрих-кода к ESP32 devkit с использованием UART - не удается подключиться через последовательный порт

У меня возникли проблемы с подключением разъема 2D-сканера штрих-кода SparkFun (фактически DE2120) к 30-контактному разъему ESP32. dev kit v1 (с пометкой ESP-WROOM-32) и запуск примера приложения SerialScan для этот датчик успешно.

Я полагаю, что два устройства подключены в соответствии с инструкциями:

ESP32 –> DE2120
3V3 -> 3,3 В
Земля -> ЗАЗЕМЛЕНИЕ
RX2 -> Прием
ТХ2 -> Передача

В примере кода контакты настроены следующим образом:

SoftwareSerial softSerial(25,27);

(согласно сопоставлению здесь это TX2/DX2 и правильные номера контактов)

Но что-то не так: пример кода никогда не сообщает об установлении соединения. Если проследить это, то получается, что isConnected() здесь всегда возвращает false, что означает sendCommand() либо истекает по тайм-ауту, либо получает DE2120_COMMAND_NACK.

Я в тупике. Я пробовал 2 разных сканера, заменил все кабели, попытался поменять местами номера контактов и провел множество испытаний с использованием HardwareSerial, но безуспешно. Сканер сам отвечает на команды, когда я подключаю его к ноутбуку и общаюсь с ним через последовательный порт USB.

Есть идеи? Я предполагаю, что я ошибаюсь в чем-то тривиальном (например, в физическом соединении или особенностях последовательных соединений на ESP32). Обычно я обнаружил, что пример кода из библиотек Arduino запускается впервые, но я относительно новичок в Arduino.

Обновление от 20 7. Я пробовал использовать контакты 16 и 17, а также RX2->TX и TX-> RX2. Я отсканировал штрих-код установки в соответствии с инструкциями.

, 👍-1

Обсуждение

1) Для последовательной связи вы обычно соединяете RX-TX и TX-RX. 2) Для ESP32 соглашение об именах основано на номерах контактов GPIO, поэтому Serial2 (HardwareSerial) находится на 16 GPIO16-RX2 и 17 (GPIO17-TX2). 3) ESP32 имеет 3 аппаратных последовательных порта, нет необходимости в SoftwareSerial., @hcheung

возможно, модуль сканера должен быть запрограммирован для использования последовательного порта ... он может быть запрограммирован путем сканирования штрих-кодов программирования, @jsotola

Спасибо вам обоим. Я попробовал схему подключения, которую вы предложили, hcheung (хотя разве изменение номеров контактов в исходном коде не дало бы такой же эффект? Я тоже пробовал это), и пробовал использовать 16 и 17 в качестве номеров контактов. SoftwareSerial — это то, что использует исходный код примера, в моей собственной программе я тоже пытался использовать HardwareSerial. jsotola: да, я уже сделал этот шаг - обновил исходный вопрос с подробностями., @Tom Hume


1 ответ


1

Отвечая на мой собственный вопрос: я думаю, что сканер не получает достаточно энергии от платы devkit ESP32.

Когда я питаю сканер штрих-кода и ESP32 от отдельных источников питания (оба USB), я могу подключить ESP32 к сканеру и нормально считывать коды.

Однако, когда я подключаю сканер к ESP32, следуя инструкциям в руководство по подключению, сканер не отвечает.

,