Turinys:

„Arduino“RFID durų užraktas: 5 žingsniai (su nuotraukomis)
„Arduino“RFID durų užraktas: 5 žingsniai (su nuotraukomis)

Video: „Arduino“RFID durų užraktas: 5 žingsniai (su nuotraukomis)

Video: „Arduino“RFID durų užraktas: 5 žingsniai (su nuotraukomis)
Video: „IT+“: lietuvis su implantuota po oda mikroschema 2024, Lapkritis
Anonim
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas
„Arduino“RFID durų užraktas

*** Atnaujinta 2010-08-09 *** Norėjau lengvai ir saugiai patekti į savo garažą. RFID buvo geriausias būdas atrakinti duris, net ir pilnomis rankomis galiu atrakinti duris ir jas pastumti! Sukūriau paprastą grandinę su pagrindiniu „ATMega 168“arduino lustu ir ID-20 RFID skaitytuvu, kad galėčiau valdyti elektroninį durų užraktą. Grandinę sudaro 3 atskiros dalys, skaitytuvas, skirtas skaityti RFID žymes, valdiklis, priimantis duomenis iš skaitytuvo ir valdantis RGB šviesos diodo išvestį ir elektrinį durų užraktą. Durų spyna pirmiausia sumontuojama duryse ir išbandoma naudojant 9 V bateriją, kad būtų užtikrintas teisingas montavimas. Daugeliu atvejų norite, kad durų spynoje būtų normaliai atvira grandinė arba „Fail Secure“. Tai reiškia, kad durys lieka užrakintos, kai pro jas neina srovė. Kai 12vDC praeina per durų spynoje esantį elektromagnetą, užrakto plokštė užleidžia vietą ir leidžia laisvai atidaryti duris. Skaitytuvas yra ant durų išorės ir yra atskiras nuo valdiklio viduje, kad niekas negalėtų apeiti saugumo, atidarydamas skaitytuvą ir bandydamas trumpai sujungti skaitytuvą. Valdiklis gauna serijos duomenis iš skaitytuvo ir valdo RGB šviesos diodą ir durų užraktą. Šiuo atveju aš abu padėjau ant atskirų duonos lentų bandymams. Čia yra veikiančios sistemos vaizdo įrašo apžvalga Skaitykite toliau, kad sužinotumėte, kaip sukurti tokią sau! ** Atnaujinimas ** Visi kodai, schemos ir PCB dizainas buvo išbandyti ir patobulinti. Visi jie čia paskelbti 2010-08-09 Atnaujintas galutinės įdiegtos ir veikiančios sistemos vaizdo įrašas.

1 žingsnis: reikalingos dalys

Reikalingos dalys
Reikalingos dalys

Čia yra dalių ir nuorodų į „SparkFun.com“, kur jas nusipirkau, sąrašas. Tai yra pagrindinis dalių rinkinys, kurį jums reikia sukurti, ir arduino bei grandinė, skirta nuskaityti RFID žymes į arduino. Darau prielaidą, kad jau turite duonos lentą, maitinimo šaltinį ir prijungimo laidus.

„Arduino“daiktai

ATmega168 su „Arduino Bootloader“4,95 USD

„Crystal 16MHz“1,50 USD

Keraminis kondensatorius 22pF 0,25 USD (x2)

Rezistorius 10k Ohm 1/6 W PTH $ 0.25

Mini mygtukinis jungiklis 0,35 USD

Trigubos išvesties LED RGB - išsklaidyta 1,95 USD

RFID medžiaga

Bet kuris iš šių 20 yra geresnio diapazono, 12 yra mažesnis RFID skaitytuvo ID-12 29,95 USD RFID skaitytuvo ID-20 34,95 USD

RFID skaitytuvo pertrauka 0,95 USD

Pertraukos antraštės - tiesiai 2,50 USD

RFID žyma - 125 kHz 1,95 USD

Kiti

TIP31A tranzistorius (radijo stovas/vietinė elektronikos parduotuvė 1,50 USD)

Durų užraktas yra iš ebay. Durų klaida Saugus įėjimo valdymas „Electric Strike v5“17,50 USD (kawamall, bay)

2 žingsnis: Sukurkite „Arduino“valdiklį

Sukurkite „Arduino“valdiklį
Sukurkite „Arduino“valdiklį
Sukurkite „Arduino“valdiklį
Sukurkite „Arduino“valdiklį
Sukurkite „Arduino“valdiklį
Sukurkite „Arduino“valdiklį

Pirmasis žingsnis kuriant RFID durų spyną su pagrindiniu „Arduino“yra iškloti lentą iš pagrindinio veikiančio arduino. Daugelyje „Arduino“iš anksto sumontuotų „ATMega 168“lustų yra numatytoji mirksėjimo programa. Prijunkite šviesos diodą prie skaitmeninio išėjimo 13 ir patikrinkite, ar viskas veikia.

Šio RFID skaitytuvo aparatinė dalis būtų pernelyg paprasta, jei naudotume įprastą arduino su įmontuotu USB programuotoju. Kadangi planuoju tai dėti į sieną ir daugiau neliesti, nenoriu naudoti didelės apimties 30 USD vertės arduino plokštės, kai galiu nusipirkti 5 USD kainuojantį „ATMega 168“ir pagaminti daug mažesnę individualią PCB plokštę.

Kadangi aš pats pasirinkau sukurti pagrindinę „Arduino“grandinę, man reikia išorinio USB-> Serial FDIT programuotojo. Aš įtraukiau „Eagle“valdiklio schemas su maitinimo šaltiniu, pagamintu iš 7805 įtampos reguliatoriaus. Bandydamas naudojau duonos lentos maitinimo šaltinį.

Norint paleisti „arduino“ir paleisti viską, ko jums iš tikrųjų reikia, tai „ATMega168“su jame įdiegta „arduino“programine įranga, 2x 22pF kondensatoriais, 16 MHz kristalu, 10 k omų rezistoriumi, mygtuku ir duonos lenta. Prijungimas prie to yra gerai žinomas, tačiau aš įtraukiau visą grandinės schemą.

„Arduino“suaktyvins 4 išėjimus, po vieną raudonos/žalios/mėlynos spalvos šviesos diodams, o vienas - suaktyvins TIP31A ir siųs 12vDC į durų užraktą. „Arduino“savo Rx linijoje gauna serijinius duomenis iš ID-20 RFID skaitytuvo.

3 žingsnis: Sukurkite RFID skaitytuvą

Sukurkite RFID skaitytuvą
Sukurkite RFID skaitytuvą
Sukurkite RFID skaitytuvą
Sukurkite RFID skaitytuvą
Sukurkite RFID skaitytuvą
Sukurkite RFID skaitytuvą

Dabar, kai jūsų „arduino“duona yra įlipusi ir dirbate, galite sudėti grandinės RFID skaitytuvo dalį, kurioje bus ID-10 arba ID-20 ir RGB šviesos diodas, rodantis grandinės būseną. Atminkite, kad skaitytuvas bus lauke ir atskirtas nuo valdiklio viduje, kad kas nors negalėtų lengvai įsilaužti.

Norėdami tai padaryti, iš pagrindinės duonos lentos į antrinę duonos lentą, ant kurios mes kuriame „Reader“, siunčiame 5v/žemės. Taip pat nusiųskite daugiau nei 3 laidus iš 3 arduino išvesties kaiščių, kad galėtumėte valdyti RGB šviesos diodą, po vieną kiekvienai spalvai. Dar vienas laidas, Brownas nuotraukose, bus nuoseklus ID-20 ryšys, skirtas kalbėtis su „arduino“Rx serijiniu įėjimu. Tai labai paprasta prijungimo grandinė. Šviesos diodai gauna rezistorius, o keli taškai ID-20 yra susieti su žeme/5v, kad būtų nustatyta teisinga būsena.

Kad būtų lengviau dengti lentas, ID-10/ID-20 „Sparkfun“parduoda „Breakout“lentą, leidžiančią pritvirtinti ilgesnes kaiščių antraštes, kurios yra išdėstytos taip, kad tilptų duonos lenta. Ši dalis ir smeigtukai yra išvardyti dalių sąraše.

Schema turėtų būti griežta ir lengvai sekama.

4 žingsnis: programuokite

Laikas programuoti savo arduino. Tai gali būti šiek tiek sudėtinga naudojant pagrindinį arduino, gali tekti kelis kartus paspausti nustatymo iš naujo mygtuką prieš pirmąją įkėlimo dalį ir jos metu. Labai svarbu prisiminti, kad gausite įkėlimo klaidą, jei laikinai neatjungsite ID-20 serijos linijos prie arduino Rx linijos. „ATMega168“turi tik 1 Rx įvestį ir naudoja ją kodui įkelti, kad galėtų pasikalbėti su programuotoju. Programavimo metu atjunkite ID-20, tada, kai baigsite, vėl prijunkite. Aš naudoju FTDI programuotoją, kuris leidžia programuoti arduino per USB tik su 4 laidais. Kontrolieriaus schema rodo kaiščio antraštės jungtį, leidžiančią tiesiogiai prijungti. „Sparkfun“taip pat parduoda šią dalį, tačiau daugelis jau gali ją turėti.

Galite lengvai įkelti mano kodą į savo arduino ir niekada neatsigręžti atgal, bet kas tame smagu? Leiskite paaiškinti pagrindinę idėją, kaip tai veikia.

Visų pirma, aš nenorėjau jokių išorinių mygtukų/jungiklių/etc ir nenorėjau perprogramuoti arduino kiekvieną kartą, kai norėjau pridėti naują kortelę. Todėl norėjau naudoti tik RFID grandinės veikimui valdyti ir durų spynai valdyti.

Programa įjungia mėlyną šviesos diodą, kad parodytų, jog yra pasirengusi skaityti naują kortelę. Skaitydama kortelę, ji nusprendžia, ar tai galiojanti kortelė, ar ne, palygindama tai, ką ji perskaitė, su galiojančių kortelių sąrašu. Jei vartotojas teisingas, arduino išjungia mėlyną šviesos diodą ir 5 sekundes įjungia žalią šviesos diodą. Jis taip pat įjungia kitą išvestį 5 sekundes. Šis išėjimas yra prijungtas prie TIP31A tranzistoriaus ir leidžia mažyliui arduino valdyti nepažeidžiant daug didesnę 12v 300mA durų spyną. Po 5 sekundžių durų spyna vėl užsifiksuoja, o šviesos diodas vėl tampa mėlynas ir laukia kitos kortelės. Jei kortelė negalioja, šviesos diodas kelioms sekundėms pasikeičia į RAUDONĄ ir vėl į mėlyną laukti kitos kortelės.

Svarbu, kad durų užraktas vis tiek veiktų, net jei arduino per naktį praranda maitinimą arba yra iš naujo nustatytas. Todėl visi galiojantys kortelės ID yra saugomi EEPROM atmintyje. „ATMega168“turi 512 baitų EEPROM atminties. Kiekviena RFID kortelė turi 5 Hex baitų serijos numerį ir 1 Hex baitų patikrinimo sumą, kurią galime naudoti, norėdami patikrinti, ar perdavimo tarp ID-20 ir arduino klaidų nebuvo.

Tinkamos kortelės saugomos EEPROM, naudojant pirmąjį baitą kaip skaitiklį. Pavyzdžiui, jei yra 3 galiojančios kortelės, pirmasis baitas EEPROM būtų 3. EEPROM.read (0); = 3. Žinodami tai ir tai, kad kiekvienas ID yra 5 baitai, mes žinome, kad 1–5 yra pirmoji kortelė, 6–10 yra 2 kortelė, o 11–15-3 kortelė. Mes galime sukurti kilpą, kuri atrodo per EEPROM 5 baitų vienu metu ir bando rasti kortelę, kurią perskaitė skaitytojas.

Bet kaip mes galime pridėti naujų kortelių prie EEPROM, kai grandinė yra įdiegta? Aš perskaičiau vieną iš turimų RFID kortelių ir sunkiai užkoduodavau, kad tai yra pagrindinė RFID kortelė. Taigi, net jei visas EEPROM bus išvalytas, pagrindinė kortelė vis tiek veiks. Kai tik skaitoma kortelė, ji pirmiausia patikrina, ar tai pagrindinė kortelė, jei ne, tada toliau tikrina, ar tai galiojanti kortelė, ar ne. Jei kortelė yra pagrindinė kortelė, mes turime arduino pereiti į „programavimo režimą“, kur mirksi RGB ir laukia kitos galiojančios žymos. Kita perskaityta žyma pridedama prie kitos laisvos EEPROM vietos ir skaitiklis padidinamas 1, jei kortelės dar nėra EEPROM atmintyje. Tada skaitytuvas grįžta į įprastą režimą ir laukia, kol bus perskaityta nauja kortelė.

Šiuo metu nesu užprogramavęs kortelės ištrynimo būdo, nes kortelės ištrynimo priežastys greičiausiai būtų jos pametimas ar pavogimas. Kadangi tai greičiausiai būtų naudojama 1–10 žmonių, lengviausia būtų užprogramuoti „Master Erase“kortelę, kuri ištrins visas korteles iš EEPROM, tada vėl jas pridės, o tai užtruks tik kelias sekundes. Pridėjau kodą EEPROM valymui, bet šios funkcijos dar neįdiegiau..

Kodas pridedamas teksto faile kartu su dalių sąrašo kopija.

5 žingsnis: išplėskite

Tai tik keletas įdomių dalykų, kuriuos galite padaryti naudodami RFID. Tai galite dar labiau išplėsti naudodami LCD išvestį, registravimą, kas įeina ir kada, tinklo/„Twitter“ryšį ir tt. Aš planuoju sukurti užbaigtą šios grandinės PCB versiją. Aš niekada anksčiau nebuvau gaminęs PCB, todėl vis dar dirbu prie dalių dizaino ir išdėstymo. Kai baigsiu juos, paskelbsiu ir juos. Aš raginu visus paimti mano parašytą kodą ir jį pakeisti, kad būtų dar daugiau įdomių dalykų!

„Arduino“konkurso finalininkas

Rekomenduojamas: