NFC-метки прочно вошли в нашу жизнь – от бесконтактных пропусков до складского учёта. Но чтобы извлечь из них максимум, нужно связать ридер с системой, которая сможет не только прочитать UID, но и принять решение: открыть дверь, записать данные, отправить уведомление. Раньше для этого приходилось писать много кода, настраивать серверы и веб-интерфейсы. Сегодня AI-агент ASI Biont берёт всю интеграцию на себя – вы просто описываете задачу в чате, и он подключается к вашему оборудованию.
В этой статье разберём, как подключить популярный NFC-модуль PN532 к ASI Biont. Вы узнаете, какие способы подключения доступны, как настроить оборудование за 10 минут и как управлять процессом через Telegram – без единой строки ручного кода.
Что такое PN532 и почему его стоит подключить к AI
PN532 – это микросхема считывателя NFC от NXP, работающая на частоте 13,56 МГц. Она поддерживает режимы чтения/записи меток NFC (Mifare Classic, NTAG, ICODE и др.), эмуляцию карты и пиринговый обмен. Модули с PN532 (например, от Adafruit или Elechouse) подключаются к микроконтроллерам по I2C, SPI или UART (TTL).
Подключив PN532 к ASI Biont, вы получаете возможность:
- Автоматически идентифицировать сотрудников или предметы по NFC-меткам.
- Управлять доступом: открывать замки, включать свет, отправлять уведомления в Telegram.
- Вести учёт инвентаря: при прикладывании метки AI может заносить UID в Google Sheets, базу данных или проверять по списку.
- Добавлять новые метки через диалог в чате – без перепрошивки контроллера.
Как ASI Biont подключается к PN532: Hardware Bridge
ASI Biont работает в облаке, поэтому для доступа к локальным устройствам (Arduino, ESP32 с PN532) используется Hardware Bridge – программа bridge.py, которую вы запускаете на своём компьютере (Windows/Linux/macOS).
Принцип работы:
1. Вы скачиваете bridge.py из дашборда ASI Biont (раздел Devices → Create API Key → Скачать bridge).
2. Запускаете с параметрами: порт (например, COM3), скорость (9600), токен API.
3. Bridge подключается к облаку ASI Biont через единственный канал – WebSocket.
4. AI-агент через инструмент industrial_command отправляет команды на bridge, тот пишет в COM-порт и сразу читает ответ (атомарная операция serial_write_and_read).
Для PN532 это означает, что AI может в любой момент запросить чтение метки, отправив в порт заранее оговорённую команду (например, READ). Ответ – UID метки – возвращается в чат.
Важно: bridge не поддерживает длительную подписку на данные. Поэтому сценарии непрерывного мониторинга требуют периодического опроса. Мы рассмотрим запросный вариант – идеальный для инвентаризации и точечного чтения.
Сценарий: инвентаризация склада с NFC-метками
Представьте: на складе товары оклеены NFC-стикерами. Кладовщик подносит метку к ридеру, затем пишет в Telegram: «Что за товар?». AI считывает UID, сверяет с базой (например, SQLite) и отвечает: «Артикул 4532, Наушники Sony, 15 штук». Или, если метка новая, AI может предложить добавить её с названием товара.
Этот сценарий не требует постоянного чтения – только по запросу. Всё оборудование – Arduino Uno с PN532 и USB-кабель к ПК.
Аппаратная часть
Подключите PN532 к Arduino по I2C:
- PN532 VCC → Arduino 5V
- PN532 GND → GND
- PN532 SDA → A4 (SDA)
- PN532 SCL → A5 (SCL)
Также можно использовать SPI – схема подключения есть в документации библиотеки Adafruit PN532. Я рекомендую I2C, так как он требует меньше пинов.
Прошивка Arduino
Установите через менеджер библиотек «Adafruit PN532» и «Adafruit BusIO». Загрузите скетч:
#include <Wire.h>
#include <Adafruit_PN532.h>
#define PN532_IRQ 2
#define PN532_RESET 3
Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET);
void setup() {
Serial.begin(9600);
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.println("PN532 not found");
while (1);
}
nfc.SAMConfig();
}
void loop() {
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if (cmd == "READ") {
uint8_t uid[7];
uint8_t uidLength;
boolean success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 1000);
if (success) {
String uidStr = "";
for (uint8_t i=0; i<uidLength; i++) {
if (uid[i] < 0x10) uidStr += "0";
uidStr += String(uid[i], HEX);
}
uidStr.toUpperCase();
Serial.println("UID:" + uidStr);
} else {
Serial.println("No card");
}
}
}
}
Скетч ждёт команду READ через Serial. При получении он пытается считать метку в течение 1 секунды и выводит UID (шестнадцатеричный, заглавные буквы) или «No card».
Настройка Bridge и подключение к ASI Biont
- Скачайте bridge.py из дашборда ASI Biont (не из GitHub – файл выдаётся только после создания API-ключа).
- Установите зависимости (один раз):
pip install pyserial requests websockets. - Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=9600(замените COM3 на ваш порт). - В чате с ASI Biont напишите:
«Подключись к моему NFC-ридеру через bridge. Порт COM3, baud 9600. Команда для чтения – "READ". Когда я скажу "считай метку", отправь команду и верни мне UID. Также сохраняй UID в историю сессии.»
AI обработает запрос и выполнит industrial_command(protocol="serial", command="write_and_read", data="524541440a"). Обратите внимание: данные передаются в hex-формате. Bridge преобразует hex-строку в байты "READ\n" и отправляет в порт. Ответ (UID или «No card») возвращается в чат.
Пример диалога
Пользователь: «Считай метку»
ASI Biont: (отправляет serial_write_and_read на bridge) → получает UID: A1B2C3D4
ASI Biont: «Считана метка: A1B2C3D4. Хотите узнать информацию о товаре или добавить новый?»
Далее AI может выполнить Python-скрипт (через execute_python) для проверки базы или записи в Google Sheets – всё без вашего участия.
Почему это выгодно: без кода за секунды
В традиционном подходе вам пришлось бы:
- Писать скрипт на Python для чтения COM-порта.
- Настраивать веб-сервер или Telegram-бота.
- Вручную парсить ответы и реализовывать логику.
С ASI Biont вы просто описываете задачу на естественном языке. AI сам генерирует и выполняет Python-код, используя любые библиотеки из сэндбокса (pyserial, requests, sqlite3, openpyxl и др.). Если нужно управлять реле для открытия замка – добавьте команду OPEN в прошивку и попросите AI отправлять её при совпадении UID.
Альтернативный сценарий: MQTT + ESP32 для непрерывного мониторинга
Если вам нужно автоматически считывать метки без запроса (например, для контроля прохода), используйте ESP32 с подключением по Wi-Fi и MQTT. Прошивка будет публиковать UID в топик каждый раз, когда метка приложена. ASI Biont через execute_python подписывается на топик (paho-mqtt) и обрабатывает события в real-time. Однако помните, что в бесплатной версии время выполнения скрипта ограничено 30 секундами – для длительной подписки может потребоваться премиум-аккаунт с долгими задачами. Уточняйте возможности на сайте.
Заключение
NFC-модуль PN532 – недорогой и надёжный способ идентификации. Интеграция с AI-агентом ASI Biont превращает его в интеллектуальное устройство, которое понимает ваши команды на естественном языке и автоматизирует учёт, доступ и уведомления. Вам не нужно писать код – достаточно описать задачу в чате.
Попробуйте сами на asibiont.com. Скачайте bridge, подключите PN532 к Arduino, дайте команду – и вы увидите, как AI оживляет железо.
Использованные источники:
- Adafruit PN532 Breakout Board Guide
- Официальная документация ASI Biont (раздел Hardware Bridge)
- Библиотека Adafruit PN532 для Arduino
Комментарии