Bloqueo/desbloqueo de PC Windows con RFID (Arduino Micro/Leonardo)
Componentes y materiales
| Componente | Cantidad | Notas |
|---|---|---|
| Arduino Micro (o Leonardo) con ATmega32U4 | 1 | Imprescindible: solo estos boards emulan teclado USB nativo. |
| Módulo RFID RC522 | 1 | Funciona a 3.3V, requiere divisor de tensión o regulador. |
| Resistencias 10 kΩ | 3 | Para divisor de tensión (5V → 3.3V) en VCC del RC522. |
Herramientas
- Soldador (para versión definitiva en PCB).
Software
- Arduino IDE (seleccionar board "Arduino Leonardo").
Sobre el proyecto
¿Cansado de teclear la contraseña cada vez que bloqueas el PC? Este dispositivo usa una tarjeta/tag RFID para enviar la combinación de teclas Win+L (bloquear) seguida de tu contraseña y Enter (desbloquear) automáticamente. El Arduino Micro/Leonardo, gracias a su chip ATmega32U4, es reconocido por Windows como un teclado HID.
Montaje en protoboard
- RC522 VCC → 3.3V (via divisor 2×10kΩ desde 5V del Arduino).
- RST → pin 5 (configurable en código).
- GND → GND.
- MISO → pin 14 (MISO hardware).
- MOSI → pin 16 (MOSI hardware).
- SCK → pin 15 (SCK hardware).
- SDA → pin 10 (configurable).
- IRQ → no conectado.
Importante: Los pines SPI (14, 15, 16) son fijos en el Micro/Leonardo.
Configuración del código
- Sube el sketch inicial y abre el Monitor Serie (9600 baudios).
- Acerca tu tarjeta RFID: la primera línea mostrada es su UID (ej.
48b45a10). - Modifica en el código:
String card1 = "TU_UID";(línea ~41). - Cambia
Keyboard.print("PASSWORD");por tu contraseña/PIN de Windows (línea ~80). - Vuelve a subir el código modificado.
Código completo
#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"; // <-- CAMBIAR A TU 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("TU_CONTRASEÑA_AQUI"); // <-- CAMBIAR
Keyboard.releaseAll();
delay(100);
Keyboard.press(Enter);
Keyboard.releaseAll();
}
}
Versión definitiva (PCB y carcasa)
Se recomienda soldar en placa de prototipado usando zócalos para el Arduino y el módulo RFID. La carcasa puede ser impresa en 3D o hecha con cartón/acrílico. El autor usó una caja de cartón forrada con vinilo efecto fibra de carbono.
Advertencia de seguridad
Este es un proyecto hobby. Almacena la contraseña en texto plano en el firmware. No usar en entornos que requieran seguridad real.
Proceso de manufactura
- Por Dentro de las Cámaras Acorazadas Bancarias: Historia, Diseño y Futuro de la Seguridad
- Canales y esclusas: ingeniería, historia y futuro del transporte fluvial en EE. UU.
- La evolución y fabricación de cerraduras modernas de cilindro de pines
- Cerradura de combinación: Diseño, fabricación y evolución histórica
- Monitorización meteorológica remota con Raspberry Pi 3 y PubNub
- Integración de TI SensorTag con Blynk vía Node‑RED en Raspberry Pi Zero
- Controle un LED con Sensor PIR de Movimiento en Raspberry Pi
- Construye un robot inteligente con Bridge Shield – Integración Raspberry Pi y Arduino
- Construye un Robot de Visión Artificial Controlado por Voz en Windows 10 IoT Core
- Cerradura Inteligente WiFi con Arduino y ESP8266: Desbloqueo desde el Móvil
- Dominando las Sentencias Using en C#: Importaciones, Alias y Directivas Estáticas