RFIDとリレーでPCをセキュアに:Arduinoドアロック応用
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | |
| RFIDモジュール(MFRC522) | 1 | |
| リレーモジュール(5V 1ch) | 1 | |
| ジャンパーワイヤー(オス/メス) | 12 | RFID 7本、リレー-Arduino 3本、リレー-マザーボード 2本 |
プロジェクト概要
PCのパスワードに加えて、物理的なセキュリティ機能を追加するプロジェクトです。YouTubeで見つけたRFIDドアロックのコードを流用し、PCの電源ボタン制御に応用しました。
まずMFRC522ライブラリのサンプル(DumpInfo)でカード/キーフォブのUIDを取得し、スケッチに登録します。登録済みUIDをかざすとリレーが作動し、マザーボードの電源スイッチ端子をショートさせてPCを起動。別のUID(キーフォブ等)を登録しておけば、長押し(5秒)で強制シャットダウンも可能です。
リレーのON時間は500ms(起動用)と5000ms(シャットダウン用)で、一般的なプッシュスイッチに対応しています。
SNS: Facebook @HeathenHacks | Twitter @HeathenHacks | Instagram @HeathenHacks
ソースコード
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
String read_rfid;
String ok_rfid_1 = "e199312d"; // メインカード:PC起動用
String ok_rfid_2 = "fbecb673"; // キーフォブ:強制シャットダウン用
int lockPin = 7;
void setup() {
Serial.begin(9600);
while (!Serial);
SPI.begin();
mfrc522.PCD_Init();
pinMode(lockPin, OUTPUT);
}
void dump_byte_array(byte *buffer, byte bufferSize) {
read_rfid = "";
for (byte i = 0; i < bufferSize; i++) {
read_rfid += String(buffer[i], HEX);
}
}
void pulseRelay(int duration) {
digitalWrite(lockPin, HIGH);
delay(duration);
digitalWrite(lockPin, LOW);
}
void loop() {
if (!mfrc522.PICC_IsNewCardPresent()) return;
if (!mfrc522.PICC_ReadCardSerial()) return;
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
Serial.println(read_rfid);
if (read_rfid == ok_rfid_1) {
pulseRelay(500); // PC起動
}
if (read_rfid == ok_rfid_2) {
pulseRelay(5000); // 強制シャットダウン
}
// 必要に応じてUIDを追加登録可能
}
使用ライブラリ:MFRC522 Library
回路図
配線図(色分けして判りやすく作成)

製造プロセス
- 銀行金庫の中身:歴史、設計、セキュリティの未来
- 回転ドア:設計、歴史、省エネ効果
- 運河と閘門:米国水上輸送のエンジニアリング、歴史、そして未来
- 現代ピンタンブラー錠の進化と製造
- バーコードスキャナ:技術、設計、将来動向
- ダイヤル式南京錠:設計、製造、歴史的進化
- スマートフォンのBluetooth近接検知でスマートオートロックドアを構築
- ArduinoとESP8266で作るWi-Fi対応スマートドアロック — スマホで解錠
- XORゲートとNORゲートによる4ビットコンビネーションロックの設計
- ジャンブスイッチ理解:機能、用途、交換方法
- Tcl駆動テストベンチでVHDLコード・ロック・モジュールを検証する