Incondicional "faça você mesmo" - a entrada para o sistema operacional para NFC-map
Faça Você Mesmo / / December 19, 2019
Até agora, os usuários de sistemas operacionais de desktop populares não tinha qualquer outra possibilidade na entrada do OS, exceto a senha. O suficiente para suportá-lo! É hora de pegar um ferro de soldar e fazer o procedimento de autenticação é comparável em simplicidade com acariciando seu gato.
Hoje no DIY categoria, vamos compartilhar espiou pelo Instructables maneira de digitar uma senha para acessar o sistema operacional usando NFC-card.
Passo 1: Detalhes
Precisamos:
- Arduino Leonardo
- Escudo NFC Adafriut
- cartão NFC (vem completo com Adafriut NFC Escudo)
- um pequeno pedaço de fio
- uma faca afiada
- solda
- ferramenta para fios de corte e decapagem
- computador
- cabo micro-USB
Passo 2: ferro
O procedimento para criar um módulo de hardware é muito simples.
A única modificação necessária para o funcionamento do dispositivo é para quebrar a ligação entre o pino e o pino 2 IRQ. Para esta faca acessível.
Em seguida, você precisa conectar o IRQ e 6 pinos com um fio jumper.
Verifique a ausência / presença de um contato, você pode usar um multímetro, e para uma compreensão mais clara do processo de construção e Leonardo oferta NFC-módulo aqui este pequeno vídeo. Tudo é mostrado passo a passo e de forma muito clara:
Passo 3: Software
Abaixo está o código que deve ser preenchido no Arduino. Antes de iniciar o download, você precisa ter certeza de que a biblioteca Adafruit NFC. Leia mais sobre ele aqui.
#include
#include
#define IRQ 6 // este trace deve ser cortado e religado!
#define 8 de RESET
Adafruit_NFCShield_I2C nfc (IRQ, de RESET);
//////////////////////////////////// CONFIGURAÇÃO
void setup () {
// configurado biblioteca Serial em 9600 bps
Serial.begin (9600);
// encontrar Adafruit RFID / NFC escudo
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Não encontrou bordo PN53x»);
enquanto (1); // halt
}
// obtidas dados ok, imprimi-lo!
Serial.print ( «Encontrado PN5 chips»); Serial.println ((versiondata >> 24) & 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) e 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) e 0xFF, DEC);
// bordo configure para ler etiquetas RFID
NFC. SAMConfig ();
Keyboard.begin (); // iniciar o Teclado
}
/////////////////////////////////// LOOP
unsigned dígitos = 0;
void loop () {
sucesso uint8_t;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // buffer para armazenar o UID retornado
uint8_t uidLength; // Duração do UID (4 ou 7 bytes, dependendo do tipo de cartão ISO14443A)
// espera por cartão RFID para mostrar-se!
Serial.println ( «Esperando um cartão ISO14443A ...»);
// esperar por uma do tipo ISO14443A cartões (mifare, etc). Quando um é encontrado
// 'uid' será preenchida com o UID, e uidLength indicará
// se a UID é de 4 bytes (Mifare Classic) ou 7 bytes (Mifare ultraleve)
sucesso = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, e uidLength);
uint32_t cardidentifier = 0;
if (sucesso) {
// Encontrou um cartão!
Serial.print ( «Cartão detectado #»);
// transformar o UID de quatro bytes de um Mifare Classic em uma única variável #
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');
atraso (5000); // garante que a senha não é repetido
}
}
}
Uma vez que o código é carregado, abrir o conjunto de monitores de série a 9600 baud. A segunda bandeja NFC-card para o leitor e remover. O monitor deve exibir uma mensagem «Cartão detectado número #card». Substituir «cardidentifier ==» número recebido do número do cartão atual em linha.
Agora modificar a parte do código que é responsável pela senha. Como você pode ver, a senha padrão é uma combinação de «mypassword». Substituí-lo à nossa entrada de senha atual para o sistema operacional (o número de caracteres da senha é alterada com a simples adição / out linhas com equipa «Keyboard.write).
Reiniciando o código final no Arduino, e agora, assim que nós trazemos este cartão para o NFC-reader, a senha será imediatamente inserido no campo de entrada. Pressione Enter e se alegrar.
Em comentários ao projeto encontrou um homem que se ofereceu para complementar a série de senha de entrada comando final Keyboard.write (KEY_RETURN); para eliminar a necessidade de pressionar Enter, mas não foi verificada essa decisão.