Hardcore „do it yourself“ - intrarea în sistemul de operare pentru NFC hartă
Do It Yourself / / December 19, 2019
Până în prezent, utilizatorii de sisteme de operare desktop populare nu au avut nicio altă posibilitate în intrarea sistemului de operare, cu excepția parolei. Suficient să-l îndure! Este timpul pentru a ridica un fier de lipit și de a face procedura de autentificare este comparabilă în simplitatea cu mângâindu pisica ei.
Astăzi, în categoria DIY, vom împărtăși peeped la Instructables mod de a introduce o parolă pentru conectare la sistemul de operare folosind NFC-card.
Pasul 1: Detalii
Avem nevoie de:
- Arduino Leonardo
- Adafriut NFC Shield
- carte NFC (vine complet cu Adafriut NFC Shield)
- o mică bucată de sârmă
- un cuțit ascuțit
- suda
- instrument pentru tăiere și dezizolare cabluri
- calculator
- cablu micro-USB
Etapa 2: fier
Procedura de creare a unui modul hardware este foarte simplu.
Singura modificare necesară pentru operarea dispozitivului este de a rupe legătura dintre pini și pinul IRQ 2. Pentru acest cuțit la îndemână.
Apoi, trebuie să conectați IRQ și 6 pini, cu un fir de șuntare.
Verificați absența / prezența unui contact, puteți utiliza un multimetru, și pentru o înțelegere mai clară a procesului de construcție și Leonardo oferta NFC modul aici acest videoclip scurt. Totul este prezentat pas cu pas și foarte clar:
Pasul 3: Software-ul
Mai jos este codul pe care trebuie să fie completate în Arduino. Înainte de a începe descărcarea trebuie să vă asigurați că biblioteca Adafruit NFC. Cititi mai multe despre ea aici.
#include
#include
#define IRQ 6 // această urmă trebuie să fie tăiate și Rewired!
#define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET);
//////////////////////////////////// SETUP
configurare void () {
// înființat biblioteca de serie la 9600 bps
Serial.begin (9600);
// găsi scut Adafruit RFID / NFC
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Nu ati gasit PN53x bord»);
în timp ce (1); // halta
}
// Got OK date, imprima afară!
Serial.print ( «Găsit cip 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);
// bord pentru a citi etichetele de configurare RFID
NFC. SAMConfig ();
Keyboard.begin (); // inițiază tastatura
}
/////////////////////////////////// LOOP
cifre unsigned = 0;
void loop () {
Succesul uint8_t;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // tampon pentru a stoca UID returnat
uint8_t uidLength; // Lungimea UID (4 sau 7 octeți în funcție de tipul de card ISO14443A)
// așteptați pentru card RFID pentru a arăta în sus!
Serial.println ( «așteptare pentru un card ISO14443A ...»);
// Așteptați pentru cărțile de tip ISO14443A (Mifare, etc). Când unul este găsit
// „uid“ va fi populat cu UID și uidLength va indica
// daca uid este de 4 octeți (Mifare Classic) sau 7 octeți (Mifare Ultralight)
Succesul = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
dacă (succes) {
// S-au găsit o carte!
Serial.print ( «Card de detectat #»);
// rândul său, UID patru octeți a unui Mifare clasic într-o singură variabilă #
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');
întârziere (5000); // asigură parola nu se repetă
}
}
}
Odată ce codul este încărcat, deschideți monitorul serial la 9600 baud. O a doua tavă NFC-card pentru cititor și se scoate. Monitorul ar trebui să afișeze un mesaj «card detectat numărul #card». Înlocuiți «cardidentifier ==» Numărul primit de numărul de card curent în linie.
Acum schimba secțiunea de cod care este responsabil pentru parola. După cum puteți vedea, parola implicită este o combinație de «mypassword». Înlocuiți-l la intrarea noastră curentă a parolei în sistemul de operare (numărul de caractere ale parolei este modificat prin simpla adăugare / liniile cu echipa «Keyboard.write).
Repornirea codul final al Arduino, iar acum, la fel de îndată ce vom aduce această carte la NFC-cititor, parola va fi introdusă imediat în câmpul de introducere. Hit Enter și să se bucure.
În comentariile la proiect a găsit un om care sa oferit să completeze seria de parola de intrare comandă Keyboard.write finală (KEY_RETURN); pentru a elimina nevoia de a apăsați Enter, dar această decizie nu a fost verificată.