Библиотека RDM6300 не работает на ESP8266
У меня есть RFID-модуль RDM6300, который я пытаюсь подключить к ESP8266 с помощью библиотеки rdm6300.h.
У меня все это работало вместе с другими компонентами, но мы подключились к ESP8266, но нам пришлось перейти от макетной платы к реальной проводной настройке. Все продолжало работать, кроме считывателя RFID. Раньше я делал это, ссылаясь на этот подход (более или менее):
#include <rdm6300.h>
#define RDM6300_RX_PIN 4
#define READ_LED_PIN 13
Rdm6300 rdm6300;
void setup()
{
Serial.begin(115200);
pinMode(READ_LED_PIN, OUTPUT);
digitalWrite(READ_LED_PIN, LOW);
rdm6300.begin(RDM6300_RX_PIN);
Serial.println("\nPlace RFID tag near the rdm6300...");
}
void loop()
{
/* if non-zero tag_id, update() returns true- a new tag is near! */
if (rdm6300.update())
Serial.println(rdm6300.get_tag_id(), HEX);
digitalWrite(READ_LED_PIN, rdm6300.is_tag_near());
delay(10);
}
но теперь, после перестановки, он просто перестал читать теги. Что я сделал, так это отключил все от ESP и оставил подключенным к нему только RDM6300 с образцом кода. К сожалению, он, похоже, не обнаруживает никаких тегов.
Чтобы проверить, не выходят ли компоненты из строя по какой-либо причине, я решил протестировать его, используя библиотеку SoftwareSerial.h следующим образом:
#include <SoftwareSerial.h>
SoftwareSerial RFID(2, 3); // RX и TX
int i;
void setup()
{
RFID.begin(9600); // запустить последовательный считыватель RFID
Serial.begin(9600); // start serial to PC
}
void loop()
{
if (RFID.available() > 0)
{
i = RFID.read();
Serial.print(i, DEC);
Serial.print(" ");
}
}
и это сработало совершенно нормально. Я смог прочитать полезную нагрузку, поступающую с чипа:
2 30 31 30 46 33 46 38 44 39 31 32 44 3
Но, поскольку я не хочу реализовывать все, что связано с декодированием этого последовательного потока, я решил спросить ваше мнение, что здесь может быть не так. Раньше это работало без каких-либо проблем, но теперь это не так.
Есть кое-что интересное, что я тоже заметил. Когда я запускаю первый обрезанный код и меняю используемый контакт ESP8266 с 4 на 16(D0) и загружаю его, как только я перемещаю тег близко к антенне, индикатор оборудования, связанный с этим выводом, начинает мигать, и когда я возвращаю тег (подальше от антенны), он перестает мигать.
Это заставляет меня думать, что на аппаратном уровне все в порядке, но возникают некоторые проблемы с программным обеспечением.
@user2128702, 👍-1
Обсуждение1 ответ
Что решило проблему для меня, так это перейти в диспетчер плат в Arduino IDE и обновить его до последней версии:
Затем я получил следующую ошибку при компиляции:
Плата generic (платформа esp8266, пакет esp8266) неизвестна
Чтобы исправить это, я последовал этим инструкциям.
И я также удалил библиотеку rdm6300 из C:\Program Файлы\Arduino\библиотеки и переместил его в C:\Users\myusername\Documents\Arduino\libraries
- Как я могу получить целое число из RFID-метки от Arduino Mega до NodeMCU 1.0 по последовательной связи?
- AT-команда не отвечает на последовательный монитор
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- Программное обеспечениеSerial с ESP8266
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Отправить строку данных из Arduino UNO в ESP8266-01
- Отправка данных из ESP8266 в PHP
Примечание к Serial скетчу sw: вывод 3-это аппаратный серийный RX, @Juraj
разве библиотека rdm6300 не реализует что-то вроде sw Serial? вы пробовали sw Serial с выводом 4 и rdm6300 с выводом 2?, @Juraj
@Juraj это реализация: https://github.com/arduino12/rdm6300/blob/master/src/rdm6300.cpp, @user2128702
да, это встроенный последовательный sw, @Juraj
@Juraj, как это помогает в моем случае?, @user2128702
вы пробовали sw Serial с выводом 4 и rdm6300 с выводом 2?, @Juraj
Я использую один вывод при подключении между ESP8266 и RDM6300. Это может быть любой цифровой вывод., @user2128702
да, но вывод 2 работает с программным обеспечением. вы пробовали это с библиотекой RDM6300?, @Juraj
Да, я сделал это, и в этом проблема, что раньше это работало, а теперь не работает. Я описал это в своем вопросе., @user2128702
в вопросе вы пишете о 4 и 16 с библиотекой RDM6300. и вы пишете, что pin 2 работает с программным обеспечением. итак, вы пробовали " rdm6300.begin(2);"?, @Juraj
Я попробовал это, и индикатор GPIO2 на борту мигает, когда тег находится рядом, но " rdm6300.update()` никогда не возвращает значение true. Таким образом, я не могу обнаружить фактический тег и прочитать его идентификатор. Это моя проблема., @user2128702