RFID-замок для Windows: мгновенная блокировка/разблокировка ПК
Компоненты и материалы
| Arduino Micro (или Leonardo) с ATmega32U4 | 1 | Критично: нужен ATmega32U4 для HID (клавиатура/мышь) |
| RFID-модуль RC522 | 1 | Питание 3.3V! |
| Резисторы 10 кОм | 3 | Для делителя напряжения 5V→3.3V |
Инструменты
- Паяльник
Программное обеспечение
- Arduino IDE
О проекте
Устали вводить пароль каждый раз при разблокировке 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):
- VCC → 3.3V (через делитель 2×10кОм или стабилизатор 5V→3.3V)
- GND → GND
- RST → D5 (можно изменить в коде)
- MISO → D14 (SCK на Micro/Leonardo)
- MOSI → D16 (MOSI)
- SCK → D15 (SCK)
- SDA (SS) → D10 (можно изменить)
- IRQ — не подключен
Важно: SPI-пины (14, 15, 16) фиксированы, менять нельзя.
Настройка кода
- Загрузите скетч, откройте Serial Monitor (9600 бод).
- Приложите карту — в мониторе появится UID (например,
48b45a10). - В коде замените
String card1 = "48b45a10";на свой UID. - Замените
Keyboard.print("PASSWORD");на свой пароль/PIN Windows. - Перезагрузите скетч.
Пайка и корпус
Рекомендую макетную плату с панельными разъёмами для Arduino и RFID — так можно снять модули и не перегреть их при пайке. Корпус можно сделать из картона, акрила или 3D-печати. Автор использовал картон и карбоновый винил.
Как это работает
- При считывании верного UID Arduino отправляет: Win+L → Enter → пароль → Enter.
- Если ПК был заперт — разблокируется. Если был открыт — блокируется (Win+L срабатывает мгновенно, пароль не успевает ввестись).
- Задержка 100 мс между нажатиями.
⚠ Безопасность
Это хобби-проект для домашнего использования. Не гарантирует защиту от взлома. Оцените риски перед использованием.
Код (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.
Производственный процесс
- Внутри банковских хранилищ: история, дизайн и будущее безопасности
- Каналы и шлюзы: инженерия, история и будущее водного транспорта в США
- Эволюция и производство современных цилиндровых замков с пин-тумблерами
- Освоение операторов using в C#: импорт, псевдонимы и статические директивы
- Удалённый мониторинг погоды на Raspberry Pi 3 с PubNub
- Интеграция TI SensorTag с Blynk через Node‑RED на Raspberry Pi Zero
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Создание умного робота с Bridge Shield — интеграция Raspberry Pi и Arduino
- Создание робота с компьютерным зрением и голосовым управлением на Windows 10 IoT Core
- WiFi-умный замок на Arduino и ESP8266 — открывание с телефона