Satura rādītājs:

Arduino RFID durvju slēdzene: 5 soļi (ar attēliem)
Arduino RFID durvju slēdzene: 5 soļi (ar attēliem)

Video: Arduino RFID durvju slēdzene: 5 soļi (ar attēliem)

Video: Arduino RFID durvju slēdzene: 5 soļi (ar attēliem)
Video: How we open our doors 2024, Jūlijs
Anonim
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene
Arduino RFID durvju slēdzene

*** Atjaunināts 2010. gada 9. septembrī *** Es vēlējos viegli un droši iekļūt manā garāžā. RFID bija labākais veids, kā atslēgt manas durvis, pat ar pilnām rokām es varu atslēgt durvis un atgrūst tās! Es izveidoju vienkāršu shēmu ar pamata ATMega 168 arduino mikroshēmu un ID-20 RFID lasītāju, lai kontrolētu elektronisko durvju slēdzeni. Ķēde sastāv no 3 atsevišķām daļām, lasītāja RFID tagu lasīšanai, kontroliera, lai pieņemtu datus no lasītāja un kontrolētu RGB gaismas diodes un elektriskās durvju slēdzenes izvadi. Durvju slēdzene vispirms tiek uzstādīta durvīs un pārbaudīta ar 9 V akumulatoru, lai nodrošinātu pareizu uzstādīšanu. Vairumā gadījumu vēlaties, lai durvju slēdzenē būtu normāli atvērta ķēde, vai Fail Secure. Tas nozīmē, ka durvis paliek aizslēgtas, ja caur tām neiziet strāva. Kad 12vDC tiek izvadīts caur durvju slēdzenes elektromagnētu, slēdzenes plāksne piekāpjas un ļauj brīvi atvērt durvis. Lasītājs ir novietots uz durvju ārpuses un ir atsevišķi no kontroliera iekšpusē, lai neviens nevarētu apiet drošību, atverot lasītāju un mēģinot radīt īssavienojumu lasītājam. Kontrolieris saņem sērijas datus no lasītāja un kontrolē RGB gaismas diodi un durvju slēdzeni. Šajā gadījumā es abus esmu ievietojis atsevišķos maizes dēļos pārbaudei. Šeit ir video pārskats par sistēmu darbībā Lasiet tālāk, lai uzzinātu, kā to izveidot sev! ** Atjaunināt ** Visi kodi, shēmas un PCB modeļi ir pārbaudīti un pilnveidoti. Tie visi ir ievietoti šeit 2010. gada 9. septembrī. Atjaunināts video par galīgo instalēto un strādājošo sistēmu.

1. darbība. Nepieciešamās detaļas

Nepieciešamas detaļas
Nepieciešamas detaļas

Šeit ir to detaļu saraksts un saites uz SparkFun.com, kur es tās iegādājos. Šis ir pamata komponentu komplekts, kas jums jāveido, un arduino, kā arī shēma RFID tagu nolasīšanai arduino. Es pieņemu, ka jums jau ir maizes dēlis, barošanas avots un savienojuma vadi.

Arduino lietas

ATmega168 ar Arduino sāknēšanas programmu 4,95 ASV dolāri

Kristāls 16 MHz 1,50 ASV dolāri

Keramikas kondensators 22pF $ 0,25 (x2)

Rezistors 10k omi 1/6 vatu PTH $ 0.25

Mini spiedpogas slēdzis 0,35 ASV dolāri

Trīskāršās izejas LED RGB - izkliedēts 1,95 ASV dolāri

RFID lietas

Jebkurš no šiem, 20 ir labāks diapazons, 12 ir mazāks RFID lasītāja ID-12 $ 29,95 RFID lasītāja ID-20 34,95 $

RFID lasītāju izlaušanās 0,95 ASV dolāri

Atdalīšanas galvenes - taisni 2,50 ASV dolāri

RFID tags - 125 kHz 1,95 ASV dolāri

Citi

TIP31A tranzistors (radio būda/vietējais elektronikas veikals 1,50 ASV dolāri)

Durvju slēdzene ir no ebay. Durvju atteice Droša piekļuves kontrole Electric Strike v5 NO 17,50 USD (kawamall, bay)

2. darbība: izveidojiet Arduino kontrolieri

Izveidojiet Arduino kontrolieri
Izveidojiet Arduino kontrolieri
Izveidojiet Arduino kontrolieri
Izveidojiet Arduino kontrolieri
Izveidojiet Arduino kontrolieri
Izveidojiet Arduino kontrolieri

Pirmais solis, lai izveidotu RFID durvju slēdzeni ar pamata Arduino, ir izklāt pamata darba arduino. Lielākajai daļai Arduino iepriekš mirgojošo ATMega 168 mikroshēmu ir iepriekš instalēta noklusējuma mirgošanas programma. Pievienojiet gaismas diodi digitālajai izejai 13 un pārbaudiet, vai viss darbojas.

Šī RFID lasītāja aparatūras daļa būtu pārāk vienkārša, ja mēs izmantotu parastu arduino ar iebūvētu USB programmētāju. Tā kā es plānoju to ievietot sienā un to vairs neaiztikt, es nevēlos izmantot lielu, apjomīgu 30 ASV dolāru arduino plāksni, kad varu nopirkt 5 ASV dolāru ATMega 168 un izgatavot daudz mazāku pielāgotu PCB.

Tā kā es izvēlējos pats izveidot pamata Arduino shēmu, man ir nepieciešams ārējs USB-> sērijas FDIT programmētājs. Esmu iekļāvis kontroliera Eagle shēmas ar barošanas avotu, kas veidots no 7805 sprieguma regulatora. Pārbaudē es izmantoju maizes dēļa barošanas avotu.

Lai sāktu darboties arduino, viss, kas jums patiešām nepieciešams, ir ATMega168 ar arduino programmatūru, 2x 22pF kondensatori, 16mhz kristāls, 10k omu rezistors, spiedpoga un maizes dēlis. Hookup par to ir labi zināms, bet esmu iekļāvis visu shēmas shēmu.

Arduino aktivizēs 4 izejas, pa vienai sarkanām/zaļām/zilām gaismas diodēm un vienu, lai aktivizētu TIP31A, lai nosūtītu 12vDC uz durvju slēdzeni. Arduino saņem seriālos datus savā Rx līnijā no ID-20 RFID lasītāja.

3. darbība: izveidojiet RFID lasītāju

Izveidojiet RFID lasītāju
Izveidojiet RFID lasītāju
Izveidojiet RFID lasītāju
Izveidojiet RFID lasītāju
Izveidojiet RFID lasītāju
Izveidojiet RFID lasītāju

Tagad, kad jūsu arduino maize ir iekāpusi un strādājat, varat salikt ķēdes RFID lasītāja daļu, kurā būs ID-10 vai ID-20 un RGB gaismas diode, lai norādītu ķēdes statusu. Atcerieties, ka lasītājs būs ārpusē un atsevišķi no kontroliera iekšpusē, lai kāds nevarētu viegli ielauzties.

Lai to izveidotu, mēs nosūtīsim 5v/zemi no primārā maizes dēļa uz sekundāro maizes dēli, uz kura mēs veidojam lasītāju. Nosūtiet arī vairāk nekā 3 vadus no 3 arduino izejas tapām, lai kontrolētu RGB LED, pa vienai katrai krāsai. Vēl viens vads, attēlos redzamais Brauns, būs sērijveida savienojums ID-20, lai runātu ar arduino Rx sērijas ieeju. Šī ir ļoti vienkārša ķēde savienošanai. Gaismas diodes iegūst rezistorus, un daži punkti uz ID-20 ir piesaistīti zemei/5v, lai iestatītu pareizo statusu.

Lai atvieglotu maizes klāšanu, ID-10/ID-20 Sparkfun pārdod Breakout dēli, kas ļauj piestiprināt garākus tapu galviņas, kas ir izvietotas atsevišķi, lai ietilptu maizes dēlī. Šī daļa un pinheaders un uzskaitīti detaļu sarakstā.

Shēmai jābūt saspringtai un viegli izpildāmai.

4. solis: programmējiet

Laiks ieprogrammēt savu arduino. Izmantojot pamata arduino, tas var būt nedaudz sarežģīti, iespējams, jums būs vairākas reizes jānospiež atiestatīšanas poga pirms augšupielādes pirmās daļas un tās laikā. Ļoti svarīga lieta, kas jāatceras, jūs saņemsiet augšupielādes kļūdu, ja īslaicīgi neatvienosit ID-20 sērijas līniju ar arduino Rx līniju. ATMega168 ir tikai 1 Rx ievade, un tā to izmanto, lai augšupielādētu kodu, lai sarunātos ar programmētāju. Programmēšanas laikā atvienojiet ID-20 un pēc tam pievienojiet to atpakaļ, kad esat pabeidzis. Es izmantoju FTDI programmētāju, kas ļauj programmēt arduino, izmantojot USB, tikai ar 4 vadiem. Kontroliera shēmā ir parādīts tapas galvenes savienojums, kas ļauj to tieši pievienot. Sparkfun arī pārdod šo daļu, taču daudziem tā jau var būt.

Jūs varat viegli augšupielādēt manu kodu savā arduino un nekad neskatīties atpakaļ, bet kas tur ir jautri? Ļaujiet man izskaidrot pamatideju, kā tā darbojas.

Pirmkārt, es negribēju ārējas pogas/slēdžus/utt, un es negribēju pārprogrammēt arduino katru reizi, kad vēlējos pievienot jaunu karti. Tāpēc es gribēju izmantot tikai RFID, lai kontrolētu ķēdes darbību, kā arī kontrolētu durvju slēdzeni.

Programma ieslēdz zilo LED, lai norādītu, ka tā ir gatava nolasīt jaunu karti. Kad karte tiek nolasīta, tā izlemj, vai tā ir derīga karte, salīdzinot izlasīto ar derīgo karšu sarakstu. Ja lietotājs ir derīgs, arduino izslēdz zilo LED un ieslēdz zaļo gaismas diodi uz 5 sekundēm. Tas arī ieslēdz citu izejas jaudu 5 sekundes. Šī izeja ir savienota ar TIP31A tranzistoru un ļauj mazajam arduino kontrolēt daudz lielāku 12v 300mA durvju slēdzeni, nesabojājot to. Pēc 5 sekundēm durvju slēdzene atkal tiek bloķēta, un gaismas diode atkal kļūst zila, gaidot, kamēr tiks nolasīta cita karte. Ja karte nav derīga, gaismas diode uz dažām sekundēm mainās uz SARKANU un atkal uz zilu, lai gaidītu citu karti.

Ir svarīgi, lai durvju slēdzene joprojām darbotos pat tad, ja arduino pa nakti zaudē enerģiju vai tiek atiestatīts. Tāpēc visi derīgie karšu ID tiek saglabāti EEPROM atmiņā. ATMega168 ir 512 baiti EEPROM atmiņas. Katrai RFID kartei ir 5 heksa baitu sērijas numurs un 1 heksa baitu pārbaudes summa, ko mēs varam izmantot, lai pārbaudītu, vai nav pārraides starp ID-20 un arduino.

Derīgās kartes tiek saglabātas EEPROM, izmantojot pirmo baitu kā skaitītāju. Piemēram, ja ir 3 derīgas kartes, pirmais baits EEPROM būtu 3. EEPROM.read (0); = 3. Zinot to un to, ka katrs ID ir 5 baitus garš, mēs zinām, ka 1-5 ir pirmā karte, 6-10 ir 2. karte un 11-15 ir 3. karte. Mēs varam izveidot cilpu, kas izskatās caur EEPROM 5 baiti vienlaikus un mēģina atrast karti, kuru lasītājs lasījis.

Bet kā mēs varam pievienot jaunas kartes EEPROM pēc ķēdes uzstādīšanas ?? Esmu izlasījis vienā no manām RFID kartēm un to kodējis kā galveno RFID karti. Tātad, pat ja viss EEPROM ir noslaucīts, galvenā karte joprojām darbosies. Kad karte tiek nolasīta, tā vispirms pārbauda, vai tā ir galvenā karte, ja nē, tad turpina pārbaudīt, vai tā ir derīga karte. Ja karte ir galvenā karte, mums ir arduino, kas pāriet "programmēšanas režīmā", kur mirgo RGB un gaida, kad tiks nolasīta cita derīga atzīme. Nākamais nolasītais tags tiek pievienots nākamajai EEPROM brīvajai vietai, un skaitītājs tiek palielināts par 1, ja karte vēl nav EEPROM atmiņā. Pēc tam lasītājs atgriežas normālā režīmā un gaida jaunas kartes nolasīšanu.

Pašlaik es neesmu ieprogrammējis veidu, kā izdzēst karti, jo kartes dzēšanas iemesli, visticamāk, būtu nozaudēti vai nozagti. Tā kā to, visticamāk, varētu izmantot 1-10 cilvēki, visvieglāk būtu ieprogrammēt Master Erase karti, kas izdzēsīs visas kartes no EEPROM, pēc tam tās atkal pievienos, un tas aizņem tikai dažas sekundes. Esmu pievienojis kodu, lai notīrītu EEPROM, bet vēl neesmu ieviesis šo funkciju..

Kods ir pievienots teksta failā kopā ar detaļu saraksta kopiju.

5. darbība: izvērsiet

Šī ir tikai daļa no interesantajām lietām, ko varat darīt ar RFID. Jūs to varētu paplašināt vēl vairāk, izmantojot LCD izvadi, reģistrēšanu, kas un kad ieiet, tīkla/twitter savienojumu utt. Es plānoju izveidot šīs shēmas gatavo PCB versiju. Es nekad iepriekš neesmu izgatavojis PCB, tāpēc es joprojām strādāju pie detaļu dizaina un izkārtojuma. Kad tie būs pabeigti, es tos arī ievietošu. Es aicinu ikvienu ņemt manis uzrakstīto kodu un mainīt to, lai darītu vēl interesantākas lietas!

Arduino konkursa finālists

Ieteicams: