🚪 ماموریت ۸۴: در هوشمند با کارت RFID

RC522: SDA→D10، SCK→D13، MOSI→D11، MISO→D12، RST→D9 و ۳٫۳ ولت. شناسه‌ی کارت را بخوان؛ اگه درست بود سروو D6 را ۹۰ درجه بچرخون.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (D10) ⟷ RFID Reader (RC522) (SDA)
  2. Arduino Uno (D13) ⟷ RFID Reader (RC522) (SCK)
  3. Arduino Uno (D11) ⟷ RFID Reader (RC522) (MOSI)
  4. Arduino Uno (D12) ⟷ RFID Reader (RC522) (MISO)
  5. Arduino Uno (D9) ⟷ RFID Reader (RC522) (RST)
  6. Arduino Uno (VCC33) ⟷ RFID Reader (RC522) (VCC)
  7. RFID Reader (RC522) (GND) ⟷ Arduino Uno (GND1)
  8. Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
  9. سروو موتور (GND) ⟷ Arduino Uno (GND2)
  10. Arduino Uno (D6) ⟷ سروو موتور (SIG)

کد

// RFID door: the right card turns the servo to open the door
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

MFRC522 rfid(10, 9);   // SS, RST
Servo door;
String allowed = "D34A1F9B";

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  door.attach(6);
  door.write(0);         // closed
  Serial.println("Tap a card...");
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent()) return;
  if (!rfid.PICC_ReadCardSerial()) return;
  String id = "";
  for (byte i = 0; i < rfid.uid.size; i++) {
    if (rfid.uid.uidByte[i] < 0x10) id += "0";
    id += String(rfid.uid.uidByte[i], HEX);
  }
  id.toUpperCase();
  Serial.println("Card: " + id);
  if (id == allowed) {
    Serial.println("Welcome! Door open");
    door.write(90);
    delay(3000);
    door.write(0);
  } else {
    Serial.println("Access denied");
  }
  rfid.PICC_HaltA();
}

ماموریت‌های مشابه

📜

ماموریت ۸۲: متن متحرک روی ماتریس

⏰

ماموریت ۸۰: ساعت زنگ‌دار

🌐

ماموریت ۸۹: کلید LED در صفحه‌ی وب

📊

ماموریت ۹۰: صفحه‌ی وب با مقدار سنسور

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها