Sommario:
Video: Portafoglio elettronico: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
NOTA: ora ho Instructables che offrono il codice Arduino per RC522 e PN532.
Nel mio post precedente ho dettagliato le basi per comunicare con i moduli RFID MFRC522 e PN532 per leggere/scrivere dati dai tag Mifare Classic 1k. In questo post faccio un ulteriore passo avanti e mostro come utilizzare quei moduli per creare un portafoglio elettronico dai tag. Come nel post precedente, questa viene presentata come un'implementazione di base, ma dovrebbe fornire una base per una varietà di applicazioni che richiedono funzioni di incremento/decremento o conteggio.
Passaggio 1: integrità dei dati
Per un portafoglio elettronico c'è sempre la preoccupazione che qualcuno possa aggiungere crediti senza pagarli. C'è anche il timore che i crediti sul tag possano essere inavvertitamente danneggiati durante la scrittura dei dati. Gli accessi ai dati richiedono l'uso della chiave tag quindi è necessario cambiare la chiave predefinita quando il tag viene inizializzato per la prima volta. Ci sono articoli online che parlano di come hackerare un tag anche se non si conosce la chiave ma la tecnica non è banale. Non consiglierei di utilizzare questi tag per il tuo conto bancario, ma sono abbastanza buoni per molte applicazioni meno rischiose.
La probabilità di danneggiamento dei dati è relativamente piccola, ma il software dovrebbe essere in grado di gestire almeno il caso di base. Questo processo prevede due passaggi con il primo passaggio per rilevare semplicemente il danneggiamento. In questo progetto che viene gestito memorizzando sia il valore del credito che un complemento a 1 del valore del credito. Ciò consente un semplice confronto dei valori. Il secondo passaggio consiste nell'archiviare una versione di backup sia del valore del credito che del suo complemento. Ciò consente un'operazione di ripristino se il primo set di crediti viene danneggiato. Se entrambi i set sono danneggiati, il software tenta di reinizializzare il tag, con conseguente perdita di tutti i crediti.
Passaggio 2: hardware
Le connessioni hardware sono mostrate nello schema sopra. Questa è la stessa configurazione del post precedente con l'aggiunta di due interruttori e un resistore di pull-up. Uno switch non richiede un resistore di pull-up perché si trova su un ingresso PIC che ha una debole capacità di pull-up incorporata. In pratica entrambi gli switch sarebbero nascosti perché vengono utilizzati per aggiungere crediti e per inizializzare un tag. L'interruttore di inizializzazione è facoltativo (per eseguire l'azzeramento manuale del credito) perché il software può rilevare e inizializzare da solo un nuovo tag. I pin dei ponticelli potrebbero essere utilizzati al posto degli interruttori.
Passaggio 3: software
Sono state apportate aggiunte al loop principale nel software per consentire la lettura dei due interruttori e il rilevamento di una condizione che richiede l'inizializzazione del tag. Come menzionato nella sezione hardware, l'inizializzazione dei tag può essere comandata manualmente con un interruttore. Il software può anche comandare l'inizializzazione di un tag in altri due casi. Primo, se rileva un nuovo tag o settore dati e in secondo luogo, se entrambi i set di dati del credito sono danneggiati.
L'autenticazione dei tag richiede l'uso della "chiave A" per il settore dati di destinazione. La chiave predefinita per i tag Mifare Classic 1k è "FF FF FF FF FF FF" ma dovrebbe essere modificata per la tua applicazione. Il software fornisce le definizioni sia per la chiave predefinita che per una nuova chiave ("My_Key"). Basta inserire i valori desiderati in "My_Key". Il software tenta sempre di autenticare prima il tag utilizzando "My_Key". Se fallisce, viene chiamata la routine per inizializzare il tag e viene utilizzata la chiave predefinita per l'autenticazione. La routine di inizializzazione cambia la chiave in “My_Key” e azzera i crediti. Se hai un tag con una chiave non predefinita e non sai di cosa si tratta, il tag non può essere autenticato. Se ciò accade, potresti voler controllare altri settori di dati utilizzando la chiave predefinita per vedere se ne è disponibile uno. I blocchi Trailer, Blocco dati e Backup sono tutti definiti all'inizio dell'elenco del software in modo da poterli modificare facilmente.
Il formato per i dati archiviati nel tag per questa applicazione utilizza solo numeri positivi (nessun deficit consentito) e i valori sono archiviati come quattro byte di BCD (Binary Coded Decimal) compressi. Ciò consente un intervallo di credito da 0 a 99, 999, 999 (due cifre per byte). Il valore del credito e il suo complemento a 1 utilizzano solo 8 dei 16 byte in un singolo blocco di dati e il resto viene riempito con zeri. C'è spazio nello stesso blocco dati per la copia di backup, ma ho deciso che sarebbe stato più sicuro mettere il backup in un blocco dati separato. Il blocco di backup si trova nello stesso settore del blocco dati, quindi non è richiesta un'autenticazione separata. Per essere ancora più sicuri, potresti considerare di inserire il backup in un settore dati diverso, ma in tal caso sarebbe necessario un passaggio di autenticazione separato per accedere a tali dati.
Quando viene eseguita una lettura dei crediti viene letto anche il valore complementare e quindi i due vengono confrontati tra loro. In caso di mancata corrispondenza, il set di backup di valore/complemento viene letto e confrontato. Se corrispondono, si presume che il backup sia corretto e viene utilizzato per riparare i dati danneggiati. Se le copie di backup non corrispondono, il tag viene considerato non valido e viene effettuato un tentativo di reinizializzarlo.
I valori di incremento e decremento sono definiti nella parte anteriore dell'elenco e dovrebbero essere in formato BCD compresso. Le routine che eseguono l'incremento e il decremento lo fanno effettivamente su un numero a 32 bit. La matematica è molto semplice ma richiede l'uso di routine per regolare i risultati per i carry all'interno di ogni byte BCD compresso e da un byte all'altro. Ciò si ottiene utilizzando le macro DAA (Decimal Adjust Addition) e DAS (Decimal Adjust Subtraction). Queste macro assicurano che ogni cifra BCD a 4 bit rimanga sempre nell'intervallo 0-9.
Oltre ai messaggi visualizzati nel post precedente, questa applicazione contiene messaggi per molti dei passaggi aggiuntivi, in particolare se ci sono errori nei dati e/o il tag deve essere corretto o inizializzato. I crediti vengono visualizzati anche prima e dopo un passaggio di incremento/decremento in modo da poter vedere il cambiamento dei valori.
Questo è tutto per questo post. Dai un'occhiata ai miei altri progetti di elettronica su: www.boomerrules.wordpress.com
Consigliato:
Schermatura RFID di un portafoglio Tyvek: 7 passaggi
Schermatura RFID di un portafoglio Tyvek: utilizzo questo tipo (marca) di portafoglio da circa 6 anni. Quando ho trovato questo portafoglio in particolare, ho deciso di aggiungere una schermatura RFID utilizzando un nastro di alluminio. Questo nastro viene utilizzato per sigillare i condotti di riscaldamento in quanto è più resistente di quello a base di tessuto eq
Portafoglio IoT (portafoglio intelligente con Firebeetle ESP32, Arduino IDE e foglio di calcolo Google): 13 passaggi (con immagini)
Portafoglio IoT (portafoglio intelligente con Firebeetle ESP32, Arduino IDE e foglio di calcolo di Google): Primo premio al concorso tascabile Instructables!: Se hai investito dei soldi in criptovalute, probabilmente sai già che sono altamente volatili. Cambiano da un giorno all'altro e non sai mai quanti soldi "reali" hai ancora nel tuo walle
Istruzioni per il portafoglio di borse di studio: 10 passaggi
Istruzioni per il portfolio delle borse di studio: gli studenti possono richiedere borse di studio in base a un'ampia varietà di criteri: talenti o hobby specifici, lavoro di volontariato, appartenenza etnica o religiosa, capacità creative, aree professionali e molti altri. Quando gli studenti sviluppano una comprensione di
Creare il mio portafoglio hardware per criptovalute Trezor: 5 passaggi (con immagini)
Creare il mio portafoglio hardware per criptovalute Trezor: in questo progetto sto creando il mio portafoglio hardware per criptovalute Trezor, completo di custodia. Questo è possibile perché Trezor è open source, quindi ho usato i file che forniscono sul loro github per costruire il mio dispositivo per meno di $ 40. C'erano alcuni
Portafoglio in latta Altoids: 4 passaggi
Portafoglio in latta Altoids: questa versatile scatola di caramelle può essere utilizzata anche come portafoglio! Nel caso in cui non l'avessi già scoperto, le carte di credito standard e i documenti d'identità si adattano perfettamente alla venerabile scatola degli Altoids. Controlla! Questo è semplicissimo e oltre a prendersi del tempo per mangiare tutto th