Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

RFID-замок для Windows: мгновенная блокировка/разблокировка ПК

Компоненты и материалы

Arduino Micro (или Leonardo) с ATmega32U41Критично: нужен ATmega32U4 для HID (клавиатура/мышь)
RFID-модуль RC5221Питание 3.3V!
Резисторы 10 кОм3Для делителя напряжения 5V→3.3V

Инструменты

Программное обеспечение

О проекте

Устали вводить пароль каждый раз при разблокировке Windows? Это устройство разблокирует/блокирует ПК простой картой RFID. Arduino Micro/Leonardo с ATmega32U4 эмулирует клавиатуру (библиотека Keyboard.h) и отправляет комбинацию Win+L (блокировка), затем Enter, ваш пароль и ещё раз Enter.

Почему именно ATmega32U4?

Только платы на ATmega32U4 (Micro, Leonardo) имеют встроенный USB-контроллер и могут выступать HID-устройством. Uno, Mega, Nano, Pro Mini — не подходят.

Сборка прототипа на бредоборде

Подключение RC522 (SPI):

Важно: SPI-пины (14, 15, 16) фиксированы, менять нельзя.

Настройка кода

  1. Загрузите скетч, откройте Serial Monitor (9600 бод).
  2. Приложите карту — в мониторе появится UID (например, 48b45a10).
  3. В коде замените String card1 = "48b45a10"; на свой UID.
  4. Замените Keyboard.print("PASSWORD"); на свой пароль/PIN Windows.
  5. Перезагрузите скетч.

Пайка и корпус

Рекомендую макетную плату с панельными разъёмами для Arduino и RFID — так можно снять модули и не перегреть их при пайке. Корпус можно сделать из картона, акрила или 3D-печати. Автор использовал картон и карбоновый винил.

Как это работает

⚠ Безопасность

Это хобби-проект для домашнего использования. Не гарантирует защиту от взлома. Оцените риски перед использованием.

Код (C/C++)

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

#define SS_PIN 10
#define RST_PIN 5
#define KEY_RETURN 0xB0

MFRC522 mfrc522(SS_PIN, RST_PIN);
char Enter = KEY_RETURN;
String readid;
String card1 = "48b45a10"; // ← ВСТАВЬТЕ СВОЙ UID

void setup() {
  Serial.begin(9600);
  Keyboard.begin();
  SPI.begin();
  mfrc522.PCD_Init();
}

void temp(byte *buffer, byte bufferSize) {
  readid = "";
  for (byte i = 0; i < bufferSize; i++)
    readid += String(buffer[i], HEX);
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent()) return;
  if (!mfrc522.PICC_ReadCardSerial()) return;

  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  temp(mfrc522.uid.uidByte, mfrc522.uid.size);

  if (readid == card1) {
    Keyboard.press(KEY_LEFT_GUI); Keyboard.press('l'); Keyboard.releaseAll();
    delay(100);
    Keyboard.press(Enter); Keyboard.release(Enter);
    delay(100);
    Keyboard.print("PASSWORD"); // ← ВСТАВЬТЕ СВОЙ ПАРОЛЬ
    Keyboard.releaseAll();
    delay(100);
    Keyboard.press(Enter); Keyboard.releaseAll();
  }
}

Схема подключения

Фото схемы и готовых устройств в разделе Schematics.

Производственный процесс

  1. Внутри банковских хранилищ: история, дизайн и будущее безопасности
  2. Каналы и шлюзы: инженерия, история и будущее водного транспорта в США
  3. Эволюция и производство современных цилиндровых замков с пин-тумблерами
  4. Освоение операторов using в C#: импорт, псевдонимы и статические директивы
  5. Удалённый мониторинг погоды на Raspberry Pi 3 с PubNub
  6. Интеграция TI SensorTag с Blynk через Node‑RED на Raspberry Pi Zero
  7. Управление светодиодом с PIR-датчиком движения на Raspberry Pi
  8. Создание умного робота с Bridge Shield — интеграция Raspberry Pi и Arduino
  9. Создание робота с компьютерным зрением и голосовым управлением на Windows 10 IoT Core
  10. WiFi-умный замок на Arduino и ESP8266 — открывание с телефона