• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Авторизация в windows с помощью Arduino и RC522

11 января, 2018

Для реализации данного примера нам понадобится:

Arduino nano: http://ali.pub/1x1jri

Контактные провода : http://ali.pub/1th4xf

Rc522: http://ali.pub/26gq1k

Buzzer: http://ali.pub/1hzdau

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Для начала давайте разберемся что за модуль RC522. Это модуль считывания авторизационных карт (пропусков) Данный модуль можно использовать в Системах контроля доступом, собственно для этого мы его и используем.

Характеристики (от продавца):

— Напряжение: 3.3В
— Потребляемый ток в активном состоянии:13-26 мА
— Потребляемый ток в состоянии ожидания: 10-13 мА
— Ток в режиме сна: менее 80 мкА
— Пиковое потребление: менее 30 мА
— Рабочая частота: 13.56 МГц
— Поддержвиаемые типы карт: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
— Интерфейс: SPI
— Размеры: 40х60 мм

Данный модуль подключается по шине SPI. Для подключения требуется 7 проводов.

Ну вроде бы все, с модулем разобрались. Давайте теперь перейдем к нашему проекту.

Проект работает таким образом:

Для начала подключим все по схеме приведенной ниже.

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

Далее загружаем готовый скетч который приведен ниже, и считываем с помощью RC522 карту, которую будем использовать для авторизации.

 

/**
 * ----------------------------------------------------------------------------
 * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid
 * for further details and other examples.
 *
 * NOTE: The library file MFRC522.h has a lot of useful info. Please read it.
 *
 * Released into the public domain.
 * ----------------------------------------------------------------------------
 * This sample shows how to read and write data blocks on a MIFARE Classic PICC
 * (= card/tag).
 *
 * BEWARE: Data will be written to the PICC, in sector #1 (blocks #4 to #7).
 *
 *
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS 1    SDA(SS)      ** custom, take a unused pin, only HIGH/LOW required **
 * SPI SS 2    SDA(SS)      ** custom, take a unused pin, only HIGH/LOW required **
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 *
 */

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9          // Configurable, see typical pin layout above
#define SS_1_PIN        10         // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 2
#define SS_2_PIN        8          // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 1
#define OUT_PIN_GREEN   4          // green LED - card OK
#define OUT_PIN_RED     5          // red LED - another card
#define NR_OF_READERS   2          
#define BUZZER 3                   // buzzer

byte ssPins[] = {SS_1_PIN, SS_2_PIN};

MFRC522 mfrc522[NR_OF_READERS];   // Create MFRC522 instance.

/**
 * Initialize.
 */
void setup() {

  Serial.begin(9600); // Initialize serial communications with the PC
  while (!Serial);    // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
  pinMode (OUT_PIN_GREEN, OUTPUT);
  pinMode (OUT_PIN_RED, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  SPI.begin();        // Init SPI bus

  for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
    mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
  }
}

/**
 * Main loop.
 */
void loop() {

uint32_t id;

  for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) { // Look for new cards if (mfrc522[reader].PICC_IsNewCardPresent() && mfrc522[reader].PICC_ReadCardSerial()) { Serial.print(F(">ID:"));
    dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size);
    Serial.println();
    //Serial.print(F("PICC type: "));
    MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak);
    ///  Serial.println(mfrc522[reader].PICC_GetTypeName(piccType));
    Serial. println (id);
// LED configure
byte uidCard[4] = {0xA6, 0x4B, 0xC4, 0x3B};
for (byte i = 0; i < 4; i++) {
   if (uidCard[i] == mfrc522[reader].uid.uidByte[i]) {
      digitalWrite (OUT_PIN_GREEN, HIGH);
      tone(BUZZER, 2000); // 2KHz sound signal...
      delay (400);
      noTone(BUZZER);     // Stop sound...
      digitalWrite (OUT_PIN_GREEN, LOW);
      return;
      }
    else
    {
      digitalWrite (OUT_PIN_RED, HIGH);
      tone(BUZZER, 2000);  // 2KHz sound signal...
      delay (1500);
      noTone(BUZZER);     // Stop sound...
      digitalWrite (OUT_PIN_RED, LOW);
      return;    
    }
  }
}
      // Halt PICC
      mfrc522[reader].PICC_HaltA();
      // Stop encryption on PCD
      mfrc522[reader].PCD_StopCrypto1();
    } //if (mfrc522[reader].PICC_IsNewC
} //for(uint8_t reader
  
/**
 * Helper routine to dump a byte array as hex values to Serial.
 */
 void dump_byte_array(byte *buffer, byte bufferSize) {
   for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

В этом скетче нас интересует для изменения только одна строчка:

byte uidCard[4] = {0xA6, 0x4B, 0xC4, 0x3B};

Здесь Нужно прописать свой id карточки, которую можно будет отсканировать этим же скетчем открыв монитор com порта.
id карты высветится в HEX формате. и нужно его записать по группам в этой строчке, при этом оставив в каждой группе “0x”.
После этих манипуляций. загрузим скетч в ардуино и перейдем уже к непосредственной настройке ПК.
Для настройки ПК скачаем Архив: https://yadi.sk/d/dP7POaM23RN7W3
И зайдем в папку RC522WindowsLogon > Setting-PC здесь выберем папку 32 или 64 в зависимости от рязрядности вашей ОС в моем случае 64.
В этой Папке находятся три файла один с расширением .dll и два .txt
Вот файлы с расширением .txt нам и нужно отредактировать.
Сначала откроем первый файл под названием RFIDCredentials.txt Там будет написана строчка ” A6 4B C4 3B|psenyukov|123″
Где ” id карты|логин|пароль” и Важно, что перед id карты стоит пробел, иначе у Вас логиниться не будет. Вообщем исправьте этот файл под свои нужды, а именно введите свой id логин и пароль.
В следующем файле “RFIDCredSettings.txt” нужно только указать правильный номер Com порта к которому у Вас будет подключена Ардуино. Важно понимать, что каждый ЮСБ имеет свой номер СОМ порта при подключенной к нему Ардуино, это нужно выйснить и вписать в Файл.
После всех манипуляций с редактированием файлов, нужно эти три файла .dll и два .txt перенести в C:\Windows\System32
После этого в Папке “RC522WindowsLogon > Setting-PC” есть файлик “Register.reg” его нужно запустить и согласиться со всеми полями предупреждения которые выскочат в последствии.

После этого перезагружаем ПК и у Нас появится еще одна учетная завись “rfid” и мы теперь приложив карточку можем залогинится без ввода пароля.

Ну а для тех кто не внимательно читал и для Визуальной демонстрации Видео :

https://www.youtube.com/watch?v=TTfs9KfgqIc

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·