工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで作るポータブルRFIDドアロック - ステップバイステップガイド

必要な部品と材料

部品名数量
Arduino UNO1
RFIDリーダー/ライターモジュール (RC522 / MFRC522)1
ジャンパーワイヤー1セット
USB-A - Micro-USBケーブル1
4チャネルI2Cリレーコントローラー (ControlEverything.com)1

使用するソフトウェアとオンラインサービス

プロジェクト概要

このチュートリアルでは、Arduino UNOとRC522 RFIDモジュールを使用して、ポータブルなRFIDドアロックシステムを構築する方法を解説します。認証されたRFIDカードまたはキーフォブをかざすとリレーが作動し、ドアロックを解除できます。非常にシンプルで低コストなプロジェクトです。

RFIDリーダーの基礎知識

RFID(Radio Frequency Identification)は、電磁場を利用して短距離でデータをやり取りする識別システムです。タグ(カードやキーフォブ)には固有のUID(識別番号)が記録されており、リーダーがこれを読み取ります。MFRC522チップを搭載したRC522モジュールは安価(数ドル程度)で入手でき、1KBメモリ付きのカードタグとキーフォブタグが付属していることが多いです。また、タグへの書き込みも可能です。

ハードウェア接続 (Arduino UNO - RC522)

RC522ピンArduinoピン
SDA (SS)Digital 10
SCKDigital 13
MOSIDigital 11
MISODigital 12
IRQ未接続
GNDGND
RSTDigital 9
3.3V3.3V (5Vには接続しないこと)

ライブラリのインストールとUIDの取得

  1. Arduino IDEで「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」から「MFRC522」を検索しインストールします。
  2. 「ファイル」→「スケッチ例」→「MFRC522」→「DumpInfo」を開き、ボードに書き込みます。
  3. シリアルモニタを開き(ボーレート9600)、RFIDカード/キーフォブをリーダーにかざします。
  4. 表示されるUID(例: 89 18 79 63)をメモしておきます。

メインスケッチの書き込みと動作確認

以下のスケッチを書き込み、content.substring(1) == "89 18 79 63" の部分を先ほどメモしたUIDに変更してください。認証済みのカードをかざすと「Authorized access」と表示され、リレーが1秒間ON(LOW)になります。未登録のカードでは「Access denied」と表示されリレーはOFF(HIGH)のままです。

#include <SPI.h>
#include <MFRC522.h>

#define RELAY 8
#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  pinMode(RELAY, OUTPUT);
  digitalWrite(RELAY, HIGH); // 初期状態:リレーOFF
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println(F("カードをリーダーにかざしてください..."));
  Serial.println();
}

void loop() {
  // 新しいカードを検出
  if (!mfrc522.PICC_IsNewCardPresent()) return;
  if (!mfrc522.PICC_ReadCardSerial()) return;

  // UIDを文字列に変換
  String content = "";
  Serial.print(F("UID tag: "));
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
    content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  content.toUpperCase();

  // 認証判定
  if (content.substring(1) == "89 18 79 63") { // ★ここに自分のUIDを設定
    Serial.println(F("Authorized access"));
    Serial.println(F("Relay ON"));
    digitalWrite(RELAY, LOW);   // リレーON(アクティブLOWの場合)
    delay(1000);
    digitalWrite(RELAY, HIGH);  // リレーOFF
  } else {
    Serial.println(F("Access denied"));
    Serial.println(F("Relay OFF"));
  }
  delay(500); // 連続読み取り防止
}

回路図

Arduinoで作るポータブルRFIDドアロック - ステップバイステップガイド
Arduinoで作るポータブルRFIDドアロック - ステップバイステップガイド

参考情報

製造プロセス

  1. Arduinoで作るレトロNumitron管時計:シンプル、信頼性高く、省エネ
  2. ArduinoとRC522で作るセキュアなRFIDドアロック(MIFARE 13.56MHz)
  3. Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド
  4. Python連携で信頼性向上: Arduino RFID勤怠管理システム
  5. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  6. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  7. ArduinoとNokia 5110ディスプレイで自作電圧計:ステップバイステップガイド
  8. Arduino Nanoとロータリーエンコーダーで作る高精度測定ホイール
  9. シャープGP2Y1010AU0Fセンサーで作る高精度空気質モニター
  10. Arduino UNOとEthernetシールドで太陽放射を測定する自作ピラノメーター
  11. Arduino NanoとWS2812 LEDストリップで作る1次元ポンゲーム - 完全DIYガイド