RFID (Radio Frequency Identification) er en billig og tilgængelig teknologi. Det kan bruges i mange applikationer såsom adgangskontrol, sikkerhed, aktivsporing, folksporing osv. Du har set RFID-dørlåsesystemet på hoteller, kontorer og mange andre steder, hvor du bare skal placere kortet i nærheden af RFID-læser et sekund, og døren åbnes. Vi brugte en RFID-læser og tag i mange RFID-baserede projekter.
I vores tidligere indlæg har vi bygget en simpel RFID-dørlås, denne gang bruger vi en ægte magnetisk dørlås og styrer den med RFID og Arduino. Her bruges en Hall Effect-sensor og en magnet til at detektere dørens bevægelse. Hall Effect-sensor placeres på dørkarmen og magneten på selve døren. Når Hall Effect-sensoren og magneten er tæt på hinanden, vil Hall Effect-sensoren være i lav tilstand, og døren forbliver lukket, og når sensoren og magneten ikke er tæt, betyder det, at døren er åben og hall-sensoren er i høj stat. Vi bruger denne Hall Effect-mekanisme til automatisk at låse og låse op. For at lære mere om Hall Sensor og dens arbejde, følg linket.
Komponenter, der kræves
- Arduino Uno
- RFID-RC522 modul
- 12v magnetlås
- Relæmodul
- Hall-effekt-sensor
- 10kΩ modstand
- Summer
Magnetlås
En magnetlås fungerer på den elektronisk-mekaniske låsemekanisme. Denne type lås har en snegle med et skråt snit og et godt monteringsbeslag. Når strømmen tilføres, skaber DC et magnetfelt, der bevæger sneglen indeni og holder døren i ulåst position. Sneglen bevarer sin position, indtil strømmen fjernes. Når strømmen er afbrudt, bevæger sneglen sig udenfor og låser døren. Det bruger ikke strøm i en låst tilstand. For at drive magnetlåsen har du brug for en strømkilde, der kan give 12V @ 500mA.
Kredsløbsdiagram
Kredsløbsdiagram for magnetventildør ved hjælp af Arduino er angivet nedenfor.
Forbindelser mellem Arduino og RFID er angivet i nedenstående tabel. Den positive pin på summeren er forbundet med den digitale pin 4 i Arduino, og GND-stiften er forbundet med Arduinos jordstift. Der bruges en 10K modstand mellem VCC og OUT-stiften på Hall Effect-sensoren. Magnetlåsen er forbundet til Arduino gennem relæmodulet.
RFID-pin | Arduino Uno Pin |
SDA | Digital 10 |
SCK | Digital 13 |
MOSI | Digital 11 |
MISO | Digital 12 |
IRQ | Ikke forbundet |
GND | GND |
RST | Digital 9 |
3.3V | 3.3V |
Hall Effect Sensor Pin | Arduino Uno Pin |
5V | 5V |
GND | GND |
UD | 3 |
Efter lodning af alle komponenterne på perf-kortet i henhold til kredsløbsdiagrammet ser det ud som nedenstående billede:
Kode Forklaring
Komplet kode til denne Arduino-magnetlås er angivet i slutningen af dokumentet. Her forklarer vi denne kode trin for trin for bedre forståelse.
Start koden ved at inkludere alle de nødvendige biblioteker. Her kræver det kun to biblioteker, et til SPI-kommunikation mellem Arduino og RFID og et andet til RFID-modulet. Begge biblioteker kan downloades fra nedenstående links:
- SPI.h
- MFRC522.h
Definer nu benene til summer, magnetlås og RFID-modul
int Buzzer = 4; const int LockPin = 2; #define SS_PIN 10 #define RST_PIN 9
Definer derefter låsestiften og summerstiften som en output, og Hall Effect-sensortasten som input og initier SPI-kommunikationen.
pinMode (LockPin, OUTPUT); pinMode (Buzzer, OUTPUT); pinMode (hall_sensor, INPUT); SPI.begin (); // Start SPI-bus mfrc522.PCD_Init (); // Indled MFRC522
Inde i hulrummet skal du læse hallsensorens værdier, og når den bliver lav, skal du lukke døren.
tilstand = digitalRead (hall_sensor); Serial.print (tilstand); forsinkelse (3000); hvis (tilstand == LAV) {digitalWrite (LockPin, LOW); Serial.print ("Dør lukket"); digitalWrite (Buzzer, HIGH); forsinkelse (2000); digitalWrite (Buzzer, LOW);}
Inde i tomrumsfunktionen vil den kontrollere, om der er et nyt RFID-kort, og hvis der er et nyt kort, vil det kontrollere UID på kortet. For et gyldigt kort åbner det låsen; Ellers vil den udskrive ' Du er ikke autoriseret. 'Komplet arbejde vises i videoen, der er vist i slutningen.
hvis (! mfrc522.PICC_IsNewCardPresent ()) {return; } // Vælg et af kortene, hvis (! Mfrc522.PICC_ReadCardSerial ()) {return; } // Vis UID på seriel skærm Strengindhold = ""; byte brev for (byte i = 0; i <mfrc522.uid.size; i ++) {content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (String (mfrc522.uid.uidByte, HEX)); } Serial.println (); Serial.print ("Besked:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // skift her UID for det / de kort, du vil give adgang {digitalWrite (LockPin, HIGH); Serial.print ("Dør ulåst"); digitalWrite (Buzzer, HIGH); forsinkelse (2000); digitalWrite (Buzzer, LOW); } andet {Serial.println ("Du er ikke autoriseret"); digitalWrite (Buzzer, HIGH); forsinkelse (2000); digitalWrite (Buzzer,LAV); }}
Test af RFID-magnetlåsen
Når du er klar med koden og hardware, kan du begynde at teste Solenoid Door Lock-projektet. Her har vi loddet alle komponenterne på perf-kortet, så det let kan monteres på døren.
For at teste det skal du montere perf-kortet på dørkarmen og magneten på døren, så det kan registrere dørens bevægelse. Billedet nedenfor viser, hvordan magneten og Hall-sensorerne er fastgjort på døren.
Scan nu dit autoriserede RFID-kort for at åbne dørlåsen. Magnetdørlåsen forbliver åben, indtil Hall Effect-sensorens output er høj. Når døren igen når tæt på Hall-sensoren, mens den lukkes, ændres Hall Effect-sensorens status til Lav på grund af magnetfeltet (genereret af magneten fastgjort ved døren), og låsen lukkes igen.
I stedet for at bruge Hall Effect-sensoren kan du indføre en forsinkelse for at holde døren åben i et defineret tidsrum.
Komplet kode og arbejdsvideo er angivet nedenfor. Kontroller også andre typer dørlåse ved hjælp af forskellige teknologier.