
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

PIEZĪME: Man tagad ir Instructables, kas piedāvā Arduino kodu RC522 un PN532.
Iepriekšējā ziņojumā es sīki izklāstīju pamatus saziņai ar RFID moduļiem MFRC522 un PN532, lai lasītu/rakstītu datus no Mifare Classic 1k tagiem. Šajā amatā es speršu vienu soli tālāk un parādīšu, kā izmantot šos moduļus, lai no tagiem izveidotu elektronisku maku. Tāpat kā iepriekšējā ziņojumā, tas tiek prezentēts kā pamata ieviešana, taču tam vajadzētu būt par pamatu dažādām lietojumprogrammām, kurām nepieciešamas palielināšanas/samazināšanas vai saskaitīšanas funkcijas.
1. darbība: datu integritāte
Elektroniskajam seifam vienmēr ir bažas, ka kāds var pievienot kredītus, par tiem nemaksājot. Pastāv arī bažas, ka tagu kredīti datu ierakstīšanas laikā var tikt nejauši sabojāti. Piekļuvei datiem ir jāizmanto taga atslēga, tāpēc, pirmo reizi inicializējot tagu, ir jāmaina noklusējuma atslēga. Tiešsaistē ir raksti, kuros tiek runāts par to, kā uzlauzt tagu, pat ja jūs nezināt atslēgu, bet tehnika nav triviāla. Es neiesaku izmantot šos tagus jūsu bankas kontam, taču tie ir pietiekami labi daudzām mazāk riskantām lietojumprogrammām.
Datu sabojāšanas varbūtība ir salīdzinoši neliela, taču programmatūrai jāspēj vismaz apstrādāt pamatlietas. Šis process ietver divus soļus ar pirmo soli, lai vienkārši atklātu korupciju. Šajā projektā, kas tiek apstrādāts, saglabājot gan kredīta vērtību, gan kredīta vērtības papildinājumu 1. Tas ļauj vienkārši salīdzināt vērtības. Otrais solis ir saglabāt gan kredīta vērtības, gan tās papildinājuma rezerves versiju. Tas ļauj veikt atkopšanas darbību, ja pirmais kredītu komplekts tiek sabojāts. Ja abi komplekti ir bojāti, programmatūra mēģina atkārtoti inicializēt tagu, kā rezultātā tiek zaudēti visi kredīti.
2. darbība. Aparatūra

Aparatūras savienojumi ir parādīti iepriekš redzamajā diagrammā. Tas ir tāds pats iestatījums kā iepriekšējā ziņojumā, pievienojot divus slēdžus un uzvilkšanas rezistoru. Vienam slēdzim nav nepieciešams pievilkšanas rezistors, jo tas ir PIC ieejā, kurā ir iebūvēta vāja pievilkšanas iespēja. Praksē abi slēdži būtu paslēpti, jo tos izmanto kredītu pievienošanai un taga inicializēšanai. Inicializācijas slēdzis nav obligāts (lai veiktu manuālu kredīta atiestatīšanu), jo programmatūra pati var noteikt un inicializēt jaunu tagu. Slēdžu vietā var izmantot džempera tapas.
3. darbība: programmatūra
Programmatūras galvenajai cilpai tika pievienoti papildinājumi, lai varētu nolasīt abus slēdžus un noteikt stāvokli, kas prasa tagu inicializēšanu. Kā minēts aparatūras sadaļā, tagu inicializāciju var manuāli vadīt ar slēdzi. Programmatūra var arī komandēt tagu inicializāciju divos citos gadījumos. Pirmkārt, ja tiek konstatēts jauns tags vai datu sektors, un, otrkārt, ja abas kredīta datu kopas ir bojātas.
Lai atzīmētu tagus, mērķa datu nozarei ir jāizmanto “atslēga A”. Mifare Classic 1k tagu noklusējuma atslēga ir “FF FF FF FF FF FF”, taču tā ir jāmaina jūsu lietojumprogrammai. Programmatūra nodrošina definīcijas gan noklusējuma atslēgai, gan jaunai atslēgai (“My_Key”). Vienkārši pievienojiet “My_Key” visas vēlamās vērtības. Programmatūra vienmēr mēģina vispirms autentificēt tagu, izmantojot “My_Key”. Ja tas neizdodas, tiek izsaukta taga inicializācijas kārtība un autentifikācijai tiek izmantota noklusējuma atslēga. Inicializācijas procedūra maina atslēgu uz “My_Key” un nosaka kredītus uz nulli. Ja jums ir tags ar noklusējuma atslēgu un jūs nezināt, kas tas ir, tad tagu nevar autentificēt. Ja tā notiek, iespējams, vēlēsities pārbaudīt citas datu nozares, izmantojot noklusējuma atslēgu, lai redzētu, vai tā ir pieejama. Piekabes bloks, datu bloks un dublēšanas bloki ir definēti programmatūras saraksta sākumā, lai tos varētu viegli mainīt.
Šīs lietojumprogrammas tagā saglabāto datu formātā tiek izmantoti tikai pozitīvi skaitļi (nav pieļaujams deficīts), un vērtības tiek saglabātas kā četri baiti iepakotā BCD (binārā kodētā decimālā). Tas ļauj piešķirt kredīta diapazonu no 0 līdz 99, 999, 999 (divi cipari uz baitu). Kredīta vērtība un tās 1 papildinājums izmanto tikai 8 no 16 baitiem vienā datu blokā, bet pārējie ir aizpildīti ar nullēm. Tajā pašā datu blokā ir vieta rezerves kopijai, bet es nolēmu, ka būtu drošāk dublējumu ievietot atsevišķā datu blokā. Rezerves bloks atrodas tajā pašā sektorā kā datu bloks, tāpēc atsevišķa autentifikācija nav nepieciešama. Lai būtu vēl drošāk, jūs varētu apsvērt dublējuma ievietošanu citā datu sektorā, bet tad, lai piekļūtu šiem datiem, būtu nepieciešams atsevišķs autentifikācijas solis.
Kad tiek nolasīti kredīti, tiek nolasīta arī papildinātā vērtība, un pēc tam abas tiek salīdzinātas. Ja ir neatbilstība, tiek nolasīts un salīdzināts rezerves vērtību/papildinājumu komplekts. Ja tie sakrīt, tiek uzskatīts, ka dublējums ir pareizs un tiek izmantots bojāto datu labošanai. Ja rezerves kopijas nesakrīt, atzīme tiek uzskatīta par sliktu un tiek mēģināts to atkārtoti inicializēt.
Palielinājuma un samazinājuma vērtības ir noteiktas saraksta priekšpusē, un paredzams, ka tās būs iepakotas BCD. Procedūras, kas veic palielināšanu un samazināšanu, efektīvi to dara ar 32 bitu numuru. Matemātika ir ļoti vienkārša, taču tai ir jāizmanto rutīnas, lai pielāgotu pārnesumu rezultātus katrā iepakotajā BCD baitā un no viena baita uz nākamo. Tas tiek panākts, izmantojot makro DAA (decimālās korekcijas papildinājums) un DAS (decimālās korekcijas atņemšana). Šie makro nodrošina, ka katrs 4 bitu BCD cipars vienmēr paliek diapazonā no 0 līdz 9.
Papildus iepriekšējā ziņojumā redzamajiem ziņojumiem šai lietojumprogrammai ir ziņojumi par daudzām papildu darbībām - īpaši, ja ir datu kļūdas un/vai tags ir jālabo vai jāinicializē. Kredīti tiek parādīti arī pirms un pēc palielināšanas/samazināšanas soļa, lai jūs varētu redzēt vērtību izmaiņas.
Tas ir šim ierakstam. Iepazīstieties ar maniem citiem elektronikas projektiem: www.boomerrules.wordpress.com
Ieteicams:
Elektroniskais Ziemassvētku koks: 4 soļi

Elektroniskais Ziemassvētku koks: Sveiki! Vēlos prezentēt savu elektronisko Ziemassvētku eglīti. Es to uzbūvēju kā dekorāciju, un es domāju, ka tas ir ļoti ērti un jauki
Četrkāršs zemsprieguma elektroniskais testeris: 7 soļi

Četrkāršs zemsprieguma elektroniskais testeris: kas tas ir? Daudzpusīgs četrkāršs zemsprieguma testeris, kas veicina videi draudzīgāku pasauli, jo, izmantojot šo mazo sīkrīku, daudzas bojātas elektroniskās ierīces var iegūt otro vai trešo dzīvi un netiks nosūtītas uz atkritumu izgāztuve! Droši
Elektroniskais apstiprinājuma spogulis: 8 soļi (ar attēliem)

Elektroniskais apstiprinājuma spogulis: kurš, skatoties spogulī, nevarētu izmantot dažus iedrošinošus vārdus? Izveidojiet displeju spoguļa iekšpusē, lai ritinātu pielāgotus apstiprinājumus, kurus varat izlasīt savā atspulgā. Šis slīpētais projekts ir viegli apvienojams ar veikalā nopērkamo ēnu
IoT maks (viedais maks ar Firebeetle ESP32, Arduino IDE un Google izklājlapu): 13 soļi (ar attēliem)

IoT maks (viedais maks ar Firebeetle ESP32, Arduino IDE un Google izklājlapu): Pirmā balva Instructables kabatas izmēra konkursā! Tās mainās vienas nakts laikā, un tu nekad nezini, cik daudz īstas naudas tev vēl ir makā
Altoids skārda maks: 4 soļi

Altoids Tin Wallet: šo daudzpusīgo konfekšu alvu var izmantot arī kā maku! Ja vēl neesat atklājis, standarta kredītkartes un personas apliecības lieliski iekļaujas cienījamā Altoids skārdā. Pārbaudiet to! Tas ir ļoti vienkārši, turklāt neņemot laiku, lai apēstu visu