Hardcore „udělej si sám“ - vstup do operačního systému pro NFC-map
Udělej Si Sám / / December 19, 2019
Až dosud uživatelé populárních desktopových operačních systémů, neměl jinou možnost v položce operačního systému, s výjimkou hesla. Dost na to vydržet! Je čas vyzvednout pájku a provést postup ověřování je srovnatelná v jednoduchosti s hladil její kočku.
Dnes v kategorii DIY, budeme sdílet nahlédl na Instructables způsob, jak zadat heslo pro přihlášení do OS pomocí NFC-kartu.
Krok 1: Podrobnosti
Potřebujeme:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC card (standardně dodáván s Adafriut NFC štít)
- malý kousek drátu
- ostrý nůž
- pájka
- nástroj pro řezání a odstraňování drátů
- počítačový
- micro-USB kabel
Krok 2: železo
Postup pro vytváření hardwarový modul je velmi jednoduché.
Jediná úprava potřebná pro provoz zařízení, je přerušit spojení mezi čepem a pin IRQ 2. Pro tento šikovný nůž.
Pak budete muset připojit IRQ a 6 pinů pomocí propojovacího vodiče.
Zkontrolujte nepřítomnost / přítomnost kontaktu, můžete použít multimetr, a jasnější pochopení procesu sestavení a Leonardo nabídka NFC modulu zde tomto krátkém videu. Vše je znázorněno krok za krokem a velmi jasně:
Krok 3: Software
Níže je uveden kód, který musí být vyplněn Arduino. Před zahájením stahování budete potřebovat, aby se ujistil, že knihovny Adafruit NFC. Přečtěte si více o tom zde.
#include
#include
#define IRQ 6 // tato trasa musí být řez a znovu zapojený!
# define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET);
//////////////////////////////////// SETUP
void setup () {
// nastavení sériového knihovnu na 9600 bps
Serial.begin (9600);
// zde Adafruit RFID / NFC štít
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Nenašli PN53x desku»);
přičemž (1); // halt
}
// Got ok údaje, vytisknout!
Serial.print ( «Nalezené chip PN5»); Serial.println ((versiondata >> 24) 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) & 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) & 0xFF, DEC);
// configure deska slouží ke čtení RFID tagů
NFC. SAMConfig ();
Keyboard.begin (); // iniciovat klávesnice
}
/////////////////////////////////// LOOP
bez znaménka číslice = 0;
void loop () {
uint8_t úspěch;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer pro uložení vrácené UID
uint8_t uidLength; // Délka UID (4 nebo 7 bajtů v závislosti na typu ISO14443A karty)
// čekání na RFID karty se ukázat!
Serial.println ( «Čekání pro ISO14443A karty ...»);
// čekat na typu ISO14443A karet (Mifare, atd.). Když jeden se nalézá
// ‚uid‘ bude naplněn UID a uidLength uvede
// pokud uid je 4 bajty (Mifare Classic) nebo 7 bytů (Mifare Ultralight)
Úspěch = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, a uidLength);
uint32_t cardidentifier = 0;
if (úspěch) {
// Nalezeno kartu!
Serial.print ( «Card zjištěn #»);
// otočit čtyři byte UID o Mifare klasickou do jediné proměnné #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
if (cardidentifier == 606061173) {
Keyboard.write ( 'm');
Keyboard.write ( 'y');
Keyboard.write ( 'p');
Keyboard.write ( 'A');
Keyboard.write ( 's');
Keyboard.write ( 's');
Keyboard.write ( 'w');
Keyboard.write ( 'O');
Keyboard.write ( 'r');
Keyboard.write ( 'd');
Zpoždění (5000); // zajišťuje, že heslo není opakovaná
}
}
}
Jakmile je kód načten, otevřít sériové sady monitoru na 9600 Bd. Druhý zásobník NFC karty ke čtečce a odstranit. Monitor by měl zobrazit zprávu «karta detekována #card číslo». Vyměnit «cardidentifier ==» obdržela číslo aktuálního čísla karty v řadě.
Nyní můžete změnit v části kódu, který je zodpovědný za zadání hesla. Jak můžete vidět, výchozí heslo je kombinací «MéHeslo». Nahraďte ji k našemu současnému zadání hesla do operačního systému (počet znaků hesla se změní pouhým přidáním / out linek s «Keyboard.write týmu).
Restartování finální kód Arduino, a teď, hned jak jsme přinést tuto kartu NFC čtečky, heslo bude okamžitě zapsány do vstupního pole. Stiskněte klávesu Enter a radovat.
V komentáři k projektu našla muže, který nabídl k doplnění série příkaz zadání hesla finále Keyboard.write (KEY_RETURN); eliminovat potřebu klávesou Enter, ale toto rozhodnutí nebylo ověřeno.