ハックスペース向けスマート電子チェックインシステム
部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Mega 2560 | 1 |
| Mifare RC522 RFIDリーダーモジュール(13.56MHz) | 1 |
| LED(汎用、緑・赤) | 各1 |
| タクトスイッチ(チェックイン/アウト用) | 2 |
| 抵抗(LED用、スイッチプルアップ用) | 4 |
プロジェクト背景
台北ハックスペースでは「キーホルダーメンバーが在室中は誰でも入室可」というルールですが、誰がいるか外部から分からないという課題がありました。台北市民の多くが持つ交通系ICカード「EasyCard」(13.56MHz RFID)を利用し、入退室を電子的に記録・Web公開するシステムを構築しました。
システム構成
- ハードウェア(Arduino Mega + RC522): カードID読み取り、スイッチで入/退室選択、LEDでフィードバック
- Node.jsサーバー: シリアル通信でArduinoと接続、SQLite3でDB管理、REST API + Socket.ioでリアルタイム配信
- Webフロントエンド: 現在の在室者を表示、Space API対応で外部アプリからも参照可能
ハードウェア詳細
RC522接続(SPI)
| RC522ピン | Arduino Megaピン |
|---|---|
| SDA (SS) | 53 |
| SCK | 52 |
| MOSI | 51 |
| MISO | 50 |
| GND | GND |
| RST | 任意のデジタルピン |
| 3.3V | 3.3V |

スイッチとLED回路

緑LED(D1): チェックイン準備/完了、赤LED(D2): チェックアウト準備/完了。カード読み取り後、10秒以内にボタン押下で確定、タイムアウトでキャンセル。

サーバーソフトウェア(Node.js)
- serialportライブラリ: Arduinoとのシリアル通信、イベント駆動でデータ受信
- sqlite3ライブラリ: 軽量DBでチェックイン履歴を管理
- Express + Socket.io: REST API(現在在室者取得)とリアルタイムプッシュ通知
- CORS設定: 別サーバーで動くメインWebサイトからAPI呼び出し可能に
Web表示
名前未登録のカードは「他N名」としてカウント。Space API(spaceapi.io)エンドポイントも提供し、My Hackerspacesアプリなどからも在室状況を確認可能。
デモ動画
ライブサイト
https://taipeihack.org/#open でリアルタイム状況を公開中。
ソースコード
全コードをGitHubで公開:
- リポジトリ: https://github.com/taipeihackerspace/thcheckin
- Arduinoスケッチ、Node.jsサーバー、フロントエンドスクリプトを含む
回路図

まとめ
安価なRFIDリーダーとArduinoで、コミュニティスペースの「今誰がいるか」問題を解決しました。EasyCardなど普及済みカードを活用すればカード発行コストゼロ。Node.jsでリアルタイムWeb連携も容易です。改良点は多々ありますが、プロトタイプとして十分実用的です。
製造プロセス
- 電子インク:仕組み、歴史、未来応用
- ArduinoとRC522で作るセキュアなRFIDドアロック(MIFARE 13.56MHz)
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- 電子カメレオン:Arduino Nano、RGB LED、カラーセンサーを使ったプロジェクト
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド