Arduino RFID դռան կողպեք. 5 քայլ (նկարներով)
Arduino RFID դռան կողպեք. 5 քայլ (նկարներով)
Anonim

*** Թարմացվել է 8/9/2010 *** Ես ցանկանում էի իմ ավտոտնակ մուտք գործելու հեշտ և ապահով միջոց: RFID- ը դուռը բացելու լավագույն միջոցն էր, նույնիսկ լիքը ձեռքերով ես կարող եմ բացել դուռը և բացել այն: Ես կառուցեցի մի պարզ միացում հիմնական ATMega 168 arduino չիպով և ID-20 RFID ընթերցողով ՝ դռան էլեկտրոնային կողպեքը վերահսկելու համար: Շղթան բաղկացած է 3 առանձին մասերից, RFID պիտակներ կարդացող ընթերցողից, ընթերցողից տվյալներ ընդունող վերահսկիչից և վերահսկելու RGB LED- ի և Էլեկտրական դռան կողպեքի ելքը: Դռան կողպեքը նախ տեղադրվում է դռան մեջ և փորձարկվում է 9 վ մարտկոցով `ճիշտ տեղադրումն ապահովելու համար: Շատ դեպքերում դու սովորաբար ցանկանում ես միացում դռան կողպեքի վրա կամ ձախողել անվտանգ: Սա նշանակում է, որ դուռը կողպված է մնում, երբ դրա միջով հոսանք չի անցնում: Երբ 12vDC- ն անցնում է դռան կողպեքի էլեկտրամագնիսով, կողպեքի ափսեը տեղի է տալիս և թույլ է տալիս դուռն ազատորեն բացել: Ընթերցողը տեղադրված է դռան արտաքին մասում և ներսից անջատված է վերահսկիչից, որպեսզի ոչ ոք չկարողանա շրջանցել անվտանգությունը `բացելով Ընթերցողը և փորձելով կարճ միացնել ընթերցողին: Վերահսկիչը սերիական տվյալներ է ստանում Reader- ից և վերահսկում է RGB լուսարձակը և Դռան կողպեքը: Այս դեպքում ես երկուսն էլ դրել եմ առանձին հացի տախտակների վրա `փորձարկման համար: Ահա գործող համակարգի համակարգի տեսագրություն: Կարդացեք ՝ տեսնելու համար, թե ինչպես կարող եք կառուցել մեկը ձեր անձի համար: ** Թարմացում ** Բոլոր ծածկագրերը, սխեմաները և PCB նախագծերը փորձարկվել և կատարելագործվել են: Նրանք բոլորը տեղադրված են այստեղ 8/9/2010 դրությամբ տեղադրված և աշխատող վերջնական համակարգի թարմացված տեսանյութը:

Քայլ 1: Անհրաժեշտ մասեր

Ահա SparkFun.com- ի մասերի և հղումների ցանկ, որտեղից ես դրանք գնել եմ: Սա մասերի հիմնական հավաքածուն է, որը ձեզ հարկավոր է կառուցել և arduino- ն, և միացում `arduino- ում RFID պիտակներ կարդալու համար: Ենթադրում եմ, որ դուք արդեն ունեք տախտակ, էլեկտրամատակարարում և միացման լարեր:

Arduino Stuff

ATmega168- ը Arduino Bootloader- ով 4.95 դոլար

Բյուրեղյա 16 ՄՀց 1,50 դոլար

Կերամիկական կոնդենսատոր 22pF $ 0.25 (x2)

Ռեզիստոր 10k Օմ 1/6 -րդ Վտ PTH 0.25 դոլար

Mini Push Button Switch 0.35 դոլար

Եռակի ելքային LED RGB - ցրված 1,95 դոլար

RFID իրեր

Սրանցից որևէ մեկին, 20-ն ավելի լավ տիրույթ ունի, 12-ը ՝ ավելի փոքր: RFID Reader ID-12 29.95 $ RFID Reader ID-20 34.95 $

RFID Reader Breakout 0.95 դոլար

Break Away Headers - Ուղիղ $ 2.50

RFID պիտակ - 125kHz 1.95 դոլար

Այլ

TIP31A տրանզիստոր (ռադիո տնակ/էլեկտրոնիկայի խանութ 1,50 $)

Door Lock- ը ebay- ից է: Դռան ձախողում Անվտանգ մուտքի հսկողություն Electric Strike v5 17,50 ԱՄՆ դոլար (kawamall, bay)

Քայլ 2: Կառուցեք Arduino վերահսկիչ

Հիմնական Arduino- ով RFID դռան կողպեք կառուցելու առաջին քայլը հիմնական աշխատանքային արդուինոյի հացաթխումն է: Arduino- ի նախապես առկայծված ATMega 168 չիպերի մեծ մասը գալիս է նախապես տեղադրված թարթման կանխադրված ծրագրով: Միացրեք LED- ը թվային ելքին 13 և ստուգեք, որ ամեն ինչ աշխատում է:

Այս RFID ընթերցողի ապարատային մասը չափազանց պարզ կլիներ, եթե օգտագործեինք սովորական arduino- ն `ներկառուցված USB ծրագրավորմամբ: Քանի որ ես մտադիր եմ սա դնել պատի մեջ և նորից չդիպչել նրան, ես չեմ ուզում օգտագործել մեծ $ 30 arduino տախտակ, երբ կարող եմ գնել $ 5 ATMega 168 և պատրաստել շատ ավելի փոքր անհատական PCB:

Քանի որ ես որոշեցի ինքս պատրաստել հիմնական Arduino միացում, ինձ պետք է արտաքին USB-> Serial FDIT ծրագրավորող: Ես ներառել եմ վերահսկիչի Eagle սխեմաները ՝ հոսանքի աղբյուրով, որը կառուցված է 7805 լարման կարգավորիչից: Փորձարկման ժամանակ ես օգտագործեցի հացի տախտակի էլեկտրամատակարարում:

Արդուինոն գործարկելու համար անհրաժեշտ է միայն ATMega168- ը, որի վրա առկայծել է arduino ծրագրակազմը, 2x 22pF կոնդենսատորներ, 16 մՀց բյուրեղյա, 10k օհմ ռեզիստոր, սեղմիչ կոճակ և տախտակ: Դրա կապը լավ հայտնի է, բայց ես ներառել եմ սխեմայի ամբողջ սխեման:

Արդուինոն պատրաստվում է գործարկել 4 ելք ՝ 1 -ական կարմիր/կանաչ/կապույտ LED- ների համար, իսկ 1 -ը ՝ TIP31A- ի դռան կողպեքին 12vDC ուղարկելու համար: Արդուինոն սերիական տվյալներ է ստանում իր Rx տողում ID-20 RFID ընթերցողից:

Քայլ 3: Կառուցեք RFID ընթերցող

Այժմ, երբ ձեր arduino հացը նստած եք և աշխատում եք, կարող եք միավորել միացման RFID ընթերցողի այն հատվածը, որը կպարունակի ID-10 կամ ID-20 և RGB LED- ը ՝ միացման կարգավիճակը նշելու համար: Հիշեք, որ ընթերցողը կլինի դրսում և անջատված կլինի վերահսկիչից ներսում, որպեսզի ինչ -որ մեկը հեշտությամբ չկարողանա ներխուժել:

Սա կառուցելու համար մենք պատրաստվում ենք 5v/Ground- ը ուղարկել հիմնական հացի տախտակից դեպի երկրորդական հացի տախտակ, որի վրա մենք կառուցում ենք Reader- ը: Նաև ուղարկեք ավելի քան 3 լար arduino ելքային 3 կապիչներից ՝ RGB LED- ը վերահսկելու համար, յուրաքանչյուրը յուրաքանչյուր գույնի համար: Եվս մեկ մետաղալար ՝ նկարներում պատկերված Բրաունը, սերիական կապ կլինի ID-20- ի համար, որպեսզի խոսի arduino- ի Rx սերիական մուտքի հետ: Սա միացման շատ պարզ միացում է: LED- ները ստանում են ռեզիստորներ և ID-20- ի մի քանի միավոր կապված են գետնին/5 վ ՝ ճիշտ կարգավիճակը սահմանելու համար:

ID-10/ID-20 Sparkfun- ը հացաթխելն ավելի դյուրին դարձնելու համար վաճառում է Breakout տախտակ, որը թույլ է տալիս կցել ավելի երկար կապող վերնագրեր, որոնք տեղակայված են հացի տախտակին համապատասխան: Այս մասը և մատնահետքերը և նշված են մասերի ցանկում:

Սխեման պետք է լինի նեղ առաջ և հեշտ հետևել:

Քայլ 4: !րագիր:

Arամանակն է ծրագրավորել ձեր arduino- ն: Սա կարող է մի փոքր բարդ լինել հիմնական arduino- ի միջոցով, գուցե ստիպված լինեք մի քանի անգամ սեղմել վերակայման կոճակը բեռնման առաջին մասից առաջ և ընթացքում: Շատ կարևոր բան, որը պետք է հիշել, դուք կստանաք վերբեռնման սխալ, եթե ժամանակավորապես չջատվեք ID-20 սերիական գիծը arduino- ի Rx գծին: ATMega168- ն ունի միայն 1 Rx մուտք և այն օգտագործում է ծրագրավորողի հետ խոսելու համար կոդը վերբեռնելու համար: Անջատեք ID-20- ը ծրագրավորման ընթացքում, այնուհետև միացրեք այն միացնելուց հետո: Ես օգտագործել եմ FTDI ծրագրավորող, որը թույլ է տալիս arduino- ն USB- ով ծրագրավորել ընդամենը 4 լարով: Controller- ի սխեման ցույց է տալիս կապի վերնագրի միացում, որը թույլ է տալիս ուղղակիորեն միացնել այն: Sparkfun- ը նույնպես վաճառում է այս հատվածը, բայց շատերը կարող են այն արդեն ունենալ:

Դուք կարող եք հեշտությամբ վերբեռնել իմ կոդը ձեր arduino- ում և երբեք հետ չնայել, բայց ո՞րն է դրա զվարճանքը: Թույլ տվեք բացատրել այն հիմնական գաղափարը, թե ինչպես է այն աշխատում:

Նախևառաջ, ես չէի ուզում որևէ արտաքին կոճակ/անջատիչ/և այլն, և չէի ցանկանում վերադասավորել arduino- ն ամեն անգամ, երբ ուզում էի նոր քարտ ավելացնել: Հետևաբար, ես ուզում էի օգտագործել միայն RFID- ը `շղթայի աշխատանքը վերահսկելու, ինչպես նաև դռան կողպեքը վերահսկելու համար:

Turnsրագիրը միացնում է Կապույտ LED- ը `նշելու, որ պատրաստ է կարդալ նոր քարտ: Երբ քարտը կարդացվում է, այն որոշում է `դա վավեր քարտ է, թե ոչ` համեմատելով կարդացածը վավեր քարտերի ցանկի հետ: Եթե օգտագործողը վավեր է, arduino- ն անջատում է կապույտ LED- ն և միացնում կանաչ LED- ը 5 վայրկյան: Այն նաև միացնում է մեկ այլ բարձր թողունակություն 5 վայրկյանով: Այս ելքը միացված է TIP31A տրանզիստորին և թույլ է տալիս փոքրիկ arduino- ին կառավարել շատ ավելի մեծ 12v 300mA դռան կողպեք ՝ առանց վնասվելու: 5 վայրկյան անց դռան կողպեքը նորից կողպվում է, և LED- ը կրկին դառնում է կապույտ, որպեսզի սպասի մեկ այլ քարտի ընթերցմանը: Եթե քարտը անվավեր է, ապա LED- ը մի քանի վայրկյան փոխվում է RED- ի և կրկին դառնում է Կապույտ `սպասելու մեկ այլ քարտի:

Կարևոր է, որ դռան կողպեքը դեռ աշխատի, նույնիսկ եթե arduino- ն մեկ գիշերվա ընթացքում կորցնի էներգիան կամ վերականգնվի: Հետևաբար, բոլոր վավեր քարտերի ID- ները պահվում են EEPROM հիշողության մեջ: ATMega168- ն ունի 512 բայթ EEPROM հիշողություն: Յուրաքանչյուր RFID քարտ ունի 5 Hex Byte սերիական համար և 1 Hex Byte Check գումար, որը մենք կարող ենք օգտագործել `հաստատելու համար, որ ID-20- ի և arduino- ի միջև փոխանցման մեջ սխալներ չեն եղել:

Վավեր քարտերը պահվում են EEPROM- ում ՝ օգտագործելով առաջին բայթը որպես հաշվիչ: Օրինակ, եթե պահվեն 3 վավեր քարտեր, առաջին բայթը EEPROM- ում կլինի 3. EEPROM.read (0); = 3. Սա իմանալով, և այն փաստը, որ յուրաքանչյուր ID- ի երկարությունը 5 բայթ է, մենք գիտենք, որ 1-5-ը առաջին քարտն է, 6-10-ը `քարտ 2-ը, իսկ 11-15-ը` քարտ 3-ը: Մենք կարող ենք հանգույց կազմել, որը նայում է EEPROM- ին: Միաժամանակ 5 բայթ և փորձում է գտնել ընթերցողի կողմից կարդացած քարտը:

Բայց ինչպես կարող ենք նոր քարտեր ավելացնել EEPROM- ին `միացումը տեղադրվելուց հետո: Ես կարդացել եմ իմ ունեցած RFID քարտերից մեկում և դժվարությամբ այն ծածկագրել եմ որպես հիմնական RFID քարտ: Այսպիսով, նույնիսկ եթե ամբողջ EEPROM- ը ջնջվի, գլխավոր քարտը դեռ կաշխատի: Ամեն անգամ, երբ քարտը կարդում են, այն նախ ստուգում է ՝ արդյոք դա Master քարտն է, եթե ոչ, ապա այն շարունակում է տեսնել ՝ արդյոք դա վավեր քարտ է, թե ոչ: Եթե քարտը գլխավոր քարտն է, մենք պետք է arduino- ն անցնենք «ծրագրավորման ռեժիմի», որտեղ այն թարթում է RGB- ով և սպասում է մեկ այլ վավեր պիտակի ընթերցմանը: Հաջորդ պիտակը, որը կարդացվում է, ավելացվում է EEPROM- ի հաջորդ անվճար տեղում և հաշվիչը ավելանում է 1 -ով, եթե քարտը դեռ գոյություն չունի EEPROM հիշողության մեջ: Դրանից հետո ընթերցողը վերադառնում է նորմալ ռեժիմի և սպասում նոր քարտի ընթերցմանը:

Ներկայումս ես չեմ ծրագրել քարտը ջնջելու միջոց, քանի որ, ամենայն հավանականությամբ, քարտը ջնջելու պատճառը կորած կամ գողացված լինելն է: Քանի որ սա, ամենայն հավանականությամբ, կօգտագործվի 1-10 հոգու դեպքում, ամենահեշտ բանը կլինի ծրագրավորել Master Erase քարտ, որը կջնջի EEPROM- ից բոլոր քարտերը, այնուհետև դրանք նորից կավելացնի, ինչը տևում է ընդամենը մի քանի վայրկյան: Ես ավելացրել եմ ծածկագիրը EEPROM- ը մաքրելու համար, բայց դեռ չեմ կիրառել այս հնարավորությունը:.

Կոդը կցվում է տեքստային ֆայլում `մասերի ցանկի պատճենի հետ միասին:

Քայլ 5: Ընդլայնել

Սա միայն այն հիանալի բաներից է, որ կարող եք անել RFID- ով: Դուք կարող եք դա շատ ավելի ընդլայնել LCD ելքով, մուտքագրելով ով և երբ է մտնում, ցանց/թվիթեր կապ և այլն: Ես նախկինում երբեք PCB չեմ պատրաստել, ուստի դեռ աշխատում եմ մասերի նախագծման և դասավորության վրա: Երբ դրանք ամբողջական լինեն, դրանք նույնպես կտեղադրեմ: Ես խրախուսում եմ որևէ մեկին վերցնել իմ գրած ծածկագիրը և փոփոխել այն ՝ էլ ավելի հիանալի բաներ անելու համար:

Արդուինոյի մրցույթի եզրափակիչ մասնակից

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