Այս դասում մենք կսովորենք, թե ինչպես պատրաստել պարզ համակարգ, որը կբացի կողպեքը էլեկտրոնային բանալիով (Label):
Ապագայում դուք կարող եք կատարելագործել և ընդլայնել ֆունկցիոնալությունը: Օրինակ՝ ավելացրեք «նոր ստեղների ավելացում և հիշողությունից հանում» գործառույթը։ Հիմնական դեպքում դիտարկենք մի պարզ օրինակ, երբ ծրագրի կոդում նախապես նշված է եզակի բանալին նույնացուցիչը:
Այս ձեռնարկում մեզ անհրաժեշտ կլինի.
Նախագիծն իրականացնելու համար մեզ անհրաժեշտ է տեղադրել գրադարանները.
2) Այժմ դուք պետք է միացնեք Buzzer-ը, որը ազդանշան կտա, եթե բանալին աշխատի, և կողպեքը բացվի, և երկրորդ ազդանշանը, երբ կողպեքը փակվի:
Մենք միացնում ենք ազդանշանը հետևյալ հաջորդականությամբ.
Արդուինո | Բուզեր |
---|---|
5 Վ | VCC |
GND | GND |
քորոց 5 | IO |
3) Սերվոն կօգտագործվի որպես ապակողպման մեխանիզմ: Ցանկացած սերվոն կարող է ընտրվել՝ կախված ձեր պահանջվող չափերից և այն ուժերից, որոնք ստեղծում է սերվոն: Սերվոն ունի 3 կապ.
Ավելի պարզ, դուք կարող եք տեսնել, թե ինչպես ենք մենք միացրել բոլոր մոդուլները ստորև նկարում.
Այժմ, եթե ամեն ինչ միացված է, ապա կարող եք անցնել ծրագրավորման:
Էսքիզ:
#ներառում
Եկեք ավելի մանրամասն վերլուծենք էսքիզը.
Քարտի UID-ը (Պիտակները) պարզելու համար հարկավոր է գրել այս ուրվագիծը arduino-ում, հավաքել վերը նկարագրված սխեման և բացել Վահանակը (Սերիական պորտի մոնիտորինգ): Երբ պիտակը բերում եք RFID-ին, վահանակում կցուցադրվի համար
Ստացված UID-ը պետք է մուտքագրվի հետևյալ տողում.
Եթե (uidDec == 3763966293) // Համեմատե՛ք պիտակի Uid-ը, եթե այն հավասար է նշվածին, ապա սերվոն բացում է փականը։
Յուրաքանչյուր քարտի համար այս նույնացուցիչը եզակի է և չի կրկնվում: Այսպիսով, երբ դուք ներկայացնում եք քարտ, որի ID-ն դուք սահմանել եք ծրագրում, համակարգը կբացի մուտքը սերվոյի միջոցով:
Տեսանյութ.
Arduino-ն ցանկացած տեսակի սարքավորում պատճենելու լավագույն համակարգն է: Գաղափարների մեծ մասը հնարավոր չէր լինի առանց նրա: Նման գաղափար վաղուց կար՝ ստեղծել հատուկ համակցված կողպեք arduino-ում: Այն բացելու համար հարկավոր է սեղմած պահել որոշակի ստեղնը: Այս դեպքում կողպեքը չպետք է բացվի, նույնիսկ եթե դուք գիտեք ճիշտ կոճակը: Այն բացելու համար դուք պետք է պահպանեք որոշակի ընդմիջումներ՝ օգտագործելով մկանային հիշողությունը: Հանցագործը չի կարող նման բան անել։ Բայց այս ամենը միայն տեսություն է:
Այն հավաքելու համար հարկավոր է օգտագործել ուղղանկյուն իմպուլսների հատուկ սարք, ինչպես նաև մի քանի հաշվիչներ և կույտ: Բայց պատրաստի սարքը կունենա մեծ ընդհանուր չափեր և անհարմար կլիներ օգտագործել: Նման մտքերը, որպես կանոն, հանգիստ չեն տալիս։ Երազանքն իրականություն դարձնելու առաջին քայլը Arduino-ի համար ծրագրի ստեղծումն էր։ Այն կծառայի որպես համակցված կողպեք: Այն բացելու համար պետք է սեղմել ոչ թե մեկ, այլ մի քանի ստեղն և դա անել միաժամանակ։ Ավարտված միացումն ունի հետևյալ տեսքը.
Նկարի որակը լավագույնը չէ, բայց միացումը կատարվում է գետնին, D3, D5, D7, D9 և D11:
Կոդը ներկայացված է ստորև.
Const intina = 3; const int inb = 5; const int inc = 9; const int ledPin = 13; int i = 1000; բայթ a = 0; բայթ b = 0; բայթ c = 0; բայթ d = 0; չստորագրված երկար ժամանակ = 0; //մի մոռացեք որևէ բան, որը վերցնում է millis() unsigned long temp = 0 արժեքը; //պահել անստորագիր երկար բայթ keya = ( 0, 0, 0, 0, 0, 0, 0, 0); //կոդերը իրականում բայթ ստեղնաշար = ( 1, 1, 1, 1, 0, 1, 0, 0); բայթ keyc = ( 1, 0, 1, 0, 1, 1, 1, 0); բայթ k = 0; void setup() (pinMode(ina, INPUT_PULLUP); //3 մուտքեր միացված են կոճակներին pinMode(inb, INPUT_PULLUP); pinMode(inc, INPUT_PULLUP); pinMode(ledPin, OUTPUT); //ներկառուցված LED 13 pinMode-ի վրա (7, OUTPUT); pinMode (11, OUTPUT); digitalWrite (7, LOW); //փոխարինել գրունտային digitalWrite (11, LOW); ժամանակ = millis (); //անհրաժեշտ է ժամանակի համար ) void blinktwice () ( // LED-ի կրկնակի թարթում DigitalWrite (ledPin, HIGH); ուշացում (100); digitalWrite (ledPin, LOW); ուշացում (100); digitalWrite (ledPin, HIGH); ուշացում (100); digitalWrite (ledPin, LOW); հետաձգում ( 200); ) void loop() (if(k==0) (blinktwice(); // հուշում է մուտքագրել կոդը) if (k == 8) ( digitalWrite (ledPin, HIGH); ուշացում (3000); k = 0 ;) a = digitalRead(ina); //կարդա ազդանշանի մակարդակները կոճակներից - սեղմված/չսեղմված b = digitalRead(inb); c = digitalRead(inc); delay(100); //հաջորդ, եթե - պաշտպանություն դեմ կեղծ դրական, if((digitalRead(ina) == a)&&(digitalRead(inb) ==b)&&(digitalRead(inc)==c)) ( if (a == keya[k]) ( if (b) == keyb[k]) (եթե (c == keyc[k]) (k++; ) ) ) ) եթե (k==1) (եթե (d ==0) (ժամանակ = միլիս (); d++; ) ) ջերմաստիճան = միլիս(); temp = temp - ժամանակ; եթե (ջերմաստիճանը > 10000) ( k= 0; d=0; ժամանակ = միլիս (); ) )
Օրենսգրքի հետ կապված ավելորդ հարցերից խուսափելու համար պետք է հստակեցնել որոշ կետեր։ Setup ֆունկցիան օգտագործվում է նավահանգիստներ նշանակելու համար: Հաջորդ գործառույթը Input_Pullup-ն է, որն անհրաժեշտ է փին լարումը 5 Վ-ով բարձրացնելու համար: Դա արվում է ռեզիստորի միջոցով: Դրա շնորհիվ տարբեր կարճ միացումներ չեն առաջանա: Ավելի մեծ հարմարության համար խորհուրդ է տրվում օգտագործել blinktwice ֆունկցիան: Ընդհանրապես, տարբեր ծրագրեր ստեղծելիս պետք է փորձել այլ գործառույթներ։
Ֆունկցիաներ նշանակելուց հետո ազդանշանը կարդացվում է նավահանգիստներից: Եթե կոճակը սեղմված է, ապա դա կնշվի 1 թվով, իսկ եթե ոչ՝ 2: Հաջորդը, բոլոր արժեքները վերլուծվում են: Օրինակ, կա այնպիսի համակցություն, ինչպիսին է 0,1,1: Սա նշանակում է, որ առաջին ստեղնը սեղմված է, իսկ մյուս երկուսը՝ ոչ: Եթե բոլոր արժեքները ճշմարիտ են, ապա 8-րդ պայմանը նույնպես ճշմարիտ է: Սա ցույց է տալիս առջևի վահանակի լուսադիոդը: Հաջորդը, դուք պետք է մուտքագրեք հատուկ ծածկագիր, որը կծառայի դուռը բացելու համար:
Կոդի վերջին տարրերն օգտագործվում են հաշվիչի արժեքները վերականգնելու համար: Այս գործառույթն իրականացվում է, եթե վերջին ստեղնը սեղմելուց հետո անցել է ավելի քան 10 վայրկյան: Առանց այս կոդի հնարավոր էր դասավորել բոլոր հնարավոր տարբերակները, թեև դրանք բավականին շատ են։ Այս սարքը ստեղծելուց հետո դուք պետք է փորձարկեք այն։ Ավելին
Օրերս ես նորից դիտում էի The Amazing Spider-Man-ը, և մի տեսարանում Փիթեր Փարքերը հեռակա կարգով բացում և փակում է դուռը իր նոութբուքից: Սա տեսնելուն պես անմիջապես հասկացա, որ ինձ անհրաժեշտ է նման էլեկտրոնային կողպեք մուտքի դռան վրա։
Մի փոքր ջութակ անելուց հետո ես հավաքեցի խելացի կողպեքի աշխատող մոդելը։ Այս հոդվածում ես ձեզ կասեմ, թե ինչպես եմ այն հավաքել:
Քայլ 1. Նյութերի ցանկ
Arduino-ում էլեկտրոնային կողպեք հավաքելու համար ձեզ հարկավոր են հետևյալ նյութերը.
Էլեկտրոնիկա:
- 5V պատի ադապտեր
Բաղադրիչներ:
- 6 պտուտակ սողնակի համար
- ստվարաթուղթ
- մետաղալարեր
Գործիքներ:
- զոդման երկաթ
- սոսինձ ատրճանակ
- փորվածք
- փորվածք
- փորձնական անցք փորվածք
- գրենական պիտույքների դանակ
- համակարգիչ Arduino IDE-ով
Քայլ 2. Ինչպես է աշխատում կողպեքը
Գաղափարն այն է, որ ես կարող եմ բացել կամ փակել դուռը առանց բանալի, և նույնիսկ առանց դրա մոտ գնալու: Բայց դա ընդամենը հիմնական գաղափարն է, քանի որ դուք կարող եք ավելացնել թակոցային սենսոր՝ հատուկ թակոցին արձագանքելու համար, կամ կարող եք ավելացնել ձայնի ճանաչման համակարգ:
Պտուտակին միացված սերվո լծակը կփակի (0°) և կբացի (60°) պտուտակը՝ օգտագործելով Bluetooth մոդուլի միջոցով ստացված հրամանները:
Քայլ 3. Միացման դիագրամ
Եկեք նախ միացնենք servo-ն Arduino տախտակին (նկատի ունեցեք, որ թեև ես օգտագործում եմ Arduino Nano տախտակ, բայց pinout-ը ճիշտ նույնն է Uno տախտակի վրա):
- servo-ի շագանակագույն մետաղալարը հիմք է, մենք այն միացնում ենք գետնին Arduino-ի վրա
- կարմիր լարը դրական է, մենք այն միացնում ենք Arduino-ի 5V միակցիչին
- նարնջագույն մետաղալար - սերվո աղբյուրի ելք, միացրեք այն Arduino-ի 9-րդ կապին
Խորհուրդ եմ տալիս փորձարկել սերվոն նախքան հավաքումը շարունակելը: Դա անելու համար Arduino IDE ծրագրում ընտրեք Sweep օրինակներում։ Համոզվելով, որ սերվոն աշխատում է, մենք կարող ենք միացնել Bluetooth մոդուլը։ Դուք պետք է միացնեք Bluetooth մոդուլի rx փին Arduino-ի tx փին, իսկ մոդուլի tx փինը՝ Arduino-ի rx փին: Բայց դեռ մի արեք դա: Երբ այս կապերը զոդվեն, դուք չեք կարողանա որևէ կոդ վերբեռնել Arduino-ում, այնպես որ նախ վերբեռնեք ձեր բոլոր կոդերը և միայն այնուհետև միացրեք կապերը:
Ահա մոդուլի և միկրոկոնտրոլերի միացման դիագրամը.
- Rx մոդուլ - Tx Arduino տախտակ
- Tx մոդուլ - Rx տախտակ
- Մոդուլի Vcc (դրական տերմինալ) - Arduino տախտակի 3,3 վ
- Գետնին միացում գետնին (գետնից գետնին)
Եթե բացատրությունը ձեզ համար պարզ չէ, հետևեք տրված էլեկտրագծերի գծապատկերին:
Քայլ 4. Փորձարկում
Այժմ, երբ մենք ունենք բոլոր աշխատանքային մասերը, եկեք համոզվենք, որ սերվոն կարող է շարժել սողնակը: Նախքան սողնակը դռան վրա տեղադրելը, ես հավաքեցի փորձնական նմուշ՝ համոզվելու համար, որ սերվոն բավականաչափ ամուր է: Սկզբում ինձ թվաց, որ իմ սերվոն թույլ է, և ես մի կաթիլ յուղ ավելացրի սողնակին, հետո ամեն ինչ լավ աշխատեց։ Շատ կարևոր է, որ մեխանիզմը լավ սահի, հակառակ դեպքում դուք ռիսկի եք դիմում փակվել ձեր սենյակում:
Քայլ 5. Էլեկտրական բաղադրիչների պարիսպ
Որոշեցի միայն կարգավորիչն ու Bluetooth մոդուլը դնել պատյանի մեջ, իսկ սերվոն թողնել դրսում։ Դա անելու համար ստվարաթղթի վրա գծեք Arduino Nano տախտակի ուրվագիծը և պարագծի շուրջը ավելացրեք 1 սմ տարածություն և կտրեք այն: Դրանից հետո մենք կտրեցինք նաև մարմնի ևս հինգ կողմ։ Առջևի պատում ձեզ հարկավոր է անցք կտրել կարգավորիչի հոսանքի լարը:
Գործի կողմերի չափերը.
- Ներքևը՝ 7,5x4 սմ
- Կափարիչ - 7,5x4 սմ
- Ձախ կողմի պատ - 7,5x4 սմ
- Աջ կողմի պատ - 7,5x4 սմ
- Առջևի պատ - 4x4 սմ (սնուցման մալուխի բնիկով)
- Հետևի պատ - 4x4 սմ
Քայլ 6. Դիմում
Կարգավորիչը կառավարելու համար ձեզ անհրաժեշտ է Android կամ Windows գաջեթ՝ ներկառուցված Bluetooth-ով: Apple սարքերի վրա հավելվածը փորձարկելու հնարավորություն չեմ ունեցել, միգուցե որոշ դրայվերներ պետք լինեն։
Համոզված եմ, որ ձեզանից ոմանք հնարավորություն ունեն ստուգելու այն: Android-ի համար ներբեռնեք Bluetooth Terminal հավելվածը, Windows-ի համար՝ TeraTerm: Այնուհետև դուք պետք է միացնեք մոդուլը ձեր սմարթֆոնին, անունը պետք է լինի linvor, գաղտնաբառը՝ 0000 կամ 1234: Զուգավորումը հաստատելուց հետո բացեք տեղադրված հավելվածը, մուտքագրեք ընտրանքները և ընտրեք «Հաստատել կապը (անապահով)»: Ձեր սմարթֆոնն այժմ Arduino սերիական մոնիտորն է, ինչը նշանակում է, որ դուք կարող եք շփվել կարգավորիչի հետ:
Եթե մուտքագրեք 0, դուռը կփակվի, և սմարթֆոնի էկրանին կցուցադրվի «Դուռը փակ է» հաղորդագրությունը:
Եթե մուտքագրեք 1, կտեսնեք, որ դուռը բաց է, և էկրանին կհայտնվի «Դուռը բաց» հաղորդագրությունը:
Windows-ում գործընթացը նույնն է, միայն թե պետք է տեղադրել TeraTerm հավելվածը։
Քայլ 7. ամրացրեք պտուտակը
Նախ անհրաժեշտ է սերվոն միացնել սողնակին: Դա անելու համար կտրեք խրոցակները շարժիչի պատյանների մոնտաժային անցքերից: Եթե մենք դնում ենք servo, ապա մոնտաժային անցքերը պետք է հարթվեն սողնակով: Այնուհետև դուք պետք է տեղադրեք սերվո լծակը սողնակի բնիկում, որտեղ գտնվում էր սողնակը: Ստուգեք, թե ինչպես է կողպեքը շարժվում պատյանում: Եթե ամեն ինչ կարգին է, ամրացրեք սերվոյի լծակը սոսինձով:
Այժմ դուք պետք է դռան վրա փորձնական անցքեր փորեք պտուտակների համար: Դա անելու համար ամրացրեք սողնակը դռան վրա և մատիտով նշեք դռան տերևի վրա պտուտակների անցքերը: Նշված տեղերում պտուտակների համար անցքեր բացեք մոտավորապես 2,5 սմ խորությամբ, ամրացրեք սողնակը և ամրացրեք այն պտուտակներով: Կրկին ստուգեք սերվոն:
Քայլ 8. Սնուցում
Սարքը ավարտելու համար ձեզ անհրաժեշտ կլինի սնուցման աղբյուր, լար և մինի USB վարդակից՝ Arduino-ին միանալու համար:
Միացրեք սնուցման տերմինալը mini usb պորտի վերգետնյա տերմինալին, կարմիր լարը միացրեք mini usb պորտի կարմիր լարին, այնուհետև լարը կողպեքից անցկացրեք դռան ծխնի, իսկ այնտեղից՝ վարդակից: .
Քայլ 9. Կոդ
#ներառել Servo myservo; int pos = 0; int վիճակ; int flag=0; void setup() (myservo.attach(9); Serial.begin(9600); myservo.write(60); delay(1000); ) void loop() (if(Serial.available() > 0) (state = Serial.read(); flag=0;) // եթե վիճակը «0» է, DC շարժիչը կանջատվի, եթե (state == «0») (myservo.write(8); delay (1000); Serial. println ("Door Locked"); ) else if (state == "1") (myservo.write(55); delay(1000); Serial.println("Door Unlocked"); ) )
Քայլ 10. Ավարտված Arduino կողպեքը
Վայելեք ձեր հեռակառավարման կողպեքը և մի մոռացեք «պատահաբար» փակել ձեր ընկերներին սենյակում:
Այսօրվա դասն այն մասին է, թե ինչպես օգտագործել RFID ընթերցողն Arduino-ի հետ՝ ստեղծելու պարզ կողպման համակարգ, պարզ բառերով ասած՝ RFID կողպեք:
RFID-ը (անգլ. Radio Frequency IDentification, radiofrequency identification) օբյեկտների ավտոմատ նույնականացման մեթոդ է, որում այսպես կոչված տրանսպոնդերներում կամ RFID պիտակներում պահվող տվյալները կարդացվում կամ գրվում են ռադիոազդանշանների միջոցով: Ցանկացած RFID համակարգ բաղկացած է ընթերցողից (ընթերցող, ընթերցող կամ հարցաքննող) և տրանսպոնդերից (նույնը` RFID պիտակ, երբեմն օգտագործվում է նաև RFID պիտակ տերմինը):
Ուսուցումը կօգտագործի RFID թեգ Arduino-ով: Սարքը կարդում է յուրաքանչյուր RFID թեգի եզակի նույնացուցիչը (UID), որը մենք տեղադրում ենք ընթերցողի կողքին և ցուցադրում այն OLED էկրանի վրա: Եթե պիտակի UID-ը հավասար է Arduino-ի հիշողության մեջ պահվող նախապես սահմանված արժեքին, ապա էկրանին կտեսնենք «Unlocked» հաղորդագրությունը: Եթե եզակի նույնացուցիչը հավասար չէ նախապես սահմանված արժեքին, ապա «Բացել» հաղորդագրությունը չի հայտնվի. տես ստորև ներկայացված լուսանկարը:
Ամրոցը փակ է
Ամրոցը բաց է
Այս նախագծի ստեղծման համար անհրաժեշտ մանրամասները.
- RFID ընթերցող RC522
- OLED էկրան
- Հացի տախտակ
- մետաղալարեր
Լրացուցիչ մանրամասներ.
- Մարտկոց (ուժային բանկ)
Ծրագրի բաղադրիչների ընդհանուր արժեքը կազմել է մոտավորապես $15:
Քայլ 2. RFID ընթերցող RC522
Յուրաքանչյուր RFID պիտակ ունի փոքրիկ չիպ (լուսանկարում սպիտակ քարտ): Եթե լապտերը ուղղեք այս RFID քարտի վրա, կարող եք տեսնել մի փոքրիկ չիպ և կծիկ, որը շրջապատում է այն: Այս չիպը չունի մարտկոց՝ էներգիա արտադրելու համար: Այն ընթերցողից էներգիա է ստանում անլար՝ օգտագործելով այս մեծ կծիկը: Նման RFID քարտը հնարավոր է կարդալ մինչև 20 մմ հեռավորությունից:
Նույն չիպը գոյություն ունի RFID հիմնական ֆոբ պիտակներում:
Յուրաքանչյուր RFID թեգ ունի եզակի համար, որը նույնականացնում է այն: Սա UID-ն է, որը ցուցադրվում է OLED էկրանին: Բացառությամբ այս UID-ի, յուրաքանչյուր պիտակ կարող է պահել տվյալներ: Այս տեսակի քարտը կարող է պահել մինչև 1000 տվյալ: Տպավորիչ է, այնպես չէ՞։ Այս ֆունկցիան այսօր չի օգտագործվի: Այսօր հետաքրքրական է միայն որոշակի քարտի նույնականացումն իր UID-ով: RFID ընթերցողը և այս երկու RFID քարտերն արժեն մոտ $4:
Քայլ 3OLED էկրան
Ուսուցումն օգտագործում է 0,96 դյույմ 128x64 I2C OLED մոնիտոր:
Սա շատ լավ էկրան է Arduino-ի հետ օգտագործելու համար: Սա OLED էկրան է, և դա նշանակում է, որ այն ունի ցածր էներգիայի սպառում: Այս էկրանի էներգիայի սպառումը կազմում է մոտ 10-20 մԱ և դա կախված է պիքսելների քանակից:
Ցուցադրումն ունի 128 x 64 պիքսել թույլտվություն և փոքր չափսեր: Ցուցադրման երկու տարբերակ կա. Մեկը մոնոխրոմ է, իսկ մյուսը, ինչպես ձեռնարկում օգտագործվածը, կարող է ցուցադրել երկու գույն՝ դեղին և կապույտ: Էկրանի վերին մասը կարող է լինել միայն դեղին, իսկ ներքևի մասը՝ կապույտ:
Այս OLED էկրանը շատ պայծառ է և ունի հիանալի և շատ գեղեցիկ գրադարան, որը Adafruit-ը մշակել է այս էկրանի համար: Բացի դրանից, էկրանն օգտագործում է I2C ինտերֆեյս, այնպես որ Arduino-ին միանալը աներևակայելի հեշտ է:
Ձեզ անհրաժեշտ է միայն երկու լար միացնել, բացառությամբ Vcc-ի և GND-ի: Եթե դուք նոր եք Arduino-ում և ցանկանում եք ձեր նախագծում օգտագործել էժան և պարզ էկրան, ապա սա սկսելու տեղն է:
Քայլ 4. Բոլոր մասերը միասին դնելը
Arduino Uno տախտակի հետ շփումը շատ պարզ է: Նախ միացրեք հոսանքը և՛ ընթերցողին, և՛ էկրանին:
Զգույշ եղեք, RFID ընթերցողը պետք է միացված լինի Arduino Uno-ի 3.3 Վ ելքին, հակառակ դեպքում այն կվնասվի:
Քանի որ էկրանը կարող է աշխատել նաև 3,3 Վ լարման վրա, մենք VCC-ը երկու մոդուլներից միացնում ենք դրական հացահատիկի ռելսին: Այս երկաթուղին այնուհետև միացված է Arduino Uno-ի 3.3 Վ ելքին: Այնուհետև մենք միացնում ենք երկու հիմքերը (GND) հացատախտակի հիմքի ավտոբուսին: Այնուհետև մենք հացատախտակի GND ավտոբուսը միացնում ենք Arduino GND-ին:
OLED էկրան → Arduino
SCL → Անալոգային փին 5
SDA → Անալոգային փին 4
RFID ընթերցող → Arduino
RST → Թվային փին 9
IRQ → Միացված չէ
MISO → Թվային փին 12
MOSI → Թվային փին 11
SCK → Թվային փին 13
SDA → Թվային փին 10
RFID ընթերցողի մոդուլն օգտագործում է SPI ինտերֆեյսը Arduino-ի հետ հաղորդակցվելու համար: Այսպիսով, մենք պատրաստվում ենք օգտագործել Arduino UNO ապարատային SPI կապում:
RST փին անցնում է թվային փին 9: IRQ փին մնում է անջատված: MISO փին անցնում է թվային փին 12. MOSI փին անցնում է թվային 11 փին: SCK փին գնում է թվային 13, և վերջապես SDA փին գնում է թվային 10 փին: Ահա և վերջ:
RFID ընթերցողը միացված է: Այժմ մենք պետք է միացնենք OLED էկրանը Arduino-ին՝ օգտագործելով I2C ինտերֆեյսը: Այսպիսով, էկրանի վրա SCL քորոցը անցնում է անալոգային Pin 5-ին, իսկ SDA-ն էկրանի վրա՝ անալոգային Pin 4-ին: Եթե մենք այժմ միացնենք նախագիծը և տեղադրենք RFID քարտը ընթերցողի կողքին, մենք կարող ենք տեսնել, որ նախագիծը լավ է աշխատում:
Քայլ 5. Ծրագրի կոդը
Որպեսզի նախագծի կոդը կազմվի, մենք պետք է ներառենք որոշ գրադարաններ: Առաջին հերթին մեզ անհրաժեշտ է MFRC522 Rfid գրադարանը:
Տեղադրելու համար անցեք Էսքիզ -> Ներառել գրադարաններ -> Կառավարել գրադարանները(Գրադարանների կառավարում). Գտեք MFRC522 և տեղադրեք այն:
Ցուցադրման համար մեզ անհրաժեշտ է նաև Adafruit SSD1306 գրադարանը և Adafruit GFX գրադարանը:
Տեղադրեք երկու գրադարանները: Adafruit SSD1306 գրադարանը մի փոքր փոփոխության կարիք ունի: Գնացեք թղթապանակ Arduino -> Գրադարաններ, բացեք Adafruit SSD1306 թղթապանակը և խմբագրեք գրադարանը Adafruit_SSD1306.h. Մեկնաբանեք 70-րդ տողը և հանեք 69-րդ տողը, քանի որ Էկրանի թույլատրելիությունը 128x64 է:
Նախ, մենք հայտարարում ենք RFID թեգի արժեքը, որը Arduino-ն պետք է ճանաչի: Սա ամբողջ թվերի զանգված է.
int կոդը = (69,141,8,136); // UID
Այնուհետև մենք նախաստորագրում ենք RFID ընթերցիչը և ցուցադրում.
Rfid.PCD_Init(); display.begin (SSD1306_SWITCHCAPVCC, 0x3C);
Դրանից հետո հանգույց ֆունկցիայում մենք ստուգում ենք պիտակը ընթերցողի վրա յուրաքանչյուր 100 մս-ում:
Եթե ընթերցողն ունի պիտակ, մենք կարդում ենք նրա UID-ն և տպում այն էկրանին: Այնուհետև մենք համեմատում ենք մեր նոր կարդացած թեգի UID-ը կոդի փոփոխականում պահված արժեքի հետ: Եթե արժեքները նույնն են, մենք ցուցադրում ենք UNLOCK հաղորդագրությունը, հակառակ դեպքում մենք չենք ցուցադրի այս հաղորդագրությունը:
If(match) ( Serial.println("\nԵս գիտեմ այս քարտը!"); printUnlockMessage(); )else (Serial.println("\nԱնհայտ քարտ"); )
Իհարկե, դուք կարող եք փոխել այս կոդը՝ պահելու 1-ից ավելի UID արժեք, որպեսզի նախագիծը ճանաչի ավելի շատ RFID պիտակներ: Սա ընդամենը օրինակ է։
Ծրագրի կոդը:
#ներառում Ինչպես երևում է դասից, քիչ գումարի դիմաց կարող եք ավելացնել RFID ընթերցող ձեր նախագծերին: Դուք կարող եք հեշտությամբ ստեղծել անվտանգության համակարգ այս ընթերցիչով կամ ստեղծել ավելի հետաքրքիր նախագծեր, օրինակ, որպեսզի USB կրիչից տվյալները կարդացվեն միայն ապակողպելուց հետո:
Այս նախագիծը մոդուլային է, այսինքն. դուք կարող եք միացնել / անջատել տարբեր տարրեր և ստանալ տարբեր ֆունկցիոնալություն: Վերևի նկարները ցույց են տալիս լիարժեք ֆունկցիոնալ տարբերակ, մասնավորապես. Որոնվածի կարգավորումներում կարող եք ընտրել երեք տեսակներից որևէ մեկը (պարամետր կողպեք_տիպ) Այս տարրերից որևէ մեկը կարող է բացառվել համակարգից. Կողպեքը նախատեսված է ցածր էներգիայի խնայողության ռեժիմում մարտկոցի էներգիայով աշխատելու համար (Միացնել անջատել՝ կարգավորումը sleep_enable), այսինքն: Երբ համակարգը արթուն է, սեղմեք փոխել գաղտնաբառը կոճակը (թաքնված կոճակը): Մենք ընկնում ենք գաղտնաբառի փոփոխման ռեժիմ: Երբ համակարգը չի քնում (արթնանում է կոճակով կամ քունն անջատված է), սեղմեք *՝ գաղտնաբառի մուտքագրման ռեժիմը մտնելու համար։ Քայլ 6. Վերջնական արդյունք
Մուտքագրեք գաղտնաբառ թվերից ( ԱՌԱՎԵԼԱԳՈՒՅՆ 10 ԹԻՎ!!!)
Եթե համակարգը քնում է և պարբերաբար արթնանում է EVENT-ը ստուգելու համար, ապա սեղմեք * և պահեք մինչև կարմիր LED-ը վառվի:
Գաղտնաբառի մուտքագրման ռեժիմ.