Indholdsfortegnelse:
Video: Elektronisk tegnebog: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
BEMÆRK: Jeg har nu Instructables, der tilbyder Arduino -kode til RC522 og PN532.
I mit tidligere indlæg detaljerede jeg det grundlæggende for kommunikation med MFRC522 og PN532 RFID -modulerne for at læse/skrive data fra Mifare Classic 1k -tags. I dette indlæg tager jeg det et skridt videre og viser, hvordan man bruger disse moduler til at oprette en elektronisk tegnebog ud af mærkerne. Som med det forrige indlæg præsenteres dette som en grundlæggende implementering, men bør danne grundlag for en række applikationer, der kræver tilvækst/formindskelse eller opregningsfunktioner.
Trin 1: Dataintegritet
For en elektronisk tegnebog er der altid en bekymring for, at nogen kan tilføje kreditter uden at betale for dem. Der er også en bekymring for, at kreditterne på mærket kan blive utilsigtet ødelagt under en dataskrivning. Dataadgang kræver brug af tag -nøglen, så det er nødvendigt at ændre standardnøglen, når tagget først initialiseres. Der er artikler online, der taler om, hvordan man hacker et tag, selvom du ikke kender nøglen, men teknikken ikke er triviel. Jeg vil ikke anbefale at bruge disse tags til din bankkonto, men de er gode nok til masser af mindre risikable applikationer.
Sandsynligheden for datakorruption er relativt lille, men softwaren bør i det mindste kunne håndtere grundsagen. Denne proces involverer to trin med det første trin til simpelthen at opdage korruptionen. I dette projekt håndteres det ved at gemme både kreditværdien samt et 1’er -supplement af kreditværdien. Det giver mulighed for en simpel sammenligning af værdierne. Det andet trin er at gemme en backup -version af både kreditværdien og dens supplement. Det giver mulighed for en gendannelsesoperation, hvis det første sæt kreditter bliver ødelagt. Hvis begge sæt er beskadiget, forsøger softwaren at geninitialisere mærket, hvilket resulterer i tab af alle kreditter.
Trin 2: Hardware
Hardwareforbindelserne er vist i diagrammet ovenfor. Dette er den samme opsætning som den forrige post med tilføjelse af to kontakter og en pull-up modstand. Én switch kræver ikke en pull-up-modstand, fordi den er på en PIC-indgang, der har en svag pull-up-funktion indbygget. I praksis ville begge switches være skjult, fordi de bruges til at tilføje kreditter og til at initialisere et tag. Initialiseringsomskifteren er valgfri (for at foretage manuel kreditnulstilling), fordi softwaren kan registrere og initialisere et nyt tag på egen hånd. Jumper pins kunne bruges i stedet for kontakter.
Trin 3: Software
Tilføjelser til hovedsløjfen i softwaren blev foretaget for at muliggøre læsning af de to switches og for påvisning af en tilstand, der kræver initialisering af mærker. Som nævnt i hardware -afsnittet kan initialisering af mærker styres manuelt med en switch. Softwaren kan også styre en taginitialisering i to andre tilfælde. For det første, hvis det registrerer et nyt tag eller en datasektor og for det andet, hvis begge sæt kreditdata er beskadiget.
Godkendelse af tags kræver brug af "nøgle A" til måldatasektoren. Standardnøglen til Mifare Classic 1k -tags er "FF FF FF FF FF FF", men bør ændres for din applikation. Softwaren giver definitioner for både standardnøglen og en ny nøgle ("My_Key"). Tilslut bare de værdier, du ønsker, til "My_Key". Softwaren forsøger altid først at godkende mærket ved hjælp af "My_Key". Hvis det mislykkes, kaldes rutinen for at initialisere mærket, og standardnøglen bruges til godkendelse. Initialiseringsrutinen ændrer nøglen til "My_Key" og sætter kreditterne til nul. Hvis du har et mærke med en ikke-standardnøgle, og du ikke ved, hvad det er, kan tagget ikke godkendes. Hvis dette sker, vil du måske kontrollere andre datasektorer ved hjælp af standardnøglen for at se, om der er en tilgængelig. Trailerblokken, datablokken og backupblokkene er alle defineret i begyndelsen af softwarelisten, så du nemt kan ændre dem.
Formatet for data, der er gemt i tagget til denne applikation, bruger kun positive tal (ingen underskud tilladt), og værdier gemmes som fire bytes pakket BCD (Binary Coded Decimal). Det giver mulighed for et kreditinterval fra 0 til 99, 999, 999 (to cifre pr. Byte). Kreditværdien og dens 1’er komplement bruger kun 8 af de 16 bytes i en enkelt datablok, og resten er polstret med nuller. Der er plads i den samme datablok til sikkerhedskopien, men jeg besluttede, at det ville være mere sikkert at lægge sikkerhedskopien i en separat datablok. Backupblokken er i samme sektor som datablokken, så en separat godkendelse er ikke påkrævet. For at være endnu mere sikker kan du overveje at placere sikkerhedskopien i en anden datasektor, men så er det nødvendigt med et separat godkendelsestrin for at få adgang til disse data.
Når der er læst af kreditterne, læses den supplerede værdi også, og derefter sammenlignes de to med hinanden. Hvis der er en uoverensstemmelse, læses og sammenlignes backupsættet af værdi/komplement. Hvis de matcher, antages sikkerhedskopien at være korrekt og bruges til at reparere de beskadigede data. Hvis sikkerhedskopierne ikke matcher, anses tagget for at være dårligt, og der gøres et forsøg på at initialisere det igen.
Forøgelses- og formindskelsesværdierne er defineret nær forsiden af fortegnelsen og forventes at være i pakket BCD. De rutiner, der foretager inkrementering og reduktion, gør det effektivt på et 32-bit nummer. Matematikken er meget enkel, men kræver brug af rutiner til at justere resultaterne for transporter inden for hver pakket BCD -byte og fra en byte til den næste. Det opnås ved brug af makroer DAA (Decimal Adjust Addition) og DAS (Decimal Adjust Subtraction). Disse makroer sikrer, at hvert 4-bit BCD-ciffer altid forbliver inden for området 0-9.
Ud over displaymeddelelserne i det forrige indlæg har denne applikation beskeder til mange af de ekstra trin - især hvis der er datafejl og/eller tagget skal rettes eller initialiseres. Kreditterne vises også før og efter et trin/stigningstrin, så du kan se værdierne ændre sig.
Det er det for dette indlæg. Tjek mine andre elektronikprojekter på: www.boomerrules.wordpress.com
Anbefalede:
Elektronisk juletræ: 4 trin
Elektronisk juletræ: Hej! Jeg vil gerne præsentere mit elektroniske juletræ. Jeg byggede dette som dekoration, og jeg synes, det er meget kompakt og flot
4 til 20 MA Industrial Process Calibrator DIY - Elektronisk instrumentering: 8 trin (med billeder)
4 til 20 MA Industrial Process Calibrator DIY | Elektronikinstrumentering: Industriel og elektronisk instrumentering er et meget dyrt område, og det er ikke let at lære om det, hvis vi bare er selvuddannede eller amatører. På grund af det har min elektroniske instrumenteringsklasse og jeg designet denne lave budget på 4 til 20 mA
Firdobbelt lavspændings elektronisk tester: 7 trin
Quadruple Low Voltage Electronic Tester: Hvad er det her? En alsidig quadruple low voltage tester, der bidrager til en grønnere verden, fordi ved hjælp af denne lille gadget kan mange ødelagte elektroniske enheder få et andet eller tredje liv og vil ikke blive sendt til skraldespanden! Sikker
Arduino Bluetooth RC bil med elektronisk bremsesystem: 4 trin (med billeder)
Arduino Bluetooth RC bil m/ elektronisk bremsesystem: Sådan laver du en RC bil til omkring 40 $ (27 $ m/ uno klon)
RFID -beskyttelse af en Tyvek -tegnebog: 7 trin
RFID Shielding a Tyvek Wallet: Jeg har brugt denne type (mærke) tegnebog i cirka 6 år. Da jeg fandt denne særlige tegnebog, besluttede jeg at tilføje noget RFID -afskærmning til den ved hjælp af aluminiumstape. Dette bånd bruges til at forsegle varmekanaler, da det er mere holdbart end kludbaseret & q