Вход в Windows с помощью Arduino и радиочастотной идентификации (RFID)

Как известно, компьютеры были изобретены в 1871 году, но только в 1961 году контроль доступа к ним (ПК) начали осуществлять с помощью пароля. В настоящее время кроме буквенно-цифровых паролей доступно и множество новых, появившихся сравнительно недавно, способов идентификации: с помощью жестов, отпечатка пальца, распознавания лица и многое другое.

Внешний вид проекта по входу в Windows с помощью Arduino и радиочастотной идентификации (RFID)

В этой статье мы рассмотрим как разблокировать компьютер, работающий на операционной системе Windows, с помощью платы Arduino и меток RFID (Radio Frequency Identification - радиочастотная идентификация). К компьютеру будут подключены плата Arduino и считыватель RFID меток и чтобы разблокировать компьютер нужно будет всего лишь поднести "правильную" радиочастотную метку к считывателю RFID меток.

На нашем сайте вы можете посмотреть все проекты, в которых используется радиочастотная идентификация.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. RC522 RFID reader (считыватель радиочастотных меток) (купить на AliExpress).
  3. RFID метки.
  4. USB кабель.
  5. Соединительные провода.

Считыватель RFID меток RC522

Сейчас на рынке доступно достаточно много моделей считывателей RFID меток, однако для нашего проекта мы выбрали модуль RC522, работающий по интерфейсу SPI. Это достаточно дешевое устройство, доступное для покупки практически во всех магазинах радиоэлектроники. Модуль RC522 имеет интерфейсы SPI, UART и I2C, однако по умолчанию он использует интерфейс SPI. Внешний вид данного модуля показан на следующем рисунке.

Внешний вид модуля RFID RC522

В этом проекте модуль RC522 подключен к плате Arduino, а плата Arduino подключена к компьютеру. Когда RFID метку подносят к модулю RC522, плата Arduino с его помощью считывает идентификатор RFID метки (ID number) и передает его в компьютер.

Схема проекта

Схема подключения считывателя RFID меток RC522 к плате Arduino представлена на следующем рисунке.

Схема подключения считывателя RFID меток RC522 к плате Arduino

Поскольку RFID модуль RC522 работает по интерфейсу SPI, то подключить его к плате Arduino достаточно просто – мы соединили его контакты MISO, MOSI, SCK и NSS к контактам SPI платы Arduino Uno. Модуль RC522 запитывается от контакта 5V платы Arduino. Сама же плата Arduino получает питание по USB кабелю от компьютера. Полный список соединений в схеме представлен в следующей таблице.

Модуль RC522 Плата Arduino Uno
VCC 3.3V
GND GND
RST D9
MISO D12
MOSI D11
SCK D13
SDA/NSS D10

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Установка блокировки/разблокировки компьютера с помощью RFID

После сборки схемы проекта подключите плату Arduino к компьютеру. Определите COM порт компьютера, к которому подключилась плата Arduino – это можно сделать либо с помощью диспетчера устройств Windows, либо с помощью Arduino IDE как показано на следующем рисунке. В нашем случае плата Arduino оказалась подключенной к COM порту под номером 1.

Определение COM порта с помощью Arduino IDE

После этого в плату Arduino необходимо загрузить код программы для работы с модулем RC522 – он приведен в конце статьи. После загрузки кода программы в плату откройте окно монитора последовательной связи (serial monitor). Затем прислоните RFID метку к модулю RC522, после чего вы увидите в окне монитора последовательной связи 5 значений. Эти значения необходимо скопировать себе в "укромное место" и закрыть окно монитора последовательной связи. Полученные нами значения показаны на следующем рисунке.

Полученные нами значения RFID

После этого скачайте каталог с настройками RFID (rfid_configuration folder) по следующей ссылке - rfid_configuration ZIP file. По этой ссылке вы скачаете ZIP архив, в котором будет 4 файла.

После распаковки ZIP архива зайдите в нем в каталог с именем 32 bit или 64-bit в зависимости от того 32 или 64-разрядная у вас операционная система. В этом каталоге откройте текстовый файл RFIDcredentials.txt. Вставьте в него свои значения из окна монитора последовательной связи (которые вы получили ранее) и обновите (укажите свои) имя пользователя (user name) и пароль (password). Если вы хотите добавить две карты для входа в операционную систему, то заполните и вторую строчку в файле RFIDcredentials.txt как показано на следующем рисунке.

Редактирование файла RFIDcredentials.txt

После этого сохраните и закройте этот файл. Затем откройте из этой же папки файл RFIDCredSettings, измените в нем номер COM порта, к которому подключена плата Arduino, на свой, сохраните и закройте этот файл. Остальные значения в файле не меняйте.

Редактирование файла RFIDCredSettings

Теперь скопируйте все 4 элемента нашего каталога, которые вы извлекли из скачанного ZIP архива и изменили в них часть значений на свои, в каталог C:\Windows\System32. Если система потребует подтверждения этой операции – подтвердите ее.

Копирование необходимых файлов в системный каталог Windows

Теперь запустите файл реестра (register file) чтобы внести изменения в реестр. При этом, скорее всего, вы на своем экране увидите примерно следующее диалоговое окно:

Предупреждение Windows о рисках при внесении изменений в реестр

Нажмите "yes", затем "ok". После этого осуществите выход из системы и вы увидите что в систему был добавлен еще один пользователь – с именем RFID.

В системе появился еще один пользователь - с именем RFID

Вход в учетную запись этого пользователя теперь можно будет осуществлять с помощью RFID карт/меток. То есть никакого пароля на вход в систему вводить уже не будет нужно – достаточно будет всего лишь прислонить RFID метку к RFID считывателю и вход в систему произойдет автоматически.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе нам необходимо подключить заголовочные файлы всех используемых библиотек и определить контакты для RFID RST_PIN и SS_PIN. Если в вашей Arduino IDE еще нет библиотеки для работы с модулем RC522 (mfrc522 library), то вы можете скачать ее по следующей ссылке - MFRC522 Arduino Library. После скачивания библиотеку необходимо добавить в вашу Arduino IDE.

Затем в функции void setup мы инициализируем последовательную связь со скоростью 9600 бод и связь по интерфейсу SPI со считывателем RFID меток.

После этого в функции void loop() мы будем ждать когда к считывателю прислонят RFID карту.

Если карта будет найдена, то произойдет вызов функции send_tag_val, которая передаст данные из RFID метки в компьютер с помощью порта последовательной связи. Эти данные в компьютере будут сравниваться с данными, которые мы ранее сохранили в файле – при их совпадении будет осуществлен вход (разблокировка) в систему.

Более подробно работа проекта показана в видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
1 276 просмотров

Комментарии

Вход в Windows с помощью Arduino и радиочастотной идентификации (RFID) — 4 комментария

  1. Добрый день ! Нужна помощь, в MFRC522 Arduino Library какой нужно выбрать пример из библиотеки чтобы загрузить код програмы и узнать связь из 5-ти значений?

    • Добрый вечер. К сожалению, я не помню. Сейчас нет Arduino IDE под рукой, не могу посмотреть

  2. Добрый день! Требуется ваша помощь. Выполняю все по пунктам, но не создаётся пользователь, и ничего не происходит при прикладывании карты. Ответьте пожалуйста, очень необходима помощь в этом вопросе!

    • Добрый вечер, насчет нюансов при создании нового пользователя в Windows не помогу, не очень силен в этих вопросах - вам лучше поискать ответ на это на специализированных сайтах про компьютеры, а с программой на Ардуино могу попробовать помочь. У вас при выполнении программы выводятся указанные в статье данные в монитор последовательного порта связи?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *