RFID (Radio Frequency Identification) är en billig och tillgänglig teknik. Den kan användas i många applikationer som åtkomstkontroll, säkerhet, spårning av tillgångar, spårning av människor etc. Du har sett RFID-dörrlåssystemet på hotell, kontor och många andra platser där du bara måste placera kortet nära RFID-läsare för en sekund och dörren kommer att öppnas. Vi använde en RFID-läsare och tagg i många RFID-baserade projekt.
I våra tidigare inlägg har vi byggt ett enkelt RFID-dörrlås, den här gången använder vi ett riktigt magnetlås och styr det med RFID och Arduino. Här används en Hall Effect-sensor och en magnet för att upptäcka dörrrörelser. Hall-effekt-sensorn kommer att placeras på dörrkarmen och magneten på själva dörren. När Hall Effect-sensorn och magneten är nära varandra kommer Hall Effect-sensorn att vara i lågt tillstånd och dörren förblir stängd, och när sensorn och magneten inte är nära betyder dörren att den är öppen och hallsensorn är i hög stat. Vi kommer att använda denna Hall Effect-mekanism för att låsa och låsa upp dörren automatiskt. För att lära dig mer om Hall Sensor och dess funktion, följ länken.
Komponenter krävs
- Arduino Uno
- RFID-RC522-modul
- 12v magnetlås
- Relämodul
- Hall-effektsensor
- 10kΩ motstånd
- Summer
Magnetlås
Ett magnetlås fungerar på den elektronisk-mekaniska låsmekanismen. Denna typ av lås har en snigel med ett lutande snitt och en bra monteringsfäste. När strömmen appliceras skapar DC ett magnetfält som flyttar snigeln inuti och håller dörren i olåst läge. Snigeln behåller sin position tills strömmen tas bort. När strömmen kopplas bort rör sig snigeln ut och låser dörren. Den använder ingen ström i ett låst tillstånd. För att driva magnetlåset behöver du en strömkälla som kan ge 12V @ 500mA.
Kretsschema
Kretsschema för magnetdörrlås med Arduino ges nedan.
Anslutningar mellan Arduino och RFID ges i tabellen nedan. Summerens positiva stift är ansluten till Arduinos digitala stift 4 och GND-stiftet är anslutet till Arduinos jordstift. Ett 10K-motstånd används mellan VCC och OUT-stiftet på Hall Effect-sensorn. Magnetlåset är anslutet till Arduino via relämodulen.
RFID-stift | Arduino Uno Pin |
SDA | Digital 10 |
SCK | Digital 13 |
MOSI | Digital 11 |
MISO | Digital 12 |
IRQ | Utan samband |
GND | GND |
RST | Digital 9 |
3,3V | 3,3V |
Hall Effect Sensor Pin | Arduino Uno Pin |
5V | 5V |
GND | GND |
UT | 3 |
Efter lödning av alla komponenter på perf-kortet enligt kretsschemat ser det ut som bilden nedan:
Kodförklaring
Komplett kod för detta Arduino-magnetlås ges i slutet av dokumentet. Här förklarar vi den här koden steg för steg för bättre förståelse.
Starta koden genom att inkludera alla nödvändiga bibliotek. Här krävs det bara två bibliotek, ett för SPI-kommunikation mellan Arduino och RFID och ett för RFID-modulen. Båda biblioteken kan laddas ner från länkarna nedan:
- SPI.h
- MFRC522.h
Definiera nu stiften för summer, magnetlås och RFID-modul
int Summer = 4; const int LockPin = 2; #define SS_PIN 10 #define RST_PIN 9
Definiera sedan låsstiftet och summernålen som en utgång, och Hall Effekt-sensorstiftet som ingång och initiera SPI-kommunikationen.
pinMode (LockPin, OUTPUT); pinMode (Summer, OUTPUT); pinMode (hall_sensor, INPUT); SPI.begin (); // Initiera SPI-buss mfrc522.PCD_Init (); // Initiera MFRC522
Inne i tomrummet slinga , läsa hall sensorvärden, och när det blir låg, nära dörren.
tillstånd = digitalRead (hall_sensor); Serial.print (tillstånd); fördröjning (3000); if (state == LOW) {digitalWrite (LockPin, LOW); Serial.print ("Dörr stängd"); digitalWrite (Summer, HÖG); fördröjning (2000); digitalWrite (Buzzer, LOW);}
Inne i tomrumsfunktionen kommer den att kontrollera om ett nytt RFID-kort är närvarande, och om ett nytt kort finns, kommer det att kontrollera UID på kortet. För ett giltigt kort öppnas låset; I annat fall kommer den att skriva ut ' Du är inte behörig. 'Fullständigt arbete visas i videon i slutet.
om (! mfrc522.PICC_IsNewCardPresent ()) {return; } // Välj ett av korten om (! Mfrc522.PICC_ReadCardSerial ()) {return; } // Visa UID på seriell bildskärm Stränginnehåll = ""; byte brev; för (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 ("Meddelande:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // ändra här UID för kortet / korten som du vill ge åtkomst till {digitalWrite (LockPin, HIGH); Serial.print ("Dörr upplåst"); digitalWrite (Summer, HÖG); fördröjning (2000); digitalWrite (Buzzer, LOW); } annat {Serial.println ("Du är inte auktoriserad"); digitalWrite (Summer, HÖG); fördröjning (2000); digitalWrite (Summer,LÅG); }}
Testa RFID-magnetlåset
När du är klar med koden och hårdvaran kan du börja testa Solenoid Door Lock-projektet. Här har vi lödt alla komponenter på perf-kortet så att det enkelt kan monteras på dörren.
För att testa det, montera perf-kortet på dörrkarmen och magneten på dörren så att den kan upptäcka dörrrörelsen. Bilden nedan visar hur magneten och hallsensorerna sitter fast på dörren.
Skanna nu ditt auktoriserade RFID-kort för att öppna dörrlåset. Magnetdörrlåset förblir öppet tills Hall Effect-sensorns uteffekt är hög. När dörren nu når nära Hall-sensorn när den stängs, ändras Hall-effekt-sensorns status till Låg på grund av magnetfältet (som genereras av magneten som är fäst vid dörren) och låset kommer att stängas igen.
Istället för att använda Hall Effect-sensorn kan du införa en fördröjning för att hålla dörren öppen under en bestämd tid.
Komplett kod och arbetsvideo ges nedan. Kontrollera även andra typer av dörrlås med olika tekniker.