• 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 leonardo и RC522

22 января, 2018

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

Arduino leonardo: http://ali.pub/27l76l

Или Arduino pro micro: http://ali.pub/27l7fj

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

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

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: 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 проводов.

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

В данной статье мы заставим Arduino leonardo блокировать и разблокировать windows с помощью RFID метки и модуля RC522. Leonardo это будет делать путем имитации клавиатуры и нажатий кнопок и ввода пароля с клавиатуры.

Для начала нам нужно к Arduino leonardo подключить RFID RC522 модуль. Для этого привожу схему из стандартной библиотеки под модуль RC522

Итак из схемы видно как данный модуль RC522 подключать к разным моделям Arduino. Нам же нужно только как подключить к Arduino leonardo. Пины RST и SDA понятно куда подключать к 9 и 10 пинам Arduino, но что же такое ICSP? это специальная гребенка из 8 пинов на ардуино форм фактора “Arduino uno” Давайте посмотрим на них на схеме:

Вот в самом низу платы мы какраз наблюдаем данные пины. Отсчет у этих пинов начинается с правой стороны где точка.

С подключением вроде разобрались, давайте теперь перейдем к самому скетчу.

/*
   Material
   1pcs Arduino Leonaldo/Micro/Pro Micro
   1pcs LED
   1pcs Buzzer
   1pcs RFID(RC522)
   2pcs RFID Card
   RFID(RC522)Aruino Library Download Link → https://github.com/miguelbalboa/rfid
  ============================================================================================
  =              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         9                RST        =
  =  SPI SS      SDA(SS)      10            53        D10        10               10         =
  =  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         =
  =  3.3v        3.3v         3.3v          3.3v      3.3v       3.3v             vcc        =
  =  GND         GND          GND           GND       GND        GND              GND        =
  =============================================================================================
*/

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

#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);


int led = 5;

char st[20];

void setup()
{
  pinMode(led, OUTPUT);
  
  Serial.begin(9600);
 
  SPI.begin();
  
  mfrc522.PCD_Init();
 
  Serial.println("...");
  Serial.println();
}

void loop()
{
  
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  
  Serial.print("UID  :");
  String conteudo = "";
  byte letra;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
    conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Check card : ");
  conteudo.toUpperCase();

  // Проверяет прочитана ли карта
  if (conteudo.substring(1) == "57 78 3A D5")
    //)Запустите последовательный порт для того чоб узнать UID карты
  {
    
    digitalWrite(led, HIGH);
    tone(7, 2500, 150);
    Keyboard.press(KEY_LEFT_CTRL);
    Keyboard.press(KEY_LEFT_ALT);
    Keyboard.press(KEY_DELETE);
    delay(100);
    Keyboard.releaseAll();
    delay(200);
    digitalWrite(led, LOW);
    Keyboard.write(KEY_RETURN);
    delay(2000);
    //Keyboard.write(KEY_RETURN);
  }

  // операция с второй картой
  if (conteudo.substring(1) == "A6 4B C4 3B")
    //)Запустите последовательный порт для того чоб узнать UID карты
  {  digitalWrite(led, HIGH);
    tone(7, 2500, 150);
    Keyboard.write(KEY_RETURN);
    delay(1500);
    Keyboard.print("password");//Ваш пароль от компьютера
    Keyboard.write(KEY_RETURN);
      digitalWrite(led, LOW);
  }
  delay(1000);
  


}

Главное для редактирования нас интересуют строчки:

if (conteudo.substring(1) == "A6 4B C4 3B")

где в формате HEX вписан UID нашей карты. Его можно узнать просто открыв монитор порта и прислонив карту к модулю RC522.
Ссылочка на файл со скетчем для скачивания:https://yadi.sk/d/Z81IeCHk3Rg7g2

Для тех у кого есть 3d принтер Оставлю еще ссылку на STL файл для распечатывания корпуса под это все дело: https://yadi.sk/d/iV1U59RD3Rg7ux

Ну а для наглядной работы смотрите видео :

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 ·