Как подключить RC522 (RFID) к AI-агенту ASI Biont: гайд по интеграции с примерами кода
Вы когда-нибудь задумывались, как сделать RFID-систему, которая не просто считывает карты, но и принимает интеллектуальные решения? Обычный RC522 — это дешёвый и популярный модуль для чтения RFID-меток на частоте 13,56 МГц. Его часто используют в системах контроля доступа, учёта рабочего времени, автоматизации складов. Но без AI он остаётся просто считывателем: поднёс карту — открыл дверь, и всё.
С AI-агентом ASI Biont RC522 превращается в интеллектуальный узел: AI может анализировать историю проходов, предсказывать загруженность, управлять доступом по сложным правилам, интегрироваться с календарём или Telegram-уведомлениями. И самое главное — вам не нужно писать код интеграции вручную. Достаточно описать задачу в чате, и ASI Biont сам сгенерирует и выполнит код.
Что такое RC522 и зачем его подключать к ASI Biont
RC522 — это микросхема считывателя RFID, работающая на частоте 13,56 МГц и совместимая с протоколом MIFARE. Модуль общается с микроконтроллером (чаще всего Arduino или ESP32) по интерфейсу SPI. Он может читать и записывать данные на пассивные RFID-метки (карты, брелоки, наклейки) на расстоянии до 5-10 см.
Стандартное применение:
* Контроль доступа в офис или на склад
* Учёт рабочего времени сотрудников
* Идентификация объектов на конвейере
* Бесконтактная оплата в вендинговых автоматах
Подключение RC522 к AI-агенту ASI Biont даёт следующие преимущества:
* Интеллектуальное управление доступом: AI может анализировать время прихода/ухода, сверять с графиком работы, отправлять уведомления при опозданиях
* Автоматическая выдача пропусков: при сканировании новой карты AI может зарегистрировать её в базе данных и назначить права
* Сбор аналитики: AI строит отчёты по посещаемости, выявляет аномалии (например, многократное прикладывание одной карты за короткое время)
* Интеграция с другими системами: при сканировании карты AI может запускать сценарии — включать свет, открывать шлагбаум, отправлять SMS
Какой способ подключения используем и почему
Для интеграции RC522 с ASI Biont мы используем Hardware Bridge — отдельное приложение bridge.py, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и обеспечивает доступ к COM-портам локально.
Почему именно этот способ:
* RC522 обычно подключается к Arduino или ESP32, которые общаются с ПК через UART (COM-порт)
* ASI Biont работает в облаке и не имеет прямого доступа к локальным портам — bridge решает эту проблему
* Bridge поддерживает атомарную операцию serial_write_and_read: AI отправляет hex-строку, bridge пишет её в порт и сразу читает ответ
* Не нужно открывать порты в интернет — всё безопасно через WebSocket-соединение
Альтернативный вариант — если RC522 подключён к ESP32, который уже имеет Wi-Fi и отправляет данные по MQTT. В этом случае AI может подключаться через MQTT-брокер. Но для простоты и универсальности рассмотрим вариант с Arduino + COM-порт.
Сценарий: система контроля доступа с AI-аналитикой
Представьте: на проходной офиса стоит Arduino с RC522. При поднесении карты Arduino отправляет UID метки в COM-порт. ASI Biont через bridge читает UID, сверяет с базой данных, логирует событие и, если сотрудник опоздал, отправляет уведомление в Telegram. Если карта не зарегистрирована — AI записывает её как новую и назначает временный доступ.
Шаг 1. Схема подключения RC522 к Arduino
| Пин RC522 | Пин Arduino Uno |
|---|---|
| SDA (SS) | D10 |
| SCK | D13 |
| MOSI | D11 |
| MISO | D12 |
| IRQ | не используется |
| GND | GND |
| RST | D9 |
| 3.3V | 3.3V |
Важно: RC522 работает только от 3.3 В. Не подключайте к 5 В!
Шаг 2. Прошивка Arduino
Загрузите на Arduino следующий скетч. Он читает UID карты и отправляет его в COM-порт в формате CARD:XXXXXXXX (где XXXXXXXX — шестнадцатеричный UID).
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(115200);
SPI.begin();
mfrc522.PCD_Init();
Serial.println("RFID reader ready");
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
String uid = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
if (mfrc522.uid.uidByte[i] < 0x10) uid += "0";
uid += String(mfrc522.uid.uidByte[i], HEX);
}
uid.toUpperCase();
Serial.println("CARD:" + uid);
mfrc522.PICC_HaltA();
delay(1000);
}
}
Скетч использует библиотеку MFRC522 — установите её через менеджер библиотек Arduino IDE.
Шаг 3. Настройка Hardware Bridge
- Зайдите в дашборд ASI Biont (asibiont.com), перейдите в раздел Devices → Create API Key.
- Скопируйте API-ключ и скачайте файл
bridge.py(кнопка "Скачать bridge"). - Установите зависимости на компьютере, где будет запущен bridge:
pip install pyserial requests websockets
- Запустите bridge, указав ваш API-ключ, порт и скорость:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200 --rate=10
Замените COM3 на актуальный порт, к которому подключена Arduino (на Linux это может быть /dev/ttyUSB0, на macOS — /dev/cu.usbmodem*). Флаг --rate=10 ограничивает частоту команд до 10 в секунду.
Bridge установит WebSocket-соединение с ASI Biont и начнёт прослушивать команды.
Шаг 4. Пишем задачу в чате ASI Biont
Теперь откройте чат с AI-агентом и опишите задачу. Например:
"Подключись к моему Arduino через bridge. Порт COM3, скорость 115200. Когда приходит строка CARD:XXXXXX, проверь UID в базе данных. Если карта известна — запиши событие прохода в лог и отправь мне в Telegram уведомление. Если карта новая — зарегистрируй её как гостевую с доступом на сегодня. Используй SQLite для хранения данных."
AI сгенерирует и выполнит Python-скрипт в sandbox-окружении. Примерный код, который он может написать:
import sqlite3
import requests
import time
# Инициализация базы данных
conn = sqlite3.connect('access.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS cards
(uid TEXT PRIMARY KEY, name TEXT, role TEXT, valid_until TEXT)''')
c.execute('''CREATE TABLE IF NOT EXISTS logs
(id INTEGER PRIMARY KEY AUTOINCREMENT, uid TEXT, timestamp TEXT, status TEXT)''')
conn.commit()
# Функция отправки уведомления в Telegram
def send_telegram(message):
bot_token = "ВАШ_ТОКЕН_БОТА"
chat_id = "ВАШ_CHAT_ID"
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": message})
# Функция обработки карты
def process_card(uid):
c.execute("SELECT * FROM cards WHERE uid=?", (uid,))
row = c.fetchone()
if row:
# Карта известна
status = "access_granted"
message = f"Проход: {row[1]} ({row[2]}), UID: {uid}"
else:
# Новая карта — регистрируем как гостевую
from datetime import datetime, timedelta
valid_until = (datetime.now() + timedelta(days=1)).isoformat()
c.execute("INSERT INTO cards (uid, name, role, valid_until) VALUES (?, ?, ?, ?)",
(uid, "Guest", "guest", valid_until))
conn.commit()
status = "new_card_registered"
message = f"Новая гостевая карта: {uid}"
# Логируем событие
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
c.execute("INSERT INTO logs (uid, timestamp, status) VALUES (?, ?, ?)",
(uid, timestamp, status))
conn.commit()
send_telegram(message)
print(f"[{timestamp}] {message}")
# Основной цикл (запускается через industrial_command serial://)
# AI будет вызывать процессор для каждой новой строки из порта
Важно: этот код выполняется в sandbox ASI Biont, который не имеет прямого доступа к COM-порту. Для чтения данных AI использует механизм industrial_command с протоколом serial:// — bridge отправляет данные в порт и читает ответ. Если вы хотите, чтобы AI постоянно слушал порт, можно настроить bridge на периодический опрос (например, каждые 2 секунды) или использовать режим мониторинга.
Шаг 5. Проверка работы
Поднесите RFID-карту к модулю RC522. В консоли bridge вы увидите:
[INFO] Received: CARD:1234ABCD
[INFO] Sending to cloud...
AI обработает UID, зарегистрирует его (если новый) и отправит вам сообщение в Telegram. Готово!
Другие сценарии интеграции RC522 с ASI Biont
1. Учёт рабочего времени
Сценарий: сотрудники прикладывают карты при входе и выходе. AI ведёт учёт отработанных часов, формирует отчёты и отправляет их в конце недели.
Пример команды в чате:
"Подключись к COM4, 9600 baud. При получении CARD:UID записывай время входа. Если сотрудник уже внутри — фиксируй выход и считай разницу. В конце недели сформируй Excel-отчёт."
2. Умный склад с RFID-идентификацией
Сценарий: на каждом ящике на складе закреплена RFID-метка. Сотрудник подносит считыватель к ящику — AI определяет, что это за ящик, его содержимое и срок годности. При приближении срока годности AI отправляет напоминание.
3. Система оплаты обедов
Сценарий: в столовой прикладывают карту для списания средств. AI ведёт баланс сотрудника, списывает стоимость обеда, при отрицательном балансе блокирует доступ.
4. Автоматизация теплицы
Сценарий: RFID-метки закреплены на горшках с растениями. Садовник подносит считыватель — AI отображает информацию о растении, дате последнего полива, рекомендует удобрения.
Почему это выгодно: AI пишет код за секунды
Традиционный подход к интеграции RFID требует:
* Написать прошивку для Arduino (часы работы)
* Написать серверный код для обработки UID (дни работы)
* Настроить базу данных, Telegram-бота, систему логирования (ещё дни)
С ASI Biont вы просто описываете задачу на естественном языке. AI генерирует код, выполняет его в sandbox и подключается к вашему оборудованию через bridge. Всё занимает минуты, а не недели.
Более того, ASI Biont подключается к любому устройству через execute_python — AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку нового протокола. Хотите подключить RC522 через MQTT? Опишите задачу — AI напишет скрипт с paho-mqtt. Хотите через HTTP API? AI использует aiohttp. Всё происходит через диалог в чате, никаких панелей управления и кнопок «добавить устройство» не требуется.
Заключение
Интеграция RC522 (RFID) с AI-агентом ASI Biont открывает широкие возможности для автоматизации контроля доступа, учёта, аналитики. Вы получаете интеллектуальную систему, которая не просто считывает карты, а принимает решения на основе данных, общается с вами через Telegram, формирует отчёты и адаптируется под ваши задачи.
Попробуйте сами: скачайте bridge из дашборда ASI Biont, подключите Arduino с RC522 к COM-порту и опишите в чате свою задачу. AI сделает всю работу за секунды.
Попробуйте интеграцию на asibiont.com
Комментарии