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: Čitač ID kartica i privezaka - testiranje 2024, Srpanj
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. *** Želio 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 s punim rukama mogu otključati vrata i otvoriti ih! Napravio sam jednostavan sklop s osnovnim ATMega 168 arduino čipom i RF-čitačem ID-20 za kontrolu elektroničke brave na vratima. Krug se sastoji od 3 odvojena dijela, čitača za čitanje RFID oznaka, kontrolera za prihvaćanje podataka s čitača i upravljanja izlazom RGB LED diode i električnom bravom za vrata. Brava na vratima prvo se ugrađuje u vrata i testira s 9v baterijom kako bi se osigurala ispravna ugradnja. U većini slučajeva želite normalno otvoreni krug na bravi vrata ili Fail Secure. To znači da vrata ostaju zaključana kad kroz njih ne prolazi struja. Kad 12vDC prođe kroz elektromagnet u bravi vrata, ploča u bravi popušta i omogućuje slobodno otvaranje vrata. Čitač je postavljen s vanjske strane vrata i odvojen je od kontrolera s unutarnje strane tako da nitko ne može zaobići sigurnost razbijanjem čitača i pokušajem kratkog spoja čitača. Upravljač prima serijske podatke od čitača i kontrolira RGB LED diodu i zaključavanje vrata. U ovom sam slučaju oboje stavio na zasebne ploče za testiranje. Evo video pregleda sustava na djelu Čitajte dalje kako biste vidjeli kako ga izgraditi za sebe! ** Ažuriranje ** Svi kodovi, sheme i dizajn PCB -a testirani su i poboljšani. Svi su oni objavljeni ovdje od 9.9.2010. Ažurirani videozapis konačnog instaliranog sustava koji radi.

Korak 1: Potrebni dijelovi

Potrebni dijelovi
Potrebni dijelovi

Ovdje je popis dijelova i veze na SparkFun.com gdje sam ih kupio. Ovo je osnovni skup dijelova koje trebate izgraditi i arduino te sklop za čitanje RFID oznaka u arduinu. Pretpostavljam da već imate ploču za napajanje, napajanje i spojne žice.

Arduino stvari

ATmega168 s Arduino Bootloaderom 4,95 USD

Kristal 16MHz 1,50 USD

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

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

Prekidač za mini gumb 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 USD RFID čitač ID-20 34,95 USD

Proboj čitača RFID -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 s ugrađenim USB programatorom. Budući da ovo namjeravam staviti u zid i ne dirati 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 regulatora s napajanjem izgrađenim od regulatora napona 7805. U testiranju sam koristio napajanje za ploču za kruh.

Da biste arduino pokrenuli i radili, sve što vam doista treba je ATMega168 s arduino softverom, 2x kondenzatori od 22 pF, kristal 16 MHz, otpornik od 10 k ohma, tipka i ploča. Priključak za to je dobro poznat, ali uključio sam cijelu shemu za krug.

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 netko ne može lako provaliti.

Da bismo to izgradili, poslat ćemo 5V/Ground s primarne ploče za kruh na sekundarnu ploču za kruh 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 arduinovim Rx serijskim ulazom. Ovo je vrlo jednostavan sklop za povezivanje. Otpornici za LED diode i nekoliko točaka na ID-20 vezani su za masu/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 pribadača navedeni su na popisu dijelova.

Shema bi trebala biti kratka prema naprijed i lako ju je slijediti.

Korak 4: Program

Vrijeme je za programiranje vašeg arduina. To može biti malo zeznuto ako koristite osnovni arduino, možda ćete morati pritisnuti gumb za poništavanje više puta prije i tijekom prvog dijela prijenosa. Vrlo važno za zapamtiti, dobit ćete pogrešku pri prijenosu ako privremeno ne isključite serijsku liniju ID-20 s arduino Rx linijom. ATMega168 ima samo 1 Rx ulaz i koristi ga za učitavanje koda za razgovor s programatorom. Odspojite ID-20 tijekom programiranja, a zatim ga ponovno uključite kad završite. Koristio sam FTDI programer koji vam omogućuje programiranje arduina putem USB -a sa samo 4 žice. Shema kontrolera prikazuje vezu zaglavlja pina koja vam omogućuje izravno priključivanje. 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 gumbe/prekidače/itd. I nisam htio reprogramirati arduino svaki put kad sam htio dodati novu karticu. Stoga sam htio koristiti samo RFID za kontrolu rada kruga, kao i za kontrolu brave na vratima.

Program uključuje plavu LED lampicu kako bi pokazao da je spreman za čitanje nove kartice. Kad se kartica pročita, ona odlučuje je li valjana ili ne usporedbom onoga što je pročitala s popisom valjanih kartica. Ako je korisnik valjan, arduino isključuje plavu LED i uključuje zelenu LED lampicu na 5 sekundi. Također uključuje drugi izlaz na 5 sekundi. Ovaj izlaz je spojen na tranzistor TIP31A i omogućuje malenom arduinu da kontrolira mnogo veću 12v 300mA bravu vrata bez oštećenja. Nakon 5 sekundi zaključavanje vrata se ponovno zaključava i LED dioda se ponovno uključuje u plavo kako bi pričekala čitanje druge kartice. Ako je kartica neispravna, LED dioda će se na nekoliko sekundi promijeniti u CRVENU i natrag u plavu kako bi č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 su svi valjani ID -ovi kartica pohranjeni u memoriji EEPROM -a. ATMega168 ima 512 bajtova EEPROM memorije. Svaka RFID kartica ima serijski broj od 5 heksadejmskih bajtova i kontrolni zbroj od 1 heksadejma bajtova koje možemo upotrijebiti za provjeru da nije bilo pogrešaka u prijenosu između ID-20 i arduina.

Valjane kartice pohranjuju se u EEPROM -u koristeći prvi bajt kao brojač. Na primjer, ako postoje 3 važeće kartice spremljene, prvi bajt u EEPROM -u bio bi 3. EEPROM.read (0); = 3. Znajući to 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 čitatelj pročitao.

Ali kako možemo dodati nove kartice u EEPROM nakon instaliranja kruga ?? Pročitao sam u jednoj od RFID kartica koje imam i tvrdo ih kodirao kao Master RFID karticu. Dakle, čak i ako je cijeli EEPROM izbrisan, glavna kartica će i dalje funkcionirati. Kad god se kartica pročita, 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 normalni način rada i čeka da se očita nova kartica.

Trenutačno nisam programirao način brisanja kartice jer bi razlozi za brisanje kartice najvjerojatnije bili izgubljeni ili ukradeni. Budući da bi se to najvjerojatnije koristilo s 1-10 osoba, najlakše bi bilo učiniti hard programom Master Erase kartice koja će izbrisati sve kartice s 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 značajku..

Kôd je priložen u tekstualnu datoteku zajedno s kopijom popisa dijelova.

Korak 5: Proširite

Ovo su samo neke od super stvari koje možete učiniti s RFID -om. To biste mogli još više proširiti LCD izlazom, bilježenjem tko 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 izgledu dijelova. Kad ih dovršim, objavit ću ih i ja. Potičem svakoga da uzme kôd koji sam napisao i izmijeni ga kako bi učinio još kul stvari!

Finalist na Arduino natjecanju

Preporučeni: