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

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

必要な部品と材料

部品数量備考
Arduino UNO1メインマイコンボード
RFIDリーダー (RC522)113.56MHz対応
OLEDディスプレイ (128×64, I2C)1SSD1306コントローラー搭載
ブレッドボード (小)1
ジャンパーワイヤー多数
RFIDタグ/カード2キーチェーン型含む
モバイルバッテリー (任意)1携帯用電源として

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

プロジェクト概要

このチュートリアルでは、ArduinoとRC522 RFIDリーダーを使用して、シンプルなロックシステムを構築します。RFIDタグをリーダーにかざすと、その固有ID (UID) を読み取り、OLEDディスプレイに表示します。事前に登録されたUIDと一致する場合のみ「Unlocked (解錠)」のメッセージを表示し、それ以外は拒否します。総費用は約1,500円程度で実現可能です。

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

ステップ1: 部品の準備

上記の部品をすべて揃えてください。RFIDリーダーとタグ2枚のセットは約500円、OLEDディスプレイは約300円で入手可能です。

ステップ2: RC522 RFIDリーダーの理解

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

RFIDタグ内部には小さなチップとコイルがあり、バッテリーは不要です。リーダーから発せられる電磁界によって誘導電流でチップが駆動され、UIDを無線で送信します。読み取り距離は最大約20mmです。各タグは固有のUIDを持ち、最大1KBのデータを格納できます (今回はUIDのみ使用)。

ステップ3: OLEDディスプレイの特徴

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

128×64ピクセルの小型OLEDで、消費電流は10〜20mAと省電力。I2Cインターフェースのため配線はVCC、GND、SCL、SDAの4線のみ。Adafruitライブラリが充実しており、初心者にも扱いやすいディスプレイです。黄色と青色の2色表示タイプもあります。

ステップ4: 配線方法

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

⚠️ 重要: RFIDリーダーは必ず3.3Vで動作させてください。5Vに接続すると破損します。

RFIDリーダー (RC522) – Arduino UNO 接続 (SPI接続)

RC522ピンArduinoピン
VCC3.3V
GNDGND
RSTデジタルピン 9
IRQ未接続
MISOデジタルピン 12
MOSIデジタルピン 11
SCKデジタルピン 13
SDA (SS)デジタルピン 10

OLEDディスプレイ (SSD1306) – Arduino UNO 接続 (I2C接続)

OLEDピンArduinoピン
VCC3.3V
GNDGND
SCLアナログピン 5 (A5)
SDAアナログピン 4 (A4)

ブレッドボードのプラスレールを3.3Vに、マイナスレールをGNDに接続し、両モジュールの電源を共有させると配線がスッキリします。

ステップ5: プログラムコード

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

必要なライブラリのインストール

  1. Arduino IDEで「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開く
  2. 「MFRC522」で検索しインストール
  3. 「Adafruit SSD1306」と「Adafruit GFX」をインストール

Adafruit SSD1306ライブラリの設定変更

Adafruit_SSD1306.h ファイルを開き、以下を修正:

// 69行目を有効化 (128x64用)
#define SSD1306_128_64
// 70行目をコメントアウト
// #define SSD1306_128_32

メインコードのポイント

// 許可するUIDを登録 (実際のタグのUIDに変更してください)
int code[] = {69, 141, 8, 136};  // ここに登録したいタグのUIDを入力

void setup() {
  rfid.PCD_Init();           // RFIDリーダー初期化
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // OLED初期化 (I2Cアドレス0x3C)
}

void loop() {
  // 100msごとにタグをチェック
  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
    // UIDを表示
    printUID();
    
    // UIDを比較
    bool match = true;
    for (int i = 0; i < 4; i++) {
      if (rfid.uid.uidByte[i] != code[i]) match = false;
    }
    
    if (match) {
      Serial.println("\nI know this card!");
      printUnlockMessage();  // 「Unlocked」表示
    } else {
      Serial.println("\nUnknown Card");
    }
    rfid.PICC_HaltA();
  }
  delay(100);
}

複数のタグを登録する場合は、code を2次元配列にしてループで比較するように拡張できます。完全なコードはチュートリアルに添付の RFID.ino を参照してください。

ステップ6: まとめと発展アイデア

Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド

低コストでRFID認証システムが構築できました。これを発展させて、以下のような応用が可能です:

  • ドアロックやボックスロックへの実装 (サーボモーターやソレノイド連動)
  • 複数ユーザー管理 (UIDリストをEEPROMに保存)
  • 入退室ログの記録 (SDカードやRTCモジュール追加)
  • RFIDタグへのデータ書き込み/読み出し (次回チュートリアルで解説予定)
  • キッズ向けインタラクティブゲーム (複数のタグでストーリー分岐など)

ご質問やアイデアがあれば、コメント欄でお気軽にシェアしてください!

製造プロセス

  1. ArduinoとRC522で作るセキュアなRFIDドアロック(MIFARE 13.56MHz)
  2. Arduino Nanoと指紋センサーで作るバイオメトリクス認証システム – 完全チュートリアル
  3. Arduino UNOで作るミニピアノ - ステップバイステップチュートリアル
  4. Arduinoで作るポータブルRFIDドアロック - ステップバイステップガイド
  5. RFIDとリレーでPCをセキュアに:Arduinoドアロック応用
  6. HID Prox RFIDリーダーをArduino UNOと連携:ステップバイステップセットアップ
  7. Arduino、ENC28J60 Ethernet、MFRC522でネットワーク対応RFIDカードリーダーを構築
  8. Windows PCをRFIDでロック/アンロック: Arduino Pro Microで作る簡易セキュリティ
  9. Arduinoプロトスレッディング入門:シングルコアで疑似マルチスレッドを実現するステップバイステップガイド
  10. MPU6050 完全攻略:Arduino で加速度センサー&ジャイロを使いこなすチュートリアル
  11. Arduino初心者チュートリアル01: 最初のプロジェクトを始めよう