Բովանդակություն:

Էլեկտրոնային դրամապանակ ՝ 3 քայլ
Էլեկտրոնային դրամապանակ ՝ 3 քայլ

Video: Էլեկտրոնային դրամապանակ ՝ 3 քայլ

Video: Էլեկտրոնային դրամապանակ ՝ 3 քայլ
Video: Էլեկտրոնային փող թողարկող 3-րդ ընկերությունն է մուտք գործելու հայկական շուկա 2024, Հունիսի
Anonim
Էլեկտրոնային դրամապանակ
Էլեկտրոնային դրամապանակ

ՈEՇԱԴՐՈԹՅՈՆ. Ես այժմ ունեմ Instructables, որոնք առաջարկում են Arduino կոդ RC522 և PN532 համար:

Իմ նախորդ գրառման մեջ ես մանրամասն ներկայացրեցի MFRC522 և PN532 RFID մոդուլների հետ հաղորդակցվելու հիմքերը ՝ Mifare Classic 1k պիտակներից տվյալներ կարդալու/գրելու համար: Այս գրառման մեջ ես մեկ քայլ առաջ եմ անում և ցույց եմ տալիս, թե ինչպես օգտագործել այդ մոդուլները ՝ պիտակներից էլեկտրոնային դրամապանակ ստեղծելու համար: Ինչպես և նախորդ գրառման դեպքում, սա ներկայացվում է որպես հիմնական իրականացում, բայց պետք է հիմք հանդիսանա մի շարք ծրագրերի համար, որոնք պահանջում են ավելացում/նվազում կամ հաշվարկման գործառույթներ:

Քայլ 1: Տվյալների ամբողջականություն

Էլեկտրոնային դրամապանակի համար միշտ կա մտահոգություն, որ ինչ -որ մեկը կարող է վարկեր ավելացնել առանց դրա համար վճարելու: Կա նաև մտահոգություն, որ պիտակի վրա առկա վարկերը կարող են ակամա փչանալ տվյալների գրման ընթացքում: Տվյալների հասանելիությունը պահանջում է պիտակի ստեղնից օգտվել, ուստի անհրաժեշտ է փոխել կանխադրված բանալին, երբ պիտակը առաջին անգամ նախաստորագրվում է: Առցանց կան հոդվածներ, որոնք խոսում են այն մասին, թե ինչպես կարելի է պիտակը կոտրել, նույնիսկ եթե չգիտեք բանալին, բայց տեխնիկան մանրուք չէ: Ես խորհուրդ չեմ տա օգտագործել այս պիտակները ձեր բանկային հաշվի համար, բայց դրանք բավական լավ են շատ ավելի քիչ ռիսկային ծրագրերի համար:

Տվյալների կոռուպցիայի հավանականությունը համեմատաբար փոքր է, բայց ծրագրակազմը պետք է կարողանա գոնե կարգավորել հիմնական գործը: Այս գործընթացը ներառում է երկու քայլ ՝ առաջին քայլով ՝ պարզապես կոռուպցիան բացահայտելու համար: Այս նախագծում, որը մշակվում է ՝ պահելով ինչպես վարկային արժեքը, այնպես էլ վարկային արժեքի 1 -ի հավելումը: Դա թույլ է տալիս պարզ համեմատել արժեքները: Երկրորդ քայլը վարկային արժեքի և դրա լրացման պահուստային տարբերակի պահպանումն է: Դա թույլ է տալիս վերականգնել գործողությունը, եթե վարկերի առաջին փաթեթը վնասվի: Եթե երկու հավաքածուներն էլ կոռումպացված են, ապա ծրագրաշարը փորձում է վերսկսել պիտակը, ինչը հանգեցնում է բոլոր կրեդիտների կորստի:

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ

Սարքավորումների միացումները ցուցադրվում են վերևի դիագրամում: Սա նույն տեղադրումն է, ինչ նախորդ գրառումը `երկու անջատիչների և ձգվող դիմադրության ավելացումով: Մեկ անջատիչը չի պահանջում քաշման դիմադրություն, քանի որ այն PIC մուտքի վրա է, որը ներկառուցված է թույլ քաշման ունակությամբ: Գործնականում երկու անջատիչներն էլ թաքնված կլինեն, քանի որ դրանք օգտագործվում են կրեդիտներ ավելացնելու և պիտակ սկսելու համար: Նախաստորագրման անջատիչը կամընտիր է (վարկի ձեռքով զրոյականացում), քանի որ ծրագրակազմը կարող է ինքնուրույն հայտնաբերել և նախաստորագրել նոր պիտակ: Անջատիչների փոխարեն կարող են օգտագործվել ցատկող կապում:

Քայլ 3: Softwareրագրակազմ

Softwareրագրային ապահովման հիմնական հանգույցի լրացումները կատարվել են երկու անջատիչների ընթերցման և պիտակի նախաստորագրում պահանջող պայմանի հայտնաբերման համար: Ինչպես նշվեց ապարատային բաժնում, պիտակի սկզբնավորումը կարող է ձեռքով հրամայվել անջատիչով: Theրագիրը կարող է նաև պատվիրել պիտակի սկզբնավորումը երկու այլ դեպքերում: Նախ, եթե այն հայտնաբերում է նոր պիտակ կամ տվյալների հատված և երկրորդ, եթե վարկային տվյալների երկու փաթեթներն էլ վնասված են:

Պիտակների իսկությունը պահանջում է «բանալին A» - ի օգտագործումը նպատակային տվյալների հատվածի համար: Mifare Classic 1k պիտակների կանխադրված բանալին «FF FF FF FF FF FF» է, սակայն այն պետք է փոխվի ձեր դիմումի համար: Theրագրաշարը տրամադրում է սահմանումներ ինչպես կանխադրված, այնպես էլ նոր բանալին («My_Key»): Պարզապես միացրեք այն արժեքները, որոնք ցանկանում եք «My_Key» - ում: Theրագրակազմը միշտ փորձում է առաջինը նույնականացնել պիտակը ՝ օգտագործելով «My_Key»: Եթե դա ձախողվի, ապա պիտակը նախաստորագրելու ռեժիմը կանչվում է, իսկ լռելյայն բանալին օգտագործվում է նույնականացման համար: Նախաձեռնման ռեժիմը բանալին փոխում է «My_Key» - ի և վարկերը դնում զրոյի: Եթե ունեք պիտակ ՝ ոչ կանխադրված բանալիով և չգիտեք, թե ինչ է դա, ապա պիտակը չի կարող նույնականացվել: Եթե դա տեղի ունենա, գուցե ցանկանաք ստուգել տվյալների այլ հատվածներ `օգտագործելով կանխադրված ստեղնը` տեսնելու, թե արդյոք դրանցից մեկը հասանելի է: Թրեյլերի բլոկը, Տվյալների բլոկը և Պահուստային բլոկները բոլորը սահմանվում են ծրագրաշարի ցուցակման սկզբում, այնպես որ կարող եք դրանք հեշտությամբ փոխել:

Այս հավելվածի պիտակում պահվող տվյալների ձևաչափը օգտագործում է միայն դրական թվեր (բացթողումներ չեն թույլատրվում), իսկ արժեքները պահվում են որպես չորս բայթ փաթեթավորված BCD (Երկուական կոդավորված տասնորդական): Դա թույլ է տալիս վարկային միջակայք 0 -ից 99, 999, 999 (երկու թվանշան մեկ բայթ) համար: Վարկային արժեքը և դրա 1 -ի լրացումը օգտագործում են 16 բայթերից 8 -ը միայն մեկ տվյալների բլոկում, իսկ մնացածը լցված են զրոներով: Նույն տվյալների բլոկում տեղ կա պահեստային պատճենի համար, բայց ես որոշեցի, որ ավելի ապահով կլինի պահուստավորումը առանձին տվյալների բլոկի մեջ դնելը: Պահուստային բլոկը նույն հատվածում է, ինչ տվյալների բլոկը, ուստի առանձին վավերացում չի պահանջվում: Անվտանգ լինելու համար կարող եք մտածել կրկնօրինակը տվյալների այլ հատվածում դնելու մասին, սակայն այդ տվյալների մուտք գործելու համար անհրաժեշտ կլինի առանձին վավերացման քայլ:

Երբ վարկերի կարդալը կատարվում է, լրացված արժեքը նույնպես կարդացվում է, և այդ երկուսը համեմատվում են միմյանց դեմ: Եթե կա անհամապատասխանություն, ապա արժեքի/լրացման պահուստային հավաքածուն կարդացվում և համեմատվում է: Եթե դրանք համընկնում են, ապա ենթադրվում է, որ կրկնօրինակը ճիշտ է և օգտագործվում է վնասված տվյալները վերականգնելու համար: Եթե պահուստային պատճենները չեն համընկնում, ապա պիտակը համարվում է վատ և փորձ է արվում այն նորից նախաստորագրել:

Աճման և նվազման արժեքները սահմանվում են ցուցակի առջևի մասում և ակնկալվում է, որ դրանք փաթեթավորված BCD- ով են: Այն ռեժիմները, որոնք մեծացում և նվազում են կատարում, արդյունավետ կերպով դա անում են 32-բիթանոց համարի վրա: Մաթեմատիկան շատ պարզ է, բայց պահանջում է ռեժիմների օգտագործումը ՝ յուրաքանչյուր փաթեթավորված BCD բայթում և մեկ բայթից մյուսին փոխադրման արդյունքները հարմարեցնելու համար: Դա կատարվում է DAA (տասնորդական ճշգրտում հավելում) և DAS (տասնորդական ճշգրտում հանում) մակրոների օգտագործմամբ: Այս մակրոները համոզված են, որ յուրաքանչյուր 4-բիթանոց BCD թվանշան միշտ մնում է 0-9 միջակայքում:

Ի լրումն նախորդ հաղորդագրության ցուցադրվող հաղորդագրությունների, այս հավելվածն ունի լրացուցիչ քայլերից շատերի համար հաղորդագրություններ, մասնավորապես, եթե առկա են տվյալների սխալներ և/կամ պիտակը պետք է շտկվի կամ նախաստորագրվի: Վարկերը ցուցադրվում են նաև ավելացում/նվազեցման քայլից առաջ և հետո, որպեսզի կարողանաք տեսնել արժեքների փոփոխությունը:

Ահա այս գրառման համար: Ստուգեք իմ էլեկտրոնիկայի այլ նախագծերը ՝ www.boomerrules.wordpress.com

Խորհուրդ ենք տալիս: