Hardcore "gør det selv" - indgangen til operativsystemet for NFC-map
Gør Det Selv / / December 19, 2019
Indtil nu, har brugere af populære desktop operativsystemer ikke har nogen anden mulighed i posten OS, undtagen adgangskoden. Nok til at udholde det! Det er tid til at hente en loddekolbe og gøre proceduren for godkendelse er sammenlignelig i enkelhed med strøg hendes kat.
I dag i kategorien DIY, vil vi dele tittede på Instructables måde at indtaste en adgangskode for at logge på styresystemet via NFC-kort.
Trin 1: Detaljer
Vi har brug for:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC-kort (leveres komplet med Adafriut NFC Shield)
- et lille stykke ledning
- en skarp kniv
- lodde
- værktøj til klipning og afisolering ledninger
- computer
- mikro-USB-kabel
Trin 2: jern
Proceduren for at skabe en hardware modul er meget enkel.
Den eneste modifikation kræves til driften af indretningen er at bryde forbindelsen mellem stiften og pin IRQ 2. Til denne handy kniv.
Så har du brug for at tilslutte IRQ og 6 ben med en jumper wire.
Check fravær / tilstedeværelse af en kontakt, kan du bruge et multimeter, og for en klarere forståelse af byggeprocessen og Leonardo NFC-modul tilbud her denne korte video. Alt er vist trin for trin og meget tydeligt:
Trin 3: Software
Nedenfor er den kode, der skal udfyldes Arduino. Før du starter download, du skal sørge for, at Adafruit NFC biblioteket. Læs mere om det her.
#include
#include
#define IRQ 6 // dette spor skal være klip og rewired!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RESET);
//////////////////////////////////// SETUP
ugyldig setup () {
// oprettet Seriel bibliotek på 9600 bps
Serial.begin (9600);
// finde Adafruit RFID / NFC skjold
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Fandt du ikke PN53x bord»);
while (1); // stå
}
// Got ok data, printe den ud!
Serial.print ( «Fundet 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 bord for at læse RFID-tags
NFC. SAMConfig ();
Keyboard.begin (); // indlede Keyboard
}
/////////////////////////////////// LOOP
unsigned ciffer = 0;
void loop () {
uint8_t succes;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer for at gemme den returnerede UID
uint8_t uidLength; // længde UID (4 eller 7 bytes afhængigt ISO14443A korttype)
// vente på RFID-kort til at dukke op!
Serial.println ( «venter på en ISO14443A Card ...»);
// vente en ISO14443A typen kort (Mifare, etc.). Når man er fundet
// 'uid' blive befolket med UID, og uidLength vil indikere
// hvis uid er 4 bytes (Mifare Classic) eller 7 bytes (Mifare Ultralight)
succes = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
hvis (succes) {
// Fundet et kort!
Serial.print ( «Card opdaget #»);
// dreje fire byte UID af en mifare klassisk i en enkelt variabel #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
hvis (cardidentifier == 606.061.173) {
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');
forsinkelse (5000); // sørger kodeordet ikke gentages
}
}
}
Når koden er indlæst, skal du åbne den serielle skærm sæt til 9600 baud. En anden bakke NFC-kort til læseren og fjerne. Skærmen bør vise en besked «Card opdaget #card nummer». Erstat «cardidentifier ==» modtaget nummeret på den aktuelle kortnummeret på linje.
Nu ændrer den del af koden, der er ansvarlig for adgangskoden. Som du kan se, standard password er en kombination af «mypassword». Erstat det til vores nuværende adgangskode indrejse i operativsystemet (antallet af tegn i adgangskoden ændres ved blot at tilføje / ud linjer med «Keyboard.write hold).
Genstart den endelige kode i Arduino, og nu, lige så snart vi bringe dette kort til NFC-læser, adgangskoden vil straks blive indtastet i indtastningsfeltet. Hit Enter og glæde sig.
I bemærkningerne til projektet fundet en mand, der tilbød at supplere den række af kommando indtast adgangskode endelige Keyboard.write (KEY_RETURN); at eliminere behovet for at trykke på Enter, men denne beslutning er ikke verificeret.