Obsah:

Dveřní zámek Arduino RFID: 5 kroků (s obrázky)
Dveřní zámek Arduino RFID: 5 kroků (s obrázky)

Video: Dveřní zámek Arduino RFID: 5 kroků (s obrázky)

Video: Dveřní zámek Arduino RFID: 5 kroků (s obrázky)
Video: RFID door lock #shorts 2024, Červenec
Anonim
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID
Dveřní zámek Arduino RFID

*** Aktualizováno 9.8.2010 *** Chtěl jsem vytvořit snadný a bezpečný způsob vjezdu do své garáže. RFID byl nejlepší způsob, jak odemknout moje dveře, i když mám plné ruce, mohu dveře odemknout a otevřít je! Pro ovládání elektronického zámku dveří jsem postavil jednoduchý obvod se základním arduino čipem ATMega 168 a čtečkou ID-20 RFID. Obvod se skládá ze 3 samostatných částí, čtečky pro čtení tagů RFID, ovladače pro přijímání dat ze čtečky a ovládání výstupu RGB LED a elektrického zámku dveří. Dveřní zámek je nejprve nainstalován do dveří a testován s 9V baterií, aby byla zajištěna správná instalace. Ve většině případů chcete normálně otevřený obvod na zámku dveří nebo Fail Secure. To znamená, že dveře zůstanou zamčené, když jimi neprochází žádný proud. Když prochází 12 V DC elektromagnetem v zámku dveří, uvolní se deska v zámku a umožní dveře volně otevřít. Čtečka je umístěna na vnější straně dveří a uvnitř je oddělena od ovladače, aby nikdo nemohl obejít zabezpečení rozbitím čtečky a pokusem o zkratování čtečky. Řadič přijímá sériová data ze čtečky a ovládá LED diodu RGB a zámek dveří. V tomto případě jsem pro testování obojí umístil na samostatné desky. Zde je video přehled systému v akci Čtěte dále a zjistěte, jak si jej vytvořit sami! ** Aktualizace ** Všechny návrhy kódu, schémat a desek plošných spojů byly testovány a vylepšeny. Všichni jsou zde zveřejněni k 8.8.2010 Aktualizované video finálního nainstalovaného a fungujícího systému.

Krok 1: Potřebné součásti

Potřebné díly
Potřebné díly

Zde je seznam dílů a odkazy na SparkFun.com, kde jsem je koupil. Toto je základní sada dílů, které potřebujete k sestavení a arduina, a obvod pro čtení tagů RFID do arduina. Předpokládám, že již máte prkénko, napájecí zdroj a připojovací vodiče.

Věci Arduino

ATmega168 s bootloaderem Arduino 4,95 $

Crystal 16 MHz 1,50 $

Keramický kondenzátor 22pF $ 0,25 (x2)

Rezistor 10k Ohm 1/6 Watt PTH $ 0,25

Mini tlačítkový spínač 0,35 $

LED s trojitým výstupem RGB - rozptýlené 1,95 $

RFID věci

Buď jeden z nich, 20 má lepší dosah, 12 je menšíRFID Reader ID-12 $ 29,95RFID Reader ID-20 $ 34,95

Odlomení čtečky RFID 0,95 $

Break Away Headers - Straight 2,50 $

RFID tag - 125kHz 1,95 $

jiný

TIP31A tranzistor (radioshack/místní obchod s elektronikou 1,50 $)

Dveřní zámek je z ebay. Fail Fail Secure access control Electric Strike v5 NO $ 17,50 (kawamall, bay)

Krok 2: Sestavte ovladač Arduino

Sestavte ovladač Arduino
Sestavte ovladač Arduino
Sestavte ovladač Arduino
Sestavte ovladač Arduino
Sestavte ovladač Arduino
Sestavte ovladač Arduino

Prvním krokem k vybudování dveřního zámku RFID se základním Arduinem je vytvořit základní pracovní arduino. Většina čipů ATMega 168 s předbleskem Arduino je dodávána s předinstalovaným výchozím programem mrkání. Připojte LED k digitálnímu výstupu 13 a ověřte, zda vše funguje.

Hardwarová část této čtečky RFID by byla příliš jednoduchá, kdybychom použili běžné arduino s vestavěným USB programátorem. Vzhledem k tomu, že to plánuji umístit do zdi a už se toho nedotýkat, nechci používat velkou objemnou desku arduino za 30 $, když si mohu koupit ATMega 168 za 5 $ a vyrobit mnohem menší vlastní PCB.

Protože jsem se rozhodl vytvořit základní obvod Arduino sám, potřebuji externí programátor USB-> Serial FDIT. Zahrnul jsem schémata Eagle ovladače s napájecím zdrojem postaveným z regulátoru napětí 7805. Při testování jsem použil napájecí zdroj pro chlebové desky.

Abyste arduino spustili, potřebujete opravdu ATMega168 se softwarem arduino, 2x 22pF kondenzátory, 16mhz krystal, 10k ohmový odpor, tlačítko a prkénko. Zapojení je dobře známé, ale zahrnul jsem celé schéma obvodu.

Arduino spustí 4 výstupy, 1 pro červenou/zelenou/modrou LED a 1 pro spuštění TIP31A pro odeslání 12vDC do zámku dveří. Arduino přijímá sériová data na své Rx lince od čtečky RFID ID-20.

Krok 3: Sestavte čtečku RFID

Sestavte čtečku RFID
Sestavte čtečku RFID
Sestavte čtečku RFID
Sestavte čtečku RFID
Sestavte čtečku RFID
Sestavte čtečku RFID

Nyní, když máte chleba arduino naložený a funkční, můžete sestavit část čtečky RFID obvodu, která bude obsahovat LED ID-10 nebo ID-20 a RGB pro indikaci stavu obvodu. Pamatujte, že čtečka bude venku a uvnitř bude oddělena od ovladače, aby se někdo nemohl snadno vloupat.

Abychom to vytvořili, pošleme 5v/Ground přes primární desku chleba na sekundární desku chleba, na které stavíme čtečku. Také pošlete přes 3 vodiče ze 3 výstupních pinů arduino pro ovládání RGB LED, jeden pro každou barvu. Jeden další vodič, hnědý na obrázcích, bude sériovým připojením ID-20 pro komunikaci se sériovým vstupem arduina Rx. Toto je velmi jednoduché zapojení. LED diody získají odpory a několik bodů na ID-20 jsou spojeny se zemí/5v, aby nastavily správný stav.

Aby se usnadnilo prkénko, ID-10/ID-20 Sparkfun prodává desku Breakout, která vám umožňuje připojit delší kolíkové hlavičky, které jsou rozmístěny tak, aby se vešly na chlebovou desku. Tato část a záhlaví pinů jsou uvedeny v seznamu dílů.

Schéma by mělo být úzké a snadno sledovatelné.

Krok 4: Program

Čas na programování vašeho arduina. To může být trochu složité pomocí základního arduina, možná budete muset několikrát stisknout tlačítko reset před a během první části nahrávání. Velmi důležitá věc, kterou si zapamatujete, DOSTANETE chybu odesílání, pokud dočasně neodpojíte sériovou linku ID-20 na linku Rx Arduina. ATMega168 má pouze 1 vstup Rx a používá jej k odeslání kódu pro komunikaci s programátorem. Během programování odpojte ID-20 a po dokončení jej znovu zapojte. Použil jsem programátor FTDI, který vám umožňuje programovat arduino přes USB pouze se 4 vodiči. Schéma řadiče ukazuje připojení záhlaví pinů, které vám umožní přímo jej zapojit. Sparkfun také prodává tuto část, ale mnozí ji už možná mají.

Můžete snadno nahrát můj kód do svého arduina a nikdy se neohlížet, ale co je na tom zábavné? Dovolte mi vysvětlit základní myšlenku toho, jak to funguje.

Předně jsem nechtěl žádná externí tlačítka/přepínače/atd. A nechtěl jsem přeprogramovat arduino pokaždé, když jsem chtěl přidat novou kartu. Proto jsem chtěl použít pouze RFID k ovládání provozu obvodu a také ovládání zámku dveří.

Program rozsvítí modrou LED, což znamená, že je připraven přečíst novou kartu. Když je karta načtena, rozhodne, zda je to platná karta, nebo ne, porovnáním načtené karty se seznamem platných karet. Pokud je uživatel platný, arduino VYPNE modrou LED a na 5 sekund rozsvítí zelenou LED. Také zapne další vysoký výstup na 5 sekund. Tento výstup je připojen k tranzistoru TIP31A a umožňuje malému arduinu ovládat mnohem větší dveřní zámek 300 V bez poškození. Po 5 sekundách se zámek dveří znovu zamkne a kontrolka LED se změní zpět na modrou, aby čekala na načtení další karty. Pokud je karta neplatná, LED dioda se na několik sekund změní na ČERVENOU a poté na modrou, aby čekala na další kartu.

Je důležité, aby zámek dveří stále fungoval, i když arduino přes noc ztratí napájení nebo je resetováno. Proto jsou všechna platná ID karet uložena v paměti EEPROM. ATMega168 má 512 bytů paměti EEPROM. Každá karta RFID má sériové číslo 5 Hex Byte a kontrolní součet 1 Hex Byte, pomocí kterého můžeme ověřit, že v přenosu mezi ID-20 a arduino nebyly žádné chyby.

Platné karty jsou uloženy v EEPROM pomocí prvního bajtu jako čítače. Pokud jsou například uloženy 3 platné karty, bude první bajt v paměti EEPROM 3. EEPROM.read (0); = 3. Když to víme a skutečnost, že každé ID je dlouhé 5 bajtů, víme, že 1-5 je karta jedna, 6-10 je karta 2 a 11-15 je karta 3. Můžeme vytvořit smyčku, která se dívá přes EEPROM 5 bajtů najednou a pokusí se najít kartu, kterou čtečka přečetla.

Ale jak můžeme přidat nové karty do EEPROM po instalaci obvodu? Četl jsem na jedné z karet RFID, které mám, a zakódoval jsem ji jako hlavní kartu RFID. Takže i když je vymazána celá EEPROM, hlavní karta bude stále fungovat. Kdykoli je karta načtena, nejprve zkontroluje, zda je to hlavní karta, pokud ne, pak pokračuje v zjišťování, zda je to platná karta nebo ne. Pokud je karta hlavní kartou, necháme arduino přejít do „programovacího režimu“, kde bliká RGB a čeká na načtení dalšího platného tagu. Další načtená značka se přidá na další volné místo v EEPROM a čítač se zvýší o 1, pokud karta v paměti EEPROM již neexistuje. Čtečka se poté vrátí do normálního režimu a čeká na načtení nové karty.

V současné době jsem neprogramoval způsob, jak kartu odstranit, protože důvody pro smazání karty by byly pravděpodobně její ztráta nebo odcizení. Protože by to bylo s největší pravděpodobností použito pro 1–10 lidí, nejjednodušší by bylo naprogramovat kartu Master Erase, která vymaže všechny karty z EEPROM, a poté je všechny znovu přidá, což trvá jen několik sekund. Přidal jsem kód k vymazání EEPROM, ale tuto funkci jsem zatím neimplementoval..

Kód je připojen v textovém souboru spolu s kopií seznamu dílů.

Krok 5: Rozbalte

To je jen část skvělých věcí, které můžete s RFID dělat. Dalo by se to ještě dále rozšířit pomocí výstupu LCD, protokolování toho, kdo a kdy vstupuje, připojení k síti/twitteru atd. Mám v plánu vyrobit hotovou PCB verzi tohoto obvodu. Nikdy předtím jsem PCB nevyráběl, takže stále pracuji na designu a rozložení dílů. Až je budu mít kompletní, zveřejním je také. Doporučuji komukoli, aby vzal kód, který jsem napsal, a upravil jej, aby dělal ještě více skvělých věcí!

Finalista soutěže Arduino

Doporučuje: