RFID (radiotaajuustunnistus) on halpa ja helppokäyttöinen tekniikka. Sitä voidaan käyttää monissa sovelluksissa, kuten kulunvalvonta, turvallisuus, omaisuuden seuranta, ihmisten seuranta jne. Olet nähnyt RFID-oven lukitusjärjestelmän hotelleissa, toimistoissa ja monissa muissa paikoissa, joissa sinun tarvitsee vain sijoittaa kortti lähelle RFID-lukijaa sekunnin ajan ja ovi avataan. Käytimme RFID-lukijaa ja -tunnistetta monissa RFID-pohjaisissa projekteissa.
Aikaisemmissa viesteissämme olemme rakentaneet yksinkertaisen RFID-oven lukon, tällä kertaa käytämme aitoa magneettisen oven lukkoa ja ohjaamme sitä RFID: llä ja Arduinolla. Tässä Hall-tehosensoria ja magneettia käytetään oven liikkeen havaitsemiseen. Hall-tehosensori sijoitetaan oven kehykseen ja magneetti itse oveen. Kun Hall-tehosensori ja magneetti ovat lähellä toisiaan, Hall-tehosensori on matalassa tilassa ja ovi pysyy suljettuna, ja kun anturi ja magneetti eivät ole lähellä, ovi on auki ja hall-anturi on korkealla osavaltio. Käytämme tätä Hall Effect -mekanismia oven lukitsemiseksi ja avaamiseksi automaattisesti. Saat lisätietoja Hall-anturista ja sen toiminnasta seuraamalla linkkiä.
Tarvittavat komponentit
- Arduino Uno
- RFID-RC522-moduuli
- 12v: n solenoidilukko
- Releyksikkö
- Hall-efektianturi
- 10kΩ vastus
- Summeri
Solenoidilukko
Magneettilukko toimii elektronimekaanisessa lukitusmekanismissa. Tämän tyyppisessä lukossa on viisto leikkaus ja hyvä kiinnike. Kun virta kytketään, tasavirta luo magneettikentän, joka liikuttaa etanaa sisällä ja pitää oven lukitsemattomassa asennossa. Etana säilyttää asemansa, kunnes virta katkaistaan. Kun virta katkaistaan, etana liikkuu ulkopuolelle ja lukitsee oven. Se ei käytä virtaa lukitussa tilassa. Magneettilukon ajamiseksi tarvitset virtalähteen, joka voi antaa 12 V @ 500 mA.
Piirikaavio
Arduinoa käyttävän magneettisen oven lukituksen kytkentäkaavio on annettu alla.
Yhteydet Arduinon ja RFID: n välillä on esitetty alla olevassa taulukossa. Summerin positiivinen tappi on kytketty Arduinon digitaaliseen nastaan 4 ja GND-tappi Arduinon maadoitettuun nastaan. 10K-vastusta käytetään Hall Effect -anturin VCC- ja OUT-nastojen välillä. Solenoidilukko on kytketty Arduinoon relemoduulin kautta.
RFID-tappi | Arduino Uno Pin |
SDA | Digitaalinen 10 |
SCK | Digitaalinen 13 |
MOSI | Digitaalinen 11 |
MISO | Digitaalinen 12 |
IRQ | Ei yhteyttä |
GND | GND |
RST | Digitaalinen 9 |
3,3 V | 3,3 V |
Hall-efektianturin tappi | Arduino Uno Pin |
5 V | 5 V |
GND | GND |
OUT | 3 |
Kun kaikki komponentit on juotettu perf-levylle piirikaavion mukaan, se näyttää seuraavalta kuvalta:
Koodin selitys
Tämän Arduino-solenoidilukon täydellinen koodi annetaan asiakirjan lopussa. Tässä selitämme tämän koodin askel askeleelta ymmärtämisen parantamiseksi.
Aloita koodi sisällyttämällä kaikki vaaditut kirjastot. Tässä se vaatii vain kaksi kirjastoa, yhden SPI-tiedonsiirtoon Arduinon ja RFID: n välillä ja toisen RFID-moduulille. Molemmat kirjastot voidaan ladata alla olevista linkeistä:
- SPI.h
- MFRC522.h
Määritä nyt tapit summerille, solenoidilukolle ja RFID-moduulille
int Summeri = 4; const int LockPin = 2; #define SS_PIN 10 #define RST_PIN 9
Määritä sitten lukitustappi ja summerin tappi lähdöksi ja Hall-efektin tunnistintappi tuloksi ja aloita SPI-tiedonsiirto.
pinMode (LockPin, OUTPUT); pinMode (summeri, OUTPUT); pinMode (hall_anturi, INPUT); SPI alkaa (); // Aloita SPI-väylä mfrc522.PCD_Init (); // Aloita MFRC522
Lue tyhjiösilmukan sisäpuolelta hallianturin arvot ja sulje luukku, kun se on matala.
tila = digitalRead (hall_anturi); Sarjaprintti (tila); viive (3000); if (tila == LOW) {digitalWrite (LockPin, LOW); Serial.print ("Ovi suljettu"); digitalWrite (summeri, HIGH); viive (2000); digitalWrite (summeri, LOW);}
Void loop -toiminnon sisällä se tarkistaa, onko läsnä uusi RFID-kortti, ja jos uusi kortti on läsnä, se tarkistaa kortin UID-tunnuksen. Jos kortti on voimassa, se avaa lukon; muuten se tulostaa ' Et ole valtuutettu. 'Täydellinen työskentely näkyy lopussa olevassa videossa.
if (! mfrc522.PICC_IsNewCardPresent ()) {return; } // Valitse yksi kortista, jos (! Mfrc522.PICC_ReadCardSerial ()) {return; } // Näytä UID sarjamoduulissa String content = ""; tavukirjain; for (tavu i = 0; i <mfrc522.uid.size; i ++) {content.concat (merkkijono (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (merkkijono (mfrc522.uid.uidByte, HEX)); } Sarja.println (); Serial.print ("Viesti:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // muuta täällä sen kortin / korttien UID, joille haluat antaa pääsyn {digitalWrite (LockPin, HIGH); Serial.print ("Ovi auki"); digitalWrite (summeri, HIGH); viive (2000); digitalWrite (summeri, LOW); } else {Serial.println ("Sinulla ei ole valtuuksia"); digitalWrite (summeri, HIGH); viive (2000); digitalWrite (summeri,MATALA); }}
RFID-solenoidilukon testaus
Kun olet valmis koodin ja laitteiston kanssa, voit aloittaa magneettisen oven lukitusprojektin testaamisen. Täällä olemme juottaneet kaikki komponentit perf-levylle, jotta se voidaan helposti asentaa oveen.
Joten testataksesi sitä, asenna perf-levy oven kehykseen ja magneetti oveen, jotta se voi tunnistaa oven liikkeen. Alla oleva kuva osoittaa, kuinka magneetti- ja Hall-anturit on kiinnitetty oveen.
Skannaa nyt valtuutettu RFID-korttisi oven lukituksen avaamiseksi. Solenoidin oven lukitus pysyy auki, kunnes Hall Effect -anturin lähtö on korkea. Nyt kun ovi saavuttaa taas lähellä Hall-anturia sulkeutumisen yhteydessä, Hall-efektitunnistimen tila muuttuu matalaksi magneettikentän vuoksi (luukkuun kiinnitetyn magneetin tuottama), ja lukko suljetaan uudelleen.
Hall Effect -anturin käyttämisen sijaan voit asettaa viiveen oven pitämiseksi auki määritetyn ajan.
Täydellinen koodi ja toimiva video on annettu alla. Tarkista myös muun tyyppiset ovilukot eri tekniikoilla.