Sadržaj:

Arduino RFID zaključavanje vrata: 5 koraka (sa slikama)
Arduino RFID zaključavanje vrata: 5 koraka (sa slikama)

Video: Arduino RFID zaključavanje vrata: 5 koraka (sa slikama)

Video: Arduino RFID zaključavanje vrata: 5 koraka (sa slikama)
Video: Система контроля доступа RFID с клавиатурой TIVDIO 2024, Juli
Anonim
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata
Arduino RFID brava za vrata

*** Ažurirano 9.9.2010. *** Htio sam na jednostavan i siguran način ući u svoju garažu. RFID je bio najbolji način za otključavanje vrata, čak i sa punim rukama mogu otključati vrata i otvoriti ih! Napravio sam jednostavno kolo sa osnovnim ATMega 168 arduino čipom i RFID čitačem ID-20 za kontrolu elektronske brave na vratima. Krug se sastoji od 3 odvojena dijela, čitača za čitanje RFID oznaka, kontrolera za prihvaćanje podataka iz čitača i upravljanja izlazom RGB LED diode i električnom bravom za vrata. Brava na vratima se prvo ugrađuje u vrata i testira sa 9v baterijom kako bi se osigurala ispravna ugradnja. U većini slučajeva želite normalno otvoreno kolo na bravi vrata ili osiguranje od neuspjeha. To znači da vrata ostaju zaključana kada kroz njih ne prolazi struja. Kada 12vDC prođe kroz elektromagnet u bravi vrata, ploča u bravi popušta i omogućava slobodno otvaranje vrata. Čitač je postavljen s vanjske strane vrata i odvojen je od kontrolera iznutra, tako da nitko ne može zaobići sigurnost probijanjem čitača i pokušajem kratkog spoja čitača. Kontroler prima serijske podatke od čitača i kontrolira RGB LED diodu i zaključavanje vrata. U ovom slučaju oboje sam stavio na zasebne ploče za testiranje. Evo video pregleda sistema u akciji Čitajte dalje da biste vidjeli kako ga izgraditi za sebe! ** Ažuriranje ** Svi kodovi, sheme i dizajn PCB -a su testirani i poboljšani. Svi oni su ovdje objavljeni dana 9.9.2010. Ažurirani video zapis o instaliranom i funkcionalnom sistemu.

Korak 1: Potrebni dijelovi

Potrebni dijelovi
Potrebni dijelovi

Evo popisa dijelova i linkova do SparkFun.com gdje sam ih kupio. Ovo je osnovni skup dijelova koji su vam potrebni za izradu i arduino i sklop za čitanje RFID oznaka na arduinu. Pretpostavljam da već imate matičnu ploču, napajanje i spojne žice.

Arduino stvari

ATmega168 sa Arduino Bootloaderom 4,95 USD

Crystal 16MHz 1,50 USD

Keramički kondenzator 22pF 0,25 USD (x2)

Otpornik 10k Ohm 1/6 vati PTH 0,25 USD

Mini prekidač sa prekidačem 0,35 USD

LED trostruki izlaz RGB - difuzno 1,95 USD

RFID stvari

Bilo koji od ovih, 20 ima bolji raspon, 12 je manji RFID čitač ID-12 29,95 USDRFID čitač ID-20 34,95 USD

Probijanje RFID čitača 0,95 USD

Break Away Headers - Ravno 2,50 USD

RFID oznaka - 125 kHz 1,95 USD

Ostalo

TIP31A tranzistor (radio kućica/lokalna trgovina elektronike 1,50 USD)

Brava za vrata je sa ebaya. Otkazivanje vrata Sigurna kontrola pristupa Electric Strike v5 NE 17,50 USD (kawamall, uvala)

Korak 2: Izgradite Arduino kontroler

Napravite Arduino kontroler
Napravite Arduino kontroler
Napravite Arduino kontroler
Napravite Arduino kontroler
Napravite Arduino kontroler
Napravite Arduino kontroler

Prvi korak u izgradnji RFID brave za vrata s osnovnim Arduinom je izrada osnovnog radnog arduina. Većina Arduino unaprijed fleširanih ATMega 168 čipova dolazi sa unaprijed instaliranim zadanim blink programom. Spojite LED na digitalni izlaz 13 i provjerite radi li sve.

Hardverski dio ovog RFID čitača bio bi previše jednostavan da smo koristili običan arduino sa ugrađenim USB programatorom. Budući da ovo planiram staviti u zid i ne dodirivati ga više, ne želim koristiti veliku glomaznu arduino ploču od 30 USD kada mogu kupiti ATMegu 168 za 5 USD i napraviti mnogo manju prilagođenu PCB.

Budući da sam se odlučio za izradu osnovnog Arduino sklopa, potreban mi je vanjski USB-> Serijski FDIT programator. Uključio sam Eagle sheme kontrolera sa napajanjem izgrađenim od regulatora napona 7805. U testiranju sam koristio napajanje sa ploče.

Da biste pokrenuli arduino sve što vam zaista treba je ATMega168 sa arduino softverom na njemu, 2x 22pF kondenzatora, kristal 16 MHz, otpornik od 10 k ohma, tipka i ploča. Priključak za ovo je dobro poznat, ali uključio sam cijelu shemu kruga.

Arduino će aktivirati 4 izlaza, po jedan za crvenu/zelenu/plavu LED diodu, i jedan za aktiviranje TIP31A za slanje 12vDC na bravu vrata. Arduino prima serijske podatke na svojoj Rx liniji od RF-čitača ID-20.

Korak 3: Izgradite RFID čitač

Napravite RFID čitač
Napravite RFID čitač
Napravite RFID čitač
Napravite RFID čitač
Napravite RFID čitač
Napravite RFID čitač

Sada kada ste ukrcali svoj arduino kruh i radili, možete sastaviti dio kruga RFID čitača koji će sadržavati ID-10 ili ID-20 i RGB LED za označavanje statusa kruga. Upamtite da će čitač biti vani i odvojen od kontrolera iznutra tako da neko ne može lako provaliti.

Da bismo to izgradili, poslat ćemo 5V/Ground sa primarne ploče za hljeb na sekundarnu ploču za hljeb na kojoj gradimo čitač. Također pošaljite preko 3 žice s 3 arduino izlaza za kontrolu RGB LED, po jednu za svaku boju. Još jedna žica, smeđa na slikama, bit će serijska veza za ID-20 za razgovor s arduino Rx serijskim ulazom. Ovo je vrlo jednostavno kolo za povezivanje. Otpornici sa LED diodama i nekoliko točaka na ID-20 vezani su za uzemljenje/5v kako bi postavili ispravan status.

Radi lakšeg postavljanja matične ploče ID-10/ID-20 Sparkfun prodaje Breakout ploču koja vam omogućuje da pričvrstite duže zaglavlje iglica koje su razmaknute tako da stanu na ploču za kruh. Ovaj dio i zaglavlja pin -ova su navedeni na popisu dijelova.

Shema bi trebala biti jasna i laka za praćenje.

Korak 4: Program

Vrijeme je za programiranje vašeg arduina. Ovo može biti pomalo zeznuto ako koristite osnovni arduino, možda ćete morati pritisnuti tipku za poništavanje više puta prije i tijekom prvog dijela prijenosa. Vrlo važna stvar koju treba zapamtiti, dobit ćete grešku pri učitavanju ako privremeno ne isključite serijsku liniju ID-20 sa arduino Rx linijom. ATMega168 ima samo 1 Rx ulaz i koristi ga za učitavanje koda za razgovor sa programerom. Odspojite ID-20 tokom programiranja, a zatim ga ponovo uključite kada završite. Koristio sam FTDI programator koji vam omogućuje programiranje arduina putem USB -a sa samo 4 žice. Shema kontrolera prikazuje vezu zaglavlja pina koja vam omogućava da ga direktno priključite. Sparkfun također prodaje ovaj dio, ali mnogi ga možda već imaju.

Možete jednostavno prenijeti moj kôd na svoj arduino i nikada se ne osvrnuti, ali koja je zabava u tome? Dopustite mi da objasnim osnovnu ideju kako to funkcionira.

Prije svega, nisam želio vanjske tipke/prekidače/itd. I nisam želio reprogramirati arduino svaki put kad sam htio dodati novu karticu. Stoga sam htio koristiti samo RFID za kontrolu rada kola, kao i za kontrolu brave na vratima.

Program uključuje plavu LED lampicu kako bi pokazao da je spreman za čitanje nove kartice. Kada se kartica pročita, ona odlučuje da li je valjana ili ne upoređujući ono što je pročitala sa listom važećih kartica. Ako je korisnik valjan, arduino isključuje plavu LED diodu i uključuje zelenu LED lampicu na 5 sekundi. Uključuje i drugi izlaz na 5 sekundi. Ovaj izlaz je spojen na TIP31A tranzistor i omogućava malenom arduinu da kontrolira mnogo veću 12v 300mA bravu vrata bez oštećenja. Nakon 5 sekundi zaključavanje vrata se ponovo zaključava i LED dioda se ponovo uključuje u plavo kako bi sačekala čitanje druge kartice. Ako je kartica neispravna, LED dioda se mijenja u CRVENU na nekoliko sekundi i nazad u plavu kako bi sačekala drugu karticu.

Važno je da brava na vratima i dalje radi čak i ako arduino izgubi snagu preko noći ili se resetira. Stoga se svi valjani ID -ovi kartice pohranjuju u memoriju EEPROM -a. ATMega168 ima 512 bajtova EEPROM memorije. Svaka RFID kartica ima serijski broj od 5 heksadejmskih bajtova i kontrolnu sumu od 1 heksadejma bajtova koju možemo koristiti za provjeru da nije bilo grešaka u prijenosu između ID-20 i arduina.

Važeće kartice se pohranjuju u EEPROM koristeći prvi bajt kao brojač. Na primjer, ako postoje 3 važeće kartice pohranjene, prvi bajt u EEPROM -u bio bi 3. EEPROM.read (0); = 3. Znajući ovo i činjenicu da je svaki ID dugačak 5 bajtova znamo da je 1-5 kartica prva, 6-10 kartica 2 i 11-15 kartica 3. Možemo napraviti petlju koja gleda kroz EEPROM 5 bajtova odjednom i pokušava pronaći karticu koju je čitač pročitao.

Ali kako možemo dodati nove kartice u EEPROM nakon instaliranja kola ?? Pročitao sam jednu od RFID kartica koju imam i tvrdo je kodirao kao glavnu RFID karticu. Dakle, čak i ako je cijeli EEPROM izbrisan, glavna kartica će i dalje funkcionirati. Kad god se kartica pročita, ona prvo provjerava je li to glavna kartica, ako nije, onda nastavlja provjeravati je li valjana ili nije. Ako je kartica glavna kartica, arduino prelazi u "način programiranja" gdje treperi RGB i čeka da se pročita druga valjana oznaka. Sljedeća oznaka koja se čita dodaje se na sljedeće slobodno mjesto u EEPROM -u i brojač se povećava za 1 ako kartica već ne postoji u memoriji EEPROM -a. Čitač se zatim vraća u normalan način rada i čeka da se očita nova kartica.

Trenutno nisam programirao način brisanja kartice jer bi razlozi za brisanje kartice najvjerojatnije bili izgubljeni ili ukradeni. Budući da bi se ovo najvjerojatnije koristilo s 1-10 osoba, najlakše bi bilo napraviti hard programom Master Erase kartice koja će izbrisati sve kartice iz EEPROM-a, a zatim ih sve dodati, što traje samo nekoliko sekundi. Dodao sam kôd za brisanje EEPROM -a, ali još nisam implementirao ovu funkciju..

Kôd je priložen u tekstualnoj datoteci zajedno s kopijom popisa dijelova.

Korak 5: Proširite

Ovo su samo neke od super stvari koje možete učiniti s RFID -om. Ovo biste mogli još više proširiti LCD izlazom, evidentiranjem ko ulazi i kada, mrežnom/twitter vezom itd. Planiram napraviti gotovu PCB verziju ovog kruga. Nikada prije nisam napravio PCB pa još uvijek radim na dizajnu i rasporedu dijelova. Kad ih kompletiram, postaviću ih i ja. Potičem svakoga da uzme kôd koji sam napisao i izmijeni ga kako bi učinio još kul stvari!

Finalista Arduino takmičenja

Preporučuje se: