Cuprins:

Blocare ușă RFID Arduino: 5 pași (cu imagini)
Blocare ușă RFID Arduino: 5 pași (cu imagini)

Video: Blocare ușă RFID Arduino: 5 pași (cu imagini)

Video: Blocare ușă RFID Arduino: 5 pași (cu imagini)
Video: Dorian este speriat de un interlop când face poze 😱🥊🤣 #timisoara #dorianpopa #cluj #bucuresti 2024, Iulie
Anonim
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino
Încuietoare ușă RFID Arduino

*** Actualizat 9.09.2010 *** Am vrut să fac un mod ușor și sigur de a intra în garajul meu. RFID a fost cel mai bun mod de a debloca ușa, chiar și cu mâinile pline, pot debloca ușa și o pot deschide! Am construit un circuit simplu cu un cip arduino ATMega 168 de bază și un cititor ID-20 RFID pentru a controla o blocare electronică a ușii. Circuitul este format din 3 părți separate, un cititor pentru citirea etichetelor RFID, un controler pentru a accepta date de la cititor și pentru a controla ieșirea LED-ului RGB și a încuietorii electrice a ușii. Încuietoarea ușii este instalată mai întâi într-o ușă și testată cu o baterie de 9v pentru a asigura o instalare corectă. În majoritatea cazurilor, doriți un circuit normal deschis pe încuietoarea ușii sau Fail Secure. Aceasta înseamnă că ușa rămâne blocată atunci când nu trece curent prin ea. Când 12vDC este trecut prin electromagnetul din încuietoarea ușii, o placă din încuietoare cedează și permite ușii să fie împinsă liber. Cititorul este plasat în exteriorul ușii și este separat de controlerul din interior, astfel încât nimeni să nu poată ocoli securitatea prin deschiderea cititorului și încercarea de scurtcircuitare a cititorului. Controlerul primește date seriale de la Reader și controlează ledul RGB și blocarea ușii. În acest caz, am pus ambele pe plăci separate pentru testare. Iată o prezentare video a sistemului în acțiune Citiți mai departe pentru a vedea cum să construiți unul pentru sine! ** Actualizare ** Toate codurile, schemele și proiectele PCB au fost testate și rafinate. Toate sunt postate aici începând cu 8/9/2010 Videoclip actualizat al sistemului final instalat și funcțional.

Pasul 1: Piese necesare

Piese necesare
Piese necesare

Iată o listă de piese și linkuri către SparkFun.com de unde le-am cumpărat. Acesta este setul de bază de piese de care aveți nevoie pentru a construi și arduino și un circuit pentru a citi etichete RFID în arduino. Presupun că aveți deja o placă de alimentare, o sursă de alimentare și fire de conectare.

Lucruri Arduino

ATmega168 cu Arduino Bootloader 4,95 USD

Crystal 16MHz 1,50 USD

Condensator ceramic 22pF 0,25 USD (x2)

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

Mini buton comutator 0,35 USD

LED de ieșire triplă RGB - difuzat 1,95 USD

Chestii RFID

Oricare dintre acestea, 20 are o autonomie mai bună, 12 este mai mică ID-ul Reader RFID-12 29,95 USD ID-ul Reader RFID-20 34,95 USD

RFID Reader Breakout 0,95 USD

Anteturi Break Away - Drept 2,50 USD

Etichetă RFID - 125kHz 1,95 USD

Alte

TIP31A tranzistor (radio cabana / magazin local de electronice 1,50 USD)

Încuietoarea ușii este de pe eBay. Door Fail Control acces securizat Electric Strike v5 NO 17,50 $ (kawamall, bay)

Pasul 2: Construiți controlerul Arduino

Construiți controlerul Arduino
Construiți controlerul Arduino
Construiți controlerul Arduino
Construiți controlerul Arduino
Construiți controlerul Arduino
Construiți controlerul Arduino

Primul pas pentru construirea unei încuietori de ușă RFID cu un Arduino de bază este să scoateți un arduino de lucru de bază. Majoritatea cipurilor ATMega 168 pre-flashed Arduino vin cu programul de clipire implicit preinstalat. Conectați un LED la ieșirea digitală 13 și verificați dacă totul funcționează.

Partea hardware a acestui cititor RFID ar fi prea simplă dacă am folosi un arduino obișnuit cu programator USB încorporat. Deoarece intenționez să pun acest lucru în perete și să nu-l ating din nou, nu vreau să folosesc o placă voluminoasă de 30 $ arduino când pot cumpăra un ATMega 168 de 5 USD și să fac un PCB personalizat mult mai mic.

Deoarece am ales să realizez un circuit Arduino de bază, am nevoie de un programator extern USB-> Serial FDIT. Am inclus schemele Eagle ale controlerului cu o sursă de alimentare construită dintr-un regulator de tensiune 7805. La testare am folosit o sursă de alimentare cu placă de panificație.

Pentru a pune în funcțiune un arduino, tot ce aveți nevoie este ATMega168 cu software-ul arduino fulgerat pe acesta, condensatori 2x 22pF, cristal de 16 MHz, rezistor de 10 k ohm, buton și o panou de testare. Conectarea la acest lucru este bine cunoscută, dar am inclus întreaga schemă pentru circuit.

Arduino va declanșa 4 ieșiri, fiecare pentru LED-uri roșu / verde / albastru și 1 pentru a declanșa TIP31A pentru a trimite 12vDC la încuietoarea ușii. Arduino primește date seriale pe linia sa Rx de la cititorul ID-20 RFID.

Pasul 3: Construiți RFID Reader

Construiți cititorul RFID
Construiți cititorul RFID
Construiți cititorul RFID
Construiți cititorul RFID
Construiți cititorul RFID
Construiți cititorul RFID

Acum, că aveți pâinea arduino îmbarcată și funcționează, puteți pune împreună porțiunea cititorului RFID a circuitului care va conține LED-urile ID-10 sau ID-20 și RGB pentru a indica starea circuitului. Amintiți-vă că cititorul va fi în exterior și separat de controlerul din interior, astfel încât cineva să nu poată intra cu ușurință.

Pentru a construi acest lucru, vom trimite 5v / masă de pe placa de pâine primară pe o placă de pâine secundară pe care construim Reader-ul. De asemenea, trimiteți peste 3 fire de la 3 dintre pinii de ieșire arduino pentru a controla LED-ul RGB, unul pentru fiecare culoare. Încă un fir, Brown în imagini, va fi o conexiune serială pentru ID-20 pentru a vorbi cu intrarea serială Rx a arduino-ului. Acesta este un circuit foarte simplu de conectat. LED-urile obțin rezistențe și câteva puncte de pe ID-20 sunt legate de sol / 5v pentru a seta starea corectă.

Pentru a face mai ușoară realizarea plăcii, ID-10 / ID-20 Sparkfun vinde o placă Breakout care vă permite să atașați anteturi cu pin mai lungi, care sunt spațiate pentru a se potrivi cu o placă de pâine. Această parte și capetele de pin și listate în lista de piese.

Schema ar trebui să fie strânsă înainte și ușor de urmărit.

Pasul 4: Programează

Este timpul să vă programați arduino. Acest lucru poate fi un pic dificil folosind un arduino de bază, poate fi necesar să apăsați butonul de resetare de mai multe ori înainte și în timpul primei părți a încărcării. Un lucru foarte important de reținut, veți primi o eroare de încărcare dacă nu deconectați temporar linia serială ID-20 de linia Rx a arduino-ului. ATMega168 are doar 1 intrare Rx și o folosește pentru a încărca cod pentru a vorbi cu programatorul. Deconectați ID-20 în timp ce programați, apoi conectați-l la loc când ați terminat. Am folosit un programator FTDI care vă permite să programați arduino prin USB cu doar 4 fire. Schema controlerului prezintă o conexiune antet pin pentru a vă permite să conectați una direct. Sparkfun vinde, de asemenea, această parte, dar mulți ar putea să o aibă deja.

Puteți încărca cu ușurință codul meu pe arduino și nu vă uitați niciodată înapoi, dar ce distracție aveți în asta? Permiteți-mi să explic ideea de bază despre cum funcționează.

În primul rând, nu am vrut butoane / comutatoare / etc externe și nu am vrut să reprogramez arduino de fiecare dată când am vrut să adaug un card nou. Prin urmare, am vrut să folosesc doar RFID pentru a controla funcționarea circuitului, precum și controlul asupra blocării ușii.

Programul pornește LED-ul albastru pentru a indica faptul că este gata să citească un card nou. Când cardul este citit, acesta decide dacă este sau nu un card valid, comparând ceea ce a citit cu o listă de carduri valide. Dacă utilizatorul este valid, arduino oprește LED-ul albastru și aprinde LED-ul verde timp de 5 secunde. De asemenea, pornește o altă ieșire înaltă timp de 5 secunde. Această ieșire este conectată la tranzistorul TIP31A și permite micului arduino să controleze o blocare a ușii mult mai mare de 12v 300mA fără a fi deteriorată. După 5 secunde, blocarea ușii se blochează din nou și LED-ul se întoarce în albastru pentru a aștepta citirea unui alt card. Dacă cardul este invalid, LED-ul se schimbă în ROȘU pentru câteva secunde și revine la Albastru pentru a aștepta o altă carte.

Este important ca încuietoarea ușii să funcționeze în continuare chiar dacă arduino-ul își pierde puterea peste noapte sau este resetat. Prin urmare, toate ID-urile cardului valide sunt stocate în memoria EEPROM. ATMega168 are 512 octeți de memorie EEPROM. Fiecare card RFID are un număr de serie de 5 octeți hexagonali și o sumă de verificare de 1 octet hexagonal pe care o putem folosi pentru a verifica dacă nu au existat erori în transmisia dintre ID-20 și arduino.

Cardurile valide sunt stocate în EEPROM utilizând primul octet drept contor. De exemplu, dacă există 3 carduri valide stocate, primul octet în EEPROM ar fi 3. EEPROM.read (0); = 3. Știind acest lucru și faptul că fiecare ID are o lungime de 5 octeți știm că 1-5 este cardul unu, 6-10 este cardul 2 și 11-15 este cardul 3. Putem face o buclă care arată prin EEPROM 5 octeți la un moment dat și încearcă să găsească cardul citit de cititor.

Dar cum putem adăuga noi carduri la EEPROM după instalarea circuitului ?? Am citit într-una dintre cardurile RFID pe care le am și am codificat-o ca să fie cardul Master RFID. Deci, chiar dacă întreaga EEPROM este ștearsă, cardul principal va funcționa în continuare. Ori de câte ori un card este citit, acesta verifică mai întâi dacă este cardul Master, dacă nu, apoi continuă să vadă dacă este sau nu un card valid. Dacă cardul este cardul principal, arduino intră într-un „mod de programare”, unde clipește RGB și așteaptă să fie citită o altă etichetă validă. Următoarea etichetă care este citită este adăugată la următorul loc liber din EEPROM și contorul este incrementat 1 dacă cardul nu există deja în memoria EEPROM. Cititorul revine apoi la modul normal și așteaptă citirea unui nou card.

În prezent, nu am programat o modalitate de a șterge un card, deoarece motivele ștergerii unui card ar fi cel mai probabil că au fost pierdute sau furate. Deoarece acest lucru ar fi cel mai probabil utilizat cu 1-10 persoane, cel mai ușor lucru de făcut ar fi să programați greu o carte Master Erase care să șteargă toate cărțile din EEPROM, apoi să le adăugați pe toate, ceea ce durează doar câteva secunde. Am adăugat cod pentru a șterge EEPROM, dar nu am implementat încă această caracteristică..

Codul este atașat într-un fișier text împreună cu o copie a listei de piese.

Pasul 5: Extindeți

Acestea sunt doar câteva dintre lucrurile interesante pe care le puteți face cu RFID. Ați putea extinde acest lucru mult mai mult cu o ieșire LCD, înregistrarea cine intră și când, conexiune la rețea / twitter etc. Plănuiesc să realizez o versiune PCB terminată a acestui circuit. Nu am mai făcut un PCB înainte, așa că încă lucrez la proiectarea și dispunerea pieselor. Odată ce le-am finalizat, le voi posta și eu. Încurajez pe oricine să ia codul pe care l-am scris și să-l modifice pentru a face lucruri și mai interesante!

Finalist la Concursul Arduino

Recomandat: