Sisukord:

Arduino RFID -ukselukk: 5 sammu (piltidega)
Arduino RFID -ukselukk: 5 sammu (piltidega)

Video: Arduino RFID -ukselukk: 5 sammu (piltidega)

Video: Arduino RFID -ukselukk: 5 sammu (piltidega)
Video: Электронный замок с RFID на Arduino 2024, Juuli
Anonim
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk
Arduino RFID -ukselukk

*** Värskendatud 9.8.2010 *** Tahtsin oma garaaži siseneda lihtsal ja turvalisel viisil. RFID oli parim viis oma ukse avamiseks, isegi kui mul on käed täis, võin ukse lahti teha ja selle lahti lükata! Ehitasin lihtsa vooluahela, millel oli põhiline ATMega 168 arduino kiip ja ID-20 RFID lugeja elektroonilise ukseluku juhtimiseks. Vooluahel koosneb kolmest eraldi osast, lugejast RFID -siltide lugemiseks, kontrollerist lugeja andmete vastuvõtmiseks ja RGB LED -i ja elektrilise ukseluku väljundi juhtimiseks. Ukselukk paigaldatakse esmalt uksesse ja katsetatakse 9v akuga, et tagada õige paigaldus. Enamikul juhtudel soovite, et ukselukul oleks normaalselt avatud vooluring või ebaõnnestunud. See tähendab, et uks jääb lukustatuks, kui sellest voolu ei läbi. Kui 12vDC lastakse läbi ukseluku elektromagneti, annab lukus olev plaat järele ja võimaldab ukse vabalt lahti lükata. Lugeja on paigutatud ukse välisküljele ja on seestpoolt kontrollerist eraldi, nii et keegi ei saaks turvavööst mööda hiilida, lugedes luugi lahti ja lugedes lühist. Kontroller võtab lugejalt vastu seeriaandmeid ja juhib RGB LED -i ja ukselukku. Sel juhul olen pannud mõlemad testimiseks eraldi leivalaudadele. Siin on video ülevaade toimivast süsteemist Loe edasi, et näha, kuidas seda endale luua! ** Värskendus ** Kõik koodid, skeemid ja trükkplaatide kujundused on testitud ja täiustatud. Kõik need on postitatud siia alates 9.8.2010. Värskendatud video lõplikust paigaldatud ja töötavast süsteemist.

Samm: vajalikud osad

Vajalikud osad
Vajalikud osad

Siin on osade ja linkide loend SparkFun.com -ile, kust ma need ostsin. See on põhiline osade komplekt, mida peate ehitama, ja arduino ning ahel RFID -siltide lugemiseks arduino -sse. Eeldan, et teil on juba leivaplaat, toiteallikas ja ühenduskaablid.

Arduino asjad

ATmega168 koos Arduino alglaaduriga 4,95 dollarit

Kristall 16MHz 1,50 dollarit

Keraamiline kondensaator 22pF 0,25 $ (x2)

Takisti 10 kΩ 1/6 W PTH 0,25 $

Mininuppude lüliti 0,35 dollarit

Kolmekordse väljundiga LED RGB - hajutatud 1,95 dollarit

RFID värk

Kumbki neist, 20 on parema ulatusega, 12 on väiksem RFID-lugeja ID-12 29,95 USD RFID-lugeja ID-20 34,95 $

RFID -lugeja purunemine 0,95 dollarit

Break Away päised - otse 2,50 dollarit

RFID -silt - 125 kHz 1,95 dollarit

Muu

TIP31A transistor (raadiosaatja/kohalik elektroonikapood 1,50 dollarit)

Ukselukk on pärit ebayst. Ukse rike Turvaline juurdepääsukontroll Electric Strike v5 EI 17,50 USD (kawamall, laht)

Samm: ehitage Arduino kontroller

Ehitage Arduino kontroller
Ehitage Arduino kontroller
Ehitage Arduino kontroller
Ehitage Arduino kontroller
Ehitage Arduino kontroller
Ehitage Arduino kontroller

Esimene samm RFID -ukseluku ehitamisel põhilise Arduinoga on põhilise töötava arduino lauale panemine. Enamiku Arduino eelvälkudega ATMega 168 kiipidega on eelinstallitud vaikimisi vilgutusprogramm. Ühendage LED digitaalse väljundiga 13 ja kontrollige, kas kõik töötab.

Selle RFID -lugeja riistvaraosa oleks liiga lihtne, kui kasutaksime tavalist arduinot koos sisseehitatud USB -programmeerijaga. Kuna ma kavatsen selle seina panna ja seda enam mitte puudutada, ei taha ma kasutada suurt 30 -dollarilist arduino plaati, kui saan osta 5 -dollarise ATMega 168 ja teha palju väiksema kohandatud trükkplaadi.

Kuna otsustasin ise Arduino põhiahela teha, vajan välist USB-> Serial FDIT programmeerijat. Olen lisanud 7805 pingeregulaatorist ehitatud toiteallikaga kontrolleri Eagle skeemid. Testimisel kasutasin leivaplaadi toiteallikat.

Arduino käivitamiseks on vaja ainult ATMega168, millel on vilgutatud arduino tarkvara, 2x 22pF kondensaatorid, 16mhz kristall, 10k oomine takisti, nupp ja leivaplaat. Selle ühendamine on hästi teada, kuid olen lisanud kogu skeemi skeemi.

Arduino käivitab 4 väljundit, 1 punase/rohelise/sinise LED -i jaoks ja 1 käivitab TIP31A 12vDC ukseluku saatmiseks. Arduino saab oma Rx-liinilt jadaandmeid ID-20 RFID-lugejalt.

3. samm: ehitage RFID -lugeja

Ehitage RFID -lugeja
Ehitage RFID -lugeja
Ehitage RFID -lugeja
Ehitage RFID -lugeja
Ehitage RFID -lugeja
Ehitage RFID -lugeja

Nüüd, kui teie arduino leib on pardal ja saate töötada, saate kokku panna ahela RFID-lugeja osa, mis sisaldab ahela oleku näitamiseks ID-10 või ID-20 ja RGB LED-d. Pidage meeles, et lugeja asub väljas ja on kontrollerist eraldi, nii et keegi ei saaks hõlpsasti sisse tungida.

Selle ehitamiseks saadame 5v/maapinna esmaselt leivalaualt teisele leivalauale, millele me lugeja ehitame. RGB LED -i juhtimiseks saatke ka üle 3 juhtme kolmest arduino väljundpoldist, üks iga värvi jaoks. Veel üks juhe, piltidel olev Brown, on ID-20 jadaühendus, et rääkida arduino Rx jada sisendiga. See on ühendamiseks väga lihtne ahel. Valgusdioodidel on takistid ja mõned punktid ID-20-l on maaga ühendatud/5v, et määrata õige olek.

Leivalaudade hõlbustamiseks müüb Sparkfun ID-10/ID-20 Breakout-tahvlit, mis võimaldab kinnitada pikemad tihvtide päised, mis on paigutatud leivalauale. See osa ja nööpnõelad ning loetletud osade loendis.

Skeem peaks olema kitsas ja hõlpsasti jälgitav.

Samm: programmeerige

Aeg programmeerida oma arduino. See võib tavalise arduino kasutamisel olla pisut keeruline, võib -olla peate enne üleslaadimise esimest osa ja selle ajal mitu korda lähtestamisnuppu vajutama. Väga oluline asi, mida meeles pidada, saate üleslaadimisvea, kui te ei katkesta ajutiselt ID-20 jadaühendust arduino Rx liiniga. ATMega168 -l on ainult 1 Rx -sisend ja see kasutab seda programmeerijaga rääkimiseks koodi üleslaadimiseks. Programmeerimise ajal ühendage ID-20 lahti ja ühendage see uuesti, kui olete lõpetanud. Kasutasin FTDI programmeerijat, mis võimaldab programmeerida arduino USB kaudu ainult 4 juhtmega. Kontrolleri skeemil on näidatud tihvti päise ühendus, mis võimaldab teil selle otse ühendada. Sparkfun müüb ka seda osa, kuid paljudel võib see juba olemas olla.

Saate hõlpsalt minu koodi oma arduinole üles laadida ja mitte kunagi tagasi vaadata, aga mis selles lõbus on? Lubage mul selgitada selle toimimise põhiideed.

Esiteks ei tahtnud ma mingeid väliseid nuppe/lüliteid/jne ja ma ei tahtnud arduinot iga kord uue kaardi lisamiseks ümber programmeerida. Seetõttu tahtsin vooluahela toimimise ja ukseluku juhtimiseks kasutada ainult RFID -d.

Programm lülitab sisse sinise LED -i, näidates, et on valmis uue kaardi lugemiseks. Kaardi lugemisel otsustab ta, kas see on kehtiv kaart või mitte, võrreldes seda, mida see luges, kehtivate kaartide loendiga. Kui kasutaja on õige, lülitab arduino sinise LED -i välja ja lülitab rohelise LED -i 5 sekundiks sisse. Samuti lülitab see teise väljundi 5 sekundiks kõrgele. See väljund on ühendatud TIP31A transistoriga ja võimaldab pisikesel arduino'l juhtida palju suuremat 12v 300mA ukselukku kahjustamata. 5 sekundi pärast lukustub ukselukk uuesti ja LED muutub siniseks, et oodata uue kaardi lugemist. Kui kaart on kehtetu, muutub LED mõneks sekundiks punaseks ja uuesti siniseks, et oodata uut kaarti.

On oluline, et ukselukk töötaks ka siis, kui arduino kaob üleöö toite või lähtestatakse. Seetõttu salvestatakse kõik kehtivad kaardi ID -d EEPROM -i mällu. ATMega168 -l on 512 baiti EEPROM -mälu. Igal RFID-kaardil on 5 hex-byte seerianumber ja 1 hex-byte check summa, mille abil saame kontrollida, kas ID-20 ja arduino vahelises edastuses ei esinenud vigu.

Kehtivad kaardid salvestatakse EEPROM -is, kasutades esimest baiti loendurina. Näiteks kui 3 kehtivat kaarti on EEPROMis salvestatud, on esimene bait 3. EEPROM.read (0); = 3. Teades seda ja asjaolu, et iga ID on 5 baiti pikk, teame, et 1-5 on kaart 1, 6-10 on kaart 2 ja 11-15 on kaart 3. Võime teha silmuse, mis vaatab läbi EEPROMi 5 baiti korraga ja proovib leida kaardi, mille lugeja sisse luges.

Aga kuidas me saame pärast vooluahela paigaldamist EEPROMile uusi kaarte lisada ?? Olen lugenud ühte RFID -kaarti, mis mul on, ja kodeerisin selle kõvasti RFID -põhikaardiks. Nii et isegi kui kogu EEPROM pühitakse, töötab põhikaart endiselt. Kui kaarti loetakse, kontrollib ta kõigepealt, kas see on põhikaart, kui mitte, siis jätkab, kas kaart on kehtiv või mitte. Kui kaart on põhikaart, läheme arduino "programmeerimisrežiimi", kus see vilgub RGB ja ootab teise kehtiva sildi lugemist. Järgmine loetav silt lisatakse EEPROM -i järgmisele vabale kohale ja loendurit suurendatakse 1 võrra, kui kaarti EEPROM -i mälus juba pole. Seejärel naaseb lugeja tavarežiimi ja ootab uue kaardi lugemist.

Praegu pole ma kaardi kustutamise viisi programmeerinud, kuna kaardi kustutamise põhjused oleksid tõenäoliselt kadunud või varastatud. Kuna seda kasutaks suure tõenäosusega 1-10 inimest, oleks kõige lihtsam teha Master Erase kaart, mis kustutab kõik kaardid EEPROM-ist ja seejärel lisab need uuesti, mis nõuab vaid paar sekundit. Lisasin EEPROM -i kustutamiseks koodi, kuid pole seda funktsiooni veel kasutusele võtnud..

Kood on lisatud tekstifaili koos osade loendi koopiaga.

5. samm: laiendage

See on vaid mõned lahedad asjad, mida saate RFID -ga teha. Saate seda palju laiendada LCD -väljundi, logimisega, kes ja millal siseneb, võrgu/twitteri ühendusega jne. Plaanin teha selle vooluahela valmis PCB -versiooni. Ma pole kunagi varem trükkplaati valmistanud, seega töötan endiselt osade kujunduse ja paigutuse kallal. Kui need valmis saan, postitan ka need. Julgustan kõiki võtma minu kirjutatud koodi ja muutma seda veelgi lahedamate asjade tegemiseks!

Arduino võistluse finalist

Soovitan: