Обзор
NFC (Near-Field Communication) модули обеспечивают бесконтактную передачу данных на малых расстояниях для плат ESP32 и Arduino. Эти устройства идеально подходят для систем контроля доступа, считывателей смарт-карт, учета посещаемости и аутентификации в IoT-проектах.
NFC модули — это компактные приемопередатчики, работающие на частоте 13.56 МГц (за исключением RDM6300, который работает на 125 кГц). Самым популярным является PN532, поддерживающий интерфейсы I2C, SPI и UART, что делает его универсальным версией для интеграции с мобильными телефонами и бесконтактными картами.
Навигация
Библиотеки и код
Список датчиков
PN532
Самый мощный и гибкий NFC-модуль с поддержкой чтения/записи и эмуляции карт.
RC522
Бюджетное решение для чтения RFID/NFC меток 13.56 МГц, популярное в DIY-проектах.
RDM6300
Специализированный модуль для чтения RFID-меток 125 кГц через простой UART-интерфейс.
Характеристики
Большинство модулей (PN532, RC522) поддерживают SPI и I2C. RDM6300 работает исключительно через UART.
NFC и современные RFID: 13.56 МГц. Старые системы идентификации (RDM6300): 125 кГц.
Устранение неполадок
Модуль не видит карту/тег
Ошибки I2C на ESP32
Примеры программирования
Для большинства проектов на ESP32 рекомендуется использовать библиотеку Adafruit PN532 для Arduino или стандартные компоненты ESPHome.
// Пример инициализации PN532 через I2C (Arduino)
#include <Wire.h>
#include <Adafruit_PN532.h>
#define SDA_PIN 21
#define SCL_PIN 22
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
void setup(void) {
Serial.begin(115200);
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.print("PN53x card not found!");
while (1);
}
nfc.SAMConfig(); // Настройка для чтения тегов
}