学生証で行う入退室管理システム【概要】

# はじめに
近畿大学ロボット研究会の部室で、Felica(学生証)を使用した入退室管理システムを作成しました。部室内にある限られた備品を使用してシステムを構築しました。

※GitHubに関連コードをまとめてアップロードする予定です（準備中）。

# 使用した環境
### PC
部室にあった古い32ビットのパソコンを使用し、Raspberry Pi OSをインストールしました。

### NFCリーダー
中古で安く購入したsonyのRC-S370を使っています。ただ、クセモノの型番なので避けたほうがいいです。代わりにRC-S380などネットに情報がより豊富なモデルを選ぶことをおすすめします。

### 音声機器
パソコンと接続できればなんでも大丈夫です。


# 与件
部室の開閉状況を確認し、鍵の取得を効率化することから始めました。

### 立地の課題
部室の鍵を管理する守衛室、活動する部室、授業を受ける建物、どれも離れた場所にあります。
そのため、今部室が開いている状態なのか事前に知り、無駄に鍵を取りに行く時間を無くしたいという要求がありました。

### 活動時間の柔軟性
部員の授業スケジュールがバラバラであり、活動時間も自由にしています。そのため、担当者を指定して鍵の管理することが難しく、鍵が今どこにあるのか把握することが困難でした。

さらに、自由な活動時間が裏目に出て、ロボット作成に興味を持っているが、スキルがなくて活動に踏み込めない部員がモチベーションを維持できないという課題もありました。

### COVID-19の影響
COVID‑19の影響もあり、部室に来た人のログを取る必要性や、部室の人数を管理しなくてはいけないという要件もありました。

# 組み込みたい機能
`今部室が開いているのかを知り無駄に鍵を取りに行く必要をなくしたい`
→部室に入ったタイミングで部員で共有しているSNSにリアルタイムでお知らせする

`活動時間バラバラで、鍵の状態の把握が難しい`
→「誰が」鍵を取り扱ったかを把握できるようにする

`部室に来た人のログを取る必要性`
→SNSに送信したものがそのままログになる

`部室の人数を管理`
→入退室を記録してカウントする

`ちょっとロボット作成やってみたい層がモチベーションを保てない`
→活動時間を記録する、活動が楽しくなる仕掛けをつくる

はじめにあげた課題と部員の声を混ぜて以上のようなことを考えながら実装しました。

# システムの全体像
構成要素と情報の流れを以下に示します。
![Screenshot 2023-05-13 at 17.49.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346908/737cda22-1a8d-f469-253f-b78d1f01215d.png)
カードリーダーから読み取った学籍番号をもとに、入退室状態を確認して、スピーカーやディスプレイ、discordに必要な情報を送るようになっています。

### 部室のようす
![PXL_20230518_045709089.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346908/a48a668c-0eb0-6567-808c-3396755b753c.jpeg)
部室は上の写真のようになっています。
「タッチしろ！」と書かれたところにカードリーダーとスピーカーがあります。
画面に表示されているのがアスキーアートです。
　　
　　


<iframe width="560" height="315" src="https://www.youtube.com/embed/0D0_Au_l48k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
アスキーアートは、カードがタッチされるとこんな感じに表示されます。

　　
　　

<iframe width="560" height="315" src="https://www.youtube.com/embed/5qL3k0K_MPc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
別角度からみるとこんな感じで、入退室のタイミングでアスキーアートが見れるようになっています。

### discordのようす
カードがタッチされると以下の動画のようにdiscordのチャンネル内にメッセージが送信されます。これを見れば部室内の人数や誰がいるのかというのがわかるようになっています。（実際には部員の名前が表示されるようになっており、動画内のデモは仮の名前を用いています）
<iframe width="560" height="315" src="https://www.youtube.com/embed/oPy740TgO-8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

# 拡張性
学生証をタッチしたときに、最初の一人目だと電気がつく、最後の一人だと電気が消える仕組みに拡張できました！

<iframe width="523" height="929" src="https://www.youtube.com/embed/XedxYF_UYmQ" title="入退室タッチ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


https://qiita.com/keigo1110/items/00b9d5eecae0e5ba45da

# 副産物
COVID-19の影響によって、組み込んだ機能の「誰がいるのか」や「部室にいる人数」というのが、現在は思わぬ方向に役立っています。また、アスキーアートや音声といった開発中の遊び心も効果的にはたらいています。

### 対話の促進
先輩に少し相談したいけど、LINEとかで予定合わせていると時間がかかります。それに、ちょっと躊躇や遠慮してしまうこともあります。でも、部室にいるかどうかがわかれば、すぐに、気軽に話を聞きに行けます。時間のすり合わせの手間が省けるので、対話が生まれやすくなりました。また先輩や後輩に限らず、他のプロジェクトが気になった時に、気軽に交わし合うことができるようになりました。

### モチベーションが高まる
入室したら「こんにちは」、退室のときは「おつかれさまです」（時間が短いと「あれれ〜もう帰っちゃうの？」と言われる）と音が流れ、機械の音声ではあるもののモチベーションを刺激してくれます。
また、ランダムでアスキーアートがでてくるので、タッチするたびに何がでるか楽しみになり、部室に来る小さな楽しみも生みだすことができました。


# まとめ
入退室システムによって、鍵の管理が便利になったことはもちろん、活動に活気がでるようにもなりました。


具体的なプログラム公開しました！

https://qiita.com/keigo1110/items/1ab595b48bd03734069b