RFID (Radio Frequency Identification) เป็นเทคโนโลยีราคาไม่แพงและสามารถเข้าถึงได้ สามารถใช้ในแอพพลิเคชั่นมากมายเช่นการควบคุมการเข้าถึงความปลอดภัยการติดตามทรัพย์สินการติดตามบุคคล ฯลฯ คุณเคยเห็นระบบล็อคประตู RFIDในโรงแรมสำนักงานและสถานที่อื่น ๆ อีกมากมายที่คุณต้องวางการ์ดไว้ใกล้เครื่องอ่าน RFID ชั่ววินาทีแล้วประตูจะเปิดออก เราใช้เครื่องอ่าน RFID และแท็กในโครงการที่ใช้ RFID มากมาย
ในโพสต์ก่อนหน้านี้เราได้สร้างล็อคประตู RFID แบบง่ายๆคราวนี้เราใช้Solenoid Door Lockจริงและควบคุมด้วย RFID และ Arduino ที่นี่จะใช้เซ็นเซอร์ Hall Effect และแม่เหล็กเพื่อตรวจจับการเคลื่อนไหวของประตู เซ็นเซอร์ Hall Effect จะถูกวางไว้ที่กรอบประตูและแม่เหล็กที่ประตูเอง เมื่อเซ็นเซอร์ Hall Effect และแม่เหล็กอยู่ใกล้กันเซ็นเซอร์ Hall Effect จะอยู่ในสถานะต่ำและประตูจะยังคงปิดอยู่และเมื่อเซ็นเซอร์และแม่เหล็กไม่ปิดหมายความว่าประตูเปิดอยู่และเซ็นเซอร์ห้องโถงอยู่ในที่สูง สถานะ. เราจะใช้กลไก Hall Effect นี้เพื่อล็อคและปลดล็อกประตูโดยอัตโนมัติ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Hall Sensor และการทำงานให้ไปที่ลิงค์
ส่วนประกอบที่จำเป็น
- Arduino Uno
- โมดูล RFID-RC522
- ล็อคโซลินอยด์ 12v
- โมดูลรีเลย์
- เซ็นเซอร์ Hall Effect
- ตัวต้านทาน10kΩ
- Buzzer
ล็อคโซลินอยด์
โซลินอยด์ล็อคทำงานบนกลไกการล็อคแบบกลไกอิเล็กทรอนิกส์ ล็อคประเภทนี้มีกระสุนที่มีการตัดแบบเอียงและตัวยึดที่ดี เมื่อใช้กระแสไฟ DC จะสร้างสนามแม่เหล็กที่เลื่อนกระสุนเข้าไปด้านในและทำให้ประตูอยู่ในตำแหน่งปลดล็อค กระสุนจะคงตำแหน่งไว้จนกว่าพลังจะถูกลบออก เมื่อถอดสายไฟกระสุนจะเคลื่อนออกไปข้างนอกและล็อคประตู มันไม่ใช้อำนาจใด ๆ ในสถานะล็อค ในการขับเคลื่อนโซลินอยด์ล็อคคุณจะต้องมีแหล่งพลังงานที่สามารถให้ 12V @ 500mA
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับSolenoid Door Lock โดยใช้ Arduino แสดงไว้ด้านล่าง
การเชื่อมต่อระหว่างArduino และ RFIDแสดงไว้ในตารางด้านล่าง พินบวกของออดเชื่อมต่อกับพินดิจิตอล 4 ของ Arduino และพิน GND เชื่อมต่อกับพินกราวด์ของ Arduino 10K ต้านทานจะใช้ในระหว่าง VCC และออกจากขาของเซ็นเซอร์ Hall Effect โซลินอยด์ล็อคเชื่อมต่อกับ Arduino ผ่านโมดูลรีเลย์
พิน RFID | Arduino Uno Pin |
SDA | ดิจิตอล 10 |
SCK | ดิจิตอล 13 |
MOSI | ดิจิตอล 11 |
มิโซะ | ดิจิตอล 12 |
IRQ | ไม่ได้เชื่อมต่อ |
GND | GND |
RST | ดิจิตอล 9 |
3.3V | 3.3V |
ขาเซนเซอร์ Hall Effect | Arduino Uno Pin |
5V | 5V |
GND | GND |
ออก | 3 |
หลังจากบัดกรีส่วนประกอบทั้งหมดบนบอร์ด perf ตามแผนภาพวงจรดูเหมือนภาพด้านล่าง:
คำอธิบายรหัส
รหัสที่สมบูรณ์สำหรับล็อคโซลินอยด์ Arduinoนี้จะได้รับในตอนท้ายของเอกสาร เรากำลังอธิบายรหัสนี้ทีละขั้นตอนเพื่อความเข้าใจที่ดีขึ้น
เริ่มต้นรหัสโดยรวมไลบรารีที่จำเป็นทั้งหมด ที่นี่ต้องการเพียงสองไลบรารีหนึ่งแห่งสำหรับการสื่อสาร SPI ระหว่าง Arduino และ RFID และที่สองสำหรับโมดูล RFID ทั้งสองไลบรารีสามารถดาวน์โหลดได้จากลิงค์ด้านล่าง:
- SPI.h
- MFRC522. ชม
ตอนนี้กำหนดพินสำหรับ Buzzer, Solenoid Lock และ RFID Module
int Buzzer = 4; const int LockPin = 2; # กำหนด SS_PIN 10 # กำหนด RST_PIN 9
จากนั้นกำหนดพินล็อคและพิน Buzzer เป็นเอาต์พุตและพินเซ็นเซอร์ Hall Effect เป็นอินพุตและเริ่มการสื่อสาร SPI
pinMode (LockPin, เอาท์พุท); pinMode (Buzzer, เอาท์พุท); pinMode (hall_sensor, INPUT); SPI.begin (); // เริ่มต้น SPI บัส mfrc522.PCD_Init (); // เริ่มต้น MFRC522
ภายใน ช่องว่าง ให้อ่านค่าเซ็นเซอร์ฮอลล์และเมื่ออยู่ในระดับต่ำให้ปิดประตู
สถานะ = digitalRead (hall_sensor); Serial.print (สถานะ); ล่าช้า (3000); ถ้า (state == LOW) {digitalWrite (LockPin, LOW); Serial.print ("ประตูปิด"); digitalWrite (Buzzer, สูง); ล่าช้า (2000); digitalWrite (Buzzer, LOW);}
ภายในฟังก์ชันvoid loopจะตรวจสอบว่ามีการ์ด RFID ใหม่อยู่หรือไม่และมีการ์ดใหม่อยู่หรือไม่ระบบจะตรวจสอบ UID ของการ์ด สำหรับการ์ดที่ถูกต้องมันจะเปิดล็อค มิฉะนั้นจะพิมพ์ว่า ' คุณไม่ได้รับอนุญาต 'การทำงานที่สมบูรณ์จะแสดงในวิดีโอที่ให้ไว้ในตอนท้าย
ถ้า (! mfrc522.PICC_IsNewCardPresent ()) {กลับ; } // เลือกหนึ่งในการ์ดถ้า (! mfrc522.PICC_ReadCardSerial ()) {return; } // แสดง UID บนเนื้อหาสตริงการมอนิเตอร์แบบอนุกรม = ""; ตัวอักษรไบต์ สำหรับ (byte i = 0; i <mfrc522.uid.size; i ++) {content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (สตริง (mfrc522.uid.uidByte, HEX)); } Serial.println (); Serial.print ("ข้อความ:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // เปลี่ยนที่นี่ UID ของการ์ด / การ์ดที่คุณต้องการให้เข้าถึง {digitalWrite (LockPin, HIGH); Serial.print ("ประตูปลดล็อค"); digitalWrite (Buzzer, สูง); ล่าช้า (2000); digitalWrite (Buzzer, LOW); } else {Serial.println ("คุณไม่ได้รับอนุญาต"); digitalWrite (Buzzer, สูง); ล่าช้า (2000); digitalWrite (Buzzer,ต่ำ); }}
การทดสอบ RFID Solenoid Lock
เมื่อคุณพร้อมกับรหัสและฮาร์ดแวร์แล้วคุณสามารถเริ่มทดสอบโครงการ Solenoid Door Lock ได้ ที่นี่เราได้ทำการบัดกรีส่วนประกอบทั้งหมดบนบอร์ด perf เพื่อให้สามารถติดตั้งที่ประตูได้อย่างง่ายดาย
ดังนั้นในการทดสอบให้ติดบอร์ด perf ที่กรอบประตูและแม่เหล็กที่ประตูเพื่อตรวจจับการเคลื่อนไหวของประตู ภาพด้านล่างแสดงวิธีติดตั้งแม่เหล็กและเซ็นเซอร์ Hall ที่ประตู
ตอนนี้สแกนบัตร RFID ที่ได้รับอนุญาตของคุณเพื่อเปิดล็อคประตู ล็อคประตูโซลินอยด์จะยังคงเปิดอยู่จนกว่าเอาต์พุตเซ็นเซอร์ Hall Effect จะสูง ตอนนี้เมื่อประตูเข้าใกล้เซ็นเซอร์ Hall อีกครั้งในขณะที่ปิดสถานะเซ็นเซอร์ Hall Effect จะเปลี่ยนเป็น Low เนื่องจากสนามแม่เหล็ก (สร้างโดยแม่เหล็กที่ติดอยู่ที่ประตู) และล็อคจะปิดอีกครั้ง
แทนที่จะใช้เซ็นเซอร์ Hall Effect คุณสามารถแนะนำการหน่วงเวลาเพื่อให้ประตูเปิดตามเวลาที่กำหนด
รหัสที่สมบูรณ์และวิดีโอการทำงานได้รับด้านล่าง ตรวจสอบการล็อกประตูประเภทอื่น ๆ โดยใช้เทคโนโลยีที่แตกต่างกัน