研究室の自動開錠システムを後輩と協力して作ったので、そのシステム概要について少しお話したいと思います。
きっかけとしては、その昔、情技研 (情報技術研究部) に所属していた時 1 に先輩が研究室のドアをNFCのカードリーダを使って開錠できるシステムを作られたので、見せて頂いたことがありました。 そのシステムの実際の様子が動画として上がっています (Suicaで解錠 – Facebook) 。
時は流れて5年後、その先輩とは別の研究室に入りましたが、研究室で後輩とお話している中で、研究室のドアを鍵を使わないで開錠できたら面白いよね、みたいな話が上がってきました。 話が盛り上がったついでに実際に実装してみようということになりました (ノリと勢い) 。 役割分担としては、僕がRFCリーダとFelicaカードを買ってPythonでRFCリーダを使ってカードの認証周りを実装し、後輩がRaspberry Piとかドアに固定するための材料とかを買って、組み立てとか開錠ログ収集周りの実装とか、サーボモータを動作させるプログラムなども実装をしてくれました。
実際に完成したシステムの動作している様子です。撮影には別の後輩が協力してくれました。
研究室の自動解錠システム (完成版) pic.twitter.com/1wywkXnlOK
— まこ (@tex2e) June 20, 2019
ちなみに弊学の情報科のドアは閉めると自動ロックされるタイプで、解錠するシステムだけ実装すれば良いので、施錠するシステムがない分、実装が少し楽です。
最初は機材を固定するために養生テープを使っていたので見た目が良くなかったのですが、ドアには磁石が付くことを利用して、自宅にあった磁石とかを持ってきて養生テープを全部磁石に置き換えていきました。 もちろんRaspberry Piに影響が出ないように考慮しています。
完成したあとで、Raspberry Piを再起動しても自動開錠システムが自動的に起動するように、systemdでプロセス再起動の設定をしたり、自分のノートパソコンとLANケーブルで接続できるようにRaspberry PiのethXを固定のローカルIPアドレスにしたり、自分の公開鍵を入れて秒でsshログインできるようにしたりしました。
システムの詳細部分を写真に撮りましたので、何かの参考になればと思います。












システムのソースコードは fjt-lab/auto-door-unlock – GitHub に上げていますので、興味のある方は参考にしてください。
参考記事
- RaspberryPiで!SONYのPaSoRi(RC-S380)で(NFC)Felica情報を読み取る! - KOKENSHAの技術ブログ
- Raspberry PiにNFCリーダを接続してSuicaを読み取る - Qiita
- RaspberryPiでNFCタグを使ってみる - uepon日々の備忘録
- RaspberryPi Zeroでサーボモータを動かす
- [後半](本当の)0からNFCでカギで操作するソフトを作る。
- 2014年【開発】FeliCaオートロック – falcon's diary
- Amazon - SG5010 デジタルサーボ - ラジコン・ドローン 通販
- Amazon - ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380 - ソニー(SONY) - 外付メモリカードリーダー 通販
-
部活として情技研には所属していたがほとんど顔を出していないので、世間でいうところの幽霊部員である。 大きな理由としては、部の多くを寮生が占めていたので輪に入りづらかったというのと、部活のスケジュールが寮生向けだったからであり、自宅で勉強した方が効率が良いと感じたからである。 ↩