Обзор
PN532 — это один из самых популярных и гибких модулей для работы с NFC и RFID. Благодаря поддержке нескольких протоколов связи (I2C, SPI и UART) и встроенному стеку команд, он идеально подходит для систем контроля доступа, бесконтактных платежей и обмена данными между устройствами.
PN532 поддерживает чтение и запись меток NFC и RFID (ISO/IEC 14443 Type A и B), а также режим эмуляции карты и P2P-соединение. Гибкость настройки интерфейса с помощью встроенных переключателей делает его универсальным решением для любого проекта на базе ESP32 или Arduino.
Приобретите PN532
Характеристики PN532
Полные технические параметры модуля NFC PN532 для интеграции в ваши проекты.
Распиновка PN532
Выбор режима связи осуществляется с помощью микропереключателей на плате.
- I2C: 1:ON, 2:OFF (0x24)
- SPI: 1:OFF, 2:ON
- UART: 1:OFF, 2:OFF
| Пин | Имя | Тип | Описание |
|---|---|---|---|
| VCC | Power | Питание | 3.3В или 5В |
| GND | Ground | Земля | 0В |
| SDA / TX | I/O | Data | I2C SDA / UART TX / SPI MOSI |
| SCL / RX | I/O | Clock | I2C SCL / UART RX / SPI SCK |
| IRQ | Output | Interrupt | Выход прерывания |
| RSTO | Input | Reset | Аппаратный сброс |
Подключение PN532
Вы можете выбрать один из трех интерфейсов подключения в зависимости от ваших задач.
Вариант 1: SPI Режим (Рекомендуемый)
Самый быстрый и стабильный режим. Переключатели: Switch 1: OFF, Switch 2: ON.
| PN532 Пин | ESP32 GPIO | Arduino Uno |
|---|---|---|
| SCK | GPIO 18 | D13 |
| MISO | GPIO 19 | D12 |
| MOSI | GPIO 23 | D11 |
| SS / CS | GPIO 5 | D10 |
Вариант 2: I2C Режим
Экономит пины, удобно при использовании общей шины. Переключатели: Switch 1: ON, Switch 2: OFF.
Ошибки и решения
Модуль не найден ("PN532 not found")
Метки читаются через раз
Программирование PN532
Ниже приведены примеры для основных платформ.
Arduino IDE
Библиотека Adafruit_PN532
C++
#include <Wire.h>
#include <Adafruit_PN532.h>
#define SDA_PIN 21
#define SCL_PIN 22
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
void setup() {
Serial.begin(115200);
nfc.begin();
if (!nfc.getFirmwareVersion()) {
Serial.println("Датчик PN532 не найден!");
while (1);
}
nfc.SAMConfig();
Serial.println("Ожидание NFC метки...");
}
void loop() {
uint8_t success;
uint8_t uid[] = {0, 0, 0, 0, 0, 0, 0};
uint8_t uidLength;
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
if (success) {
Serial.print("Найдена метка с UID: ");
for (uint8_t i = 0; i < uidLength; i++) {
Serial.print(uid[i], HEX); Serial.print(" ");
}
Serial.println();
}
delay(1000);
}
ESPHome (YAML)
YAML
pn532_i2c:
update_interval: 1s
binary_sensor:
- platform: pn532
uid: 04-8E-6C-22-2B-5B-80
name: "Доступ разрешен"
Итоги
Это самый универсальный NFC чип, поддерживающий все виды беспроводного обмена данными и легкую интеграцию в любые системы безопасности.
При работе с картами доступа используйте шифрование (например, Mifare DESFire), так как базовые UID легко копируются.