Представляю вам образовательный проект — “RFID-сейф”, разработанный в рамках учебно-методического комплекса на базе одноплатного компьютера Repka PI 4.
Проект представляет собой систему безопасности для сейфа, использующую технологию RFID для авторизации доступа. Система автоматически открывает замок, управляемый сервоприводом, при условии, что карта с правильным UID (уникальным идентификатором) успешно проходит проверку. Также система закрывает замок, если карту поднести повторно, обеспечивая надежную защиту от несанкционированного доступа.
Проект будет собираться с использованием “Учебно-методический комплекс REPKA”. Схему сборки можно найти в разделе "Примеры готовых проектов" учебного пособия УМК “REPKA”.
Также все необходимые материалы и схемы подключения доступны в репозитории на платформе Gitflic.
Компоненты проекта
- Сервопривод MG90S используется для управления механизмом замка сейфа, см. рисунок 1.
2. Модуль RFID RC-522 используется для считывания данных с RFID меток или карт, см. рисунок 2. Каждая карта или метка имеет уникальный UID (идентификатор), который модуль может считать при поднесении.
3. Дисплей OLED 0.96" I2C используется для отображения информации о состоянии системы безопасности.
Ссылки на модули приведены в таблице ниже.
Компонент | Ссылка на приобретение |
---|---|
Монтажная/макетная плата | Ссылка |
Шлейф | Ссылка |
Переходник с шлейфа на макетную плату | Ссылка |
Соединительные провода | |
Сервопривод MG90S | Ссылка |
RFID RC-522 | Ссылка |
Дисплей OLED 0.96" I2C | Ссылка |
Подготовительный этап
1. Подключим дополнительное питание 5V к макетной плате:
2. После чего выведем дополнительное питание на макетную плату:
3. Подключим переходник с шлейфа на макетную плату:
4. Соединим шлейф с переходником для подключения к макетной плате и Repka Pi 4:
5. Итоговый результат должен выглядеть таким образом:
Сборка проекта
Во время сборки проекта будем регулярно обращаться к электрической принципиальной схеме и монтажной схеме, представленными в учебном пособии (см. рисунки 4 и 5). Эти схемы будут служить основным ориентиром на всех этапах подключения компонентов, обеспечивая точность и правильность сборки устройства.
Для разработки кода будет использоваться текстовый редактор Geany, который входит в состав стандартного ПО Репка ОС.
Электрическая принципиальная схема
Монтажная схема
1. Подключение сервопривода MG90S
Как видно из рисунков 4 и 5 сервопривод MG90S подключается через GPIO25 и питается от 5V.
1.1. Подключаем MG90S к макетной плате согласно таблице 1:
Макетная плата | MG90S |
---|---|
5V | VIN |
GND | GND |
GPIO25 | PWM |
Таблица 1. Подключение MG90S к макетной плате.
1.2. Результат подключения будет выглядеть следующим образом, см. рисунок 6:
2. Для проверки правильности подключения используем Python скрипт из репозитория repka-pi_iot-examples.
2.1. Клонируем репозиторий:
git clone git@gitflic.ru:repka_pi/repka-pi_iot-examples.git
2.2. Переходим в репозиторий:
cd repka-pi_iot-examples/
2.3. Выполним установку зависимостей.
2.3.1. Если хотите установить зависимости только для сервопривода MG90S, выполните:
make setup-MG90S
2.3.2. Если хотите установить зависимости для всех датчиков и проектов, выполните:
make setup-all
2.4. Запускаем скрипт для проверки:
make MG90S
2.4.1. Если нет никакой реакции, то проверьте номер GPIO указанный в скрипте по пути devices/executive/MG90S_example/py
TX_GPIO = 111 # Номер GPIO-пина, к которому подключён сигнальный вывод сервопривода
2.4.2. Обратимся к пособию УМК “REPKA”, в котором представлена распиновка Repka PI 4 (рисунок 7). Из нее следует, что уникальный идентификатор порта GPIO25 равен 359.
TX_GPIO = 359 # Номер GPIO-пина, к которому подключён сигнальный вывод сервопривода
2.5. Как показано на рисунке 8, скрипт был успешно выполнен, и при установке значения в диапазоне от 500 до 2500, сервопривод выполняет поворот.
3. Подключение модуля RFID RC-522.
Как видно из рисунков 4 и 5 RFID RC-522 подключается через SPIA интерфейс и питается от 3V.
3.1. Подключим RFID RC-522 к макетной плате согласно таблице 3:
Макетная плата | RC-522 |
3.3V | 3.3V |
GPIO17 | RST |
GND | GND |
SPIMISO | MISO |
SPIMOSI | MOSI |
SPICLK | SCK |
SPICEO | SDA |
Таблица 3. Подключение RFID RC-522 к макетной плате.
3.2. Результат подключения будет выглядеть следующим образом, см. рисунок 9.
4. Аналогично пункту 2 выполним проверку подключения устройства.
4.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для RFID RC-522 модуля, выполнив:
make setup-RC-522
4.2. Запустим python скрипт:
make RC-522
4.3. Если все подключено правильно, то после того, как мы приложим карту, на экране появится приветственное сообщение, как показано на рисунке 10.
5. Подключение дисплея OLED 0.96″ I2C.
Как видно из рисунков 6 и 7 устройство подключается через интерфейс I2C и питается от 5V.
5.1. Подключим дисплей OLED 0.96″ I2C к макетной плате согласно таблице 4.
Макетная плата | Дисплей OLED 0.96″ I2C |
5V | VDD |
GND | GND |
SCL1 | SCK |
SDA1 | SDA |
Таблица 4. Подключение дисплея OLED 0.96″ I2C к макетной плате.
5.2. Результат подключения будет выглядеть следующим образом, см. рисунок 11.
6. Аналогично пункту 2 выполним проверку подключения устройства.
6.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для дисплей модуля, выполнив:
make setup-OLED-SSD1306
6.2. Запустим python скрипт:
make OLED-SSD1306
6.3. Из рисунка 12 видим, что скрипт успешно выполнился, тестовый текст появился на дисплее.
Запуск проекта
Теперь, когда все компоненты подключены, можно запустить проект "RFID-сейф". Для этого в репозитории repka-pi_iot-examples выполняем команду:
make rfid-safe
После запуска на дисплее мы можем наблюдать статус замка, как показано на рисунке 13 и 14. Также при поднесении RFID ID метки замок в виде сервопривода будет открываться или закрываться.
В программе предусмотрена защита от несанкционированных меток: только разрешённые метки могут активировать замок, см. рисунок 15. Разрешённые метки указаны в скрипте по пути repka-pi_iot-examples/sample_projects/rfid_safe_demo:
# UID допустимой карты
AUTHORIZED_UID = ["C5", "2E", "B0", "05"] # Замените на реальный UID вашей карты для авторизации
Практическая значимость проекта
Проект "RFID-сейф" представляет собой практическое решение для обеспечения безопасности хранения личных вещей и ценностей с использованием технологий RFID. Такая система может найти широкое применение в различных сферах, включая личные сейфы, защищенные шкафы, системы контроля доступа на предприятиях и в частных домах. Применение RFID-технологии позволяет создать удобный и надежный способ авторизации с минимальными усилиями для пользователя (просто поднесите метку или карту). Это повышает уровень безопасности, исключая необходимость запоминания паролей или использования физических ключей, которые могут быть потеряны или украдены.
Проект также позволяет продемонстрировать реальное применение технологий микроконтроллеров, радиочастотной идентификации и управления механическими устройствами, что является ценным образовательным инструментом. Он может служить основой для создания более сложных систем безопасности и интеграции с другими технологиями, такими как биометрия или сети умного дома.
Расширение проекта
-
Интеграция с мобильными приложениями: Проект можно расширить за счет создания мобильного приложения, которое будет взаимодействовать с RFID-сейфом через Bluetooth или Wi-Fi. Пользователь мог бы удаленно управлять замком сейфа или получать уведомления о попытках несанкционированного доступа.
-
Многофакторная аутентификация: Для повышения уровня безопасности можно добавить возможность комбинированного использования RFID с PIN-кодом или биометрической аутентификацией (например, считывание отпечатков пальцев).
-
Использование облачных технологий: Внедрение облачного хранения данных позволит управлять доступом и контролировать состояние сейфа через интернет. Это обеспечит возможность удаленной настройки и мониторинга.
-
Интеграция с системами умного дома: Система может быть связана с другими устройствами умного дома, такими как камеры наблюдения, сигнализация или системы освещения, для создания более комплексной системы безопасности.
-
Модуль расширенной безопасности: Можно добавить дополнительные датчики, такие как датчики движения или вибрации, для защиты от попыток вскрытия сейфа.
-
Автоматическое отслеживание доступа: Проект можно дополнить функцией ведения журнала доступа, записывая информацию о времени и идентификаторе карты каждого открытия сейфа. Эти данные могут храниться в локальной базе данных или в облаке.
Видеообзор проекта
Для более детального ознакомления с проектом, вы можете посмотреть видеообзор на платформе Rutube.
Пример использования с Python
Проект полностью реализован на языке Python. Код для работы с RFID-сейфом можно найти в репозитории на платформе Gitflic.