Hardcore "naredi si sam" - vhod v operacijski sistem za NFC-map
Naredi Si Sam / / December 19, 2019
Do sedaj, uporabniki priljubljenih desktop operacijskih sistemov niso imeli nobene druge možnosti, v začetku OS, razen geslom. Dovolj, da ga prenašati! To je čas, da poberem Lemilo in ne postopek za preverjanje pristnosti, je primerljiva v preprostosti z božal svojo mačko.
Danes se je v kategoriji DIY, bomo delnice pokukal na Instructables tako, da vnesete geslo za prijavo v operacijski sistem z uporabo NFC-kartico.
1. korak: Podrobnosti
Potrebujemo:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC kartice (opremljen z Adafriut NFC Shield)
- majhen kos žice
- oster nož
- spajkanje
- Orodje za rezanje in odstranjevanje žic
- računalnik
- micro-USB kabel
2. korak: železo
Postopek za ustvarjanje modul strojne opreme je zelo enostavno.
Edina sprememba potrebna za delovanje naprave je za prekinitev povezave med sornikom in pin IRQ 2. Za ta priročen nož.
Potem morate povezati IRQ in 6 zatičev z skakalec žice.
Preverite odsotnost / prisotnost kontakta, lahko uporabite multimeter, in jasno razumevanje procesa graditi in Leonardo ponudbo NFC modul tukaj ta kratek video. Vse, kar je prikazano korak za korakom in zelo jasno:
3. korak: Programska oprema
Spodaj je koda, ki jih je treba izpolniti Arduino. Pred začetkom prenosa morate prepričati, da knjižnice Adafruit NFC. Preberite več o tem tukaj.
#include
#include
# define IRQ 6 // to sled mora biti rez in rewired!
# define RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, reset);
//////////////////////////////////// SETUP
nična nastavitve () {
// ustanovi Serial knjižnico na 9.600 b
Serial.begin (9600);
// našli Adafruit RFID / NFC ščit
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( "ni bilo mogoče najti PN53x uprava");
medtem ko (1); // zaustavitev
}
// Got ok podatkov, ga natisnite!
Serial.print ( «Najdeno čip Pn5"); Serial.println ((versiondata >> 24) in 0xFF, HEX);
Serial.print ( "Firmware ver. «); Serial.print ((versiondata >> 16) in 0xFF, DEC);
Serial.print ( "."); Serial.println ((versiondata >> 8) in 0xFF, DEC);
// configure odbor za branje oznak RFID
NFC. SAMConfig ();
Keyboard.begin (); // začetek tipkovnice
}
/////////////////////////////////// LOOP
nepodpisani števka = 0;
ničen zanka () {
uint8_t uspeh;
uint8_t UID [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer za shranjevanje vrne UID
uint8_t uidLength; // Dolžina UID (4 ali 7 bajte, odvisno od vrste ISO14443A kartice)
// čakanje na RFID kartice, da pokažejo!
Serial.println ( "Waiting za ISO14443A kartico ...");
// Počakajte tipa ISO14443A kartice za vrnitev (Mifare, itd). Ko se ugotovi, da eden
// "uid" bo poseljena z UID, in uidLength bo pokazal
// če UID je 4 bajte (Mifare Klasične) OR7 zlogov (Mifare lahka)
Uspeh = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, UID, in uidLength);
uint32_t cardidentifier = 0;
če (uspeh) {
// Najdeno kartico!
Serial.print ( «kartica zazna #»);
// obrniti štiri bajt UID o Mifare klasično v eno spremenljivo #
cardidentifier = UID [3];
cardidentifier << = 8; cardidentifier | = UID [2];
cardidentifier << = 8; cardidentifier | = UID [1];
cardidentifier << = 8; cardidentifier | = UID [0];
Serial.println (cardidentifier);
če (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");
zakasnitev (5000); // poskrbi, se geslo ne ponovi
}
}
}
Ko je koda naložena, odprite serijsko niz monitorja na 9600 baud. Drugi pladenj NFC-kartica na bralca in ga odstranite. Monitor mora prikazati sporočilo "kartica zaznana #card številko». Zamenjaj «cardidentifier ==» prejeli številko trenutnega števila kartic v skladu.
Sedaj spremeniti del kode, ki je odgovoren za geslo. Kot lahko vidite, privzeto geslo je kombinacija «mojegeslo». Zamenjajte jo z našim trenutnim vnosom gesla v operacijskem sistemu (število znakov gesla se spremeni tako, da preprosto dodate / iz linije z «Keyboard.write ekipe).
Ponovni zagon končno kodo v Arduino, in zdaj, samo takoj, ko bi to kartico NFC-bralnik, geslo bo takoj vpiše v vnosno polje. Zadeti nastopiti in veseli.
V pripombah k projektu našla moškega, ki je na voljo za dopolnitev serije vstopnega ukaz geslo končno Keyboard.write (KEY_RETURN); odpraviti je treba pritisniti Enter, vendar ta odločitev še ni bila preverjena.