導入

klis14のしんさく (@lapis_zero09) | Twitterです.

この記事は,klis advent calendar 2016の23日目の記事です.

今日からクリスマス三連休ですね.

www.adventar.org

昨日は

本題

財布の膨らみ


突然ですがこれはなんでしょう.

f:id:lapis_zero09:20161218214236j:plain

そう筑波大生なら誰しもが持っている学生証ですね.

学生証の使い所は,身分証,筑波大附属図書館の入館・貸与証,コピー機での認証,各証明書・旅客運賃学生割引の発行などがあります.

人によってはあまり使わない機能もあるかもですね.

この機能を実現しているのは裏面のバーコードあるいは内蔵されているICチップです.

詳しく知りたい方はSony JapanのWebページ*1*2*3を御覧ください.

www.sony.co.jp

www.sony.co.jp

有益


せっかく財布に入れて持ち歩いているのですから,もっと有益に使いたいですね.

学生証のICチップはクレジットカードのように剥き出しなものではなく,完全に内蔵されているタイプであり,非接触型のICカードリーダを用いて内容を読み込むことができます.

非接触ICカードリーダには以下のようなものがあります.

www.sony.co.jp

このカードリーダとnfcpy*4を用いることで学生証のICチップを読み取ることができます.

Python module for near field communication — nfcpy latest documentation

nfcpyのインストールについては割愛します.

nfcpyのexampleであるtagtoolを用いて以下のように学生証のID,PMM,SYSを取得することができます.

f:id:lapis_zero09:20161218222559p:plain

IDは製造ID(IDm)のことで8バイトのバイト列です.上位2バイトの値が製造者コード,続く6バイトがカード識別番号です.

PMMは製造パラメータのことで,こちらも8バイトのバイト列です.これはカードの種別および性能を識別するためのパラ メータです.

SYSはシステムコードのことで,システムを特定するための2バイトの値です.

また,Type3とありますから学生証は「JIS X 6319-4」に準拠したソニーFeliCaをベースとしていると認識されています.

さらに,筑波大学の学生証は裏面にロゴがある通り,FCFフォーマット*5です.

ここ*6には,FCFキャンパスカードフォーマット仕様*7に準拠したものとありますね.

有効活用したい


klisの研究室の入室には学生証とは別のICカードが必要です.

どうせなら学生証で入れるようにしてほしいというのは誰しもが思うことですね.

いきなり研究室に設置するのは色々問題がありそうなので,筆者のマンションでデモを行います.

まず,先ほどのICカードリーダに加え,みんな大好きRaspberry Piとサーボを用意し,繋ぎます.

サーボはGWSサーボ MICRO/2BBMG/F(フタバ): サーボ 秋月電子通商 電子部品 ネット通販です.

サーボの操作はServoBlasterを用いて行うことができます.

nfcpyとカードリーダで取得したパラメータを照合し,合致すればサーボを回転させるというプログラムを適当に書きます.

www.instagram.com

これをドア鍵に設置することで学生証をかざすことでサーボでサムターン*8を回転させ,開閉することが可能です.さらには,10秒後には鍵が閉まるオートロック機能も付与しています.f:id:lapis_zero09:20161222214921j:plain

不要時には電圧がかからないので,本来の鍵を鍵穴に差し込み開錠・施錠も可能です.

www.instagram.com

懸念事項として,ドアからPaSoRi RC-S380が生えている御宅が少ないので住居を特定される可能性があります.

しかし,これはあまり問題にはなりません.

なぜなら,本来の目的は我が家の鍵を開閉することではなく,研究室の認証方式を変換することだからです.

数日後,B3の初ゼミが研究室で行われました.

f:id:lapis_zero09:20161222180422j:plainf:id:lapis_zero09:20161222180430j:plainf:id:lapis_zero09:20161222180441j:plain

明日はhimktさんです.期待しましょう.

参考

*1:"Sony Japan | FeliCa | 法人のお客様 | ダウンロード"."Sony Japan". http://www.sony.co.jp/Products/felica/business/tech-support/index.html

*2:"Sony Japan | FeliCa | FeliCaとは | FeliCaって何?"."Sony Japan".https://www.sony.co.jp/Products/felica/about/index.html

*3:"Sony Japan | FeliCa | NFCについて | NFCの定義"."Sony Japan".https://www.sony.co.jp/Products/felica/NFC/index.html

*4:"Python module for near field communication — nfcpy latest documentation".nfcpy.http://nfcpy.readthedocs.io

*5:"一般社団法人 FCF推進フォーラム".http://fcf.jp/index.html

*6:澤村 博道."情報科学類・CS専攻入退室管理システム".http://www.tech.tsukuba.ac.jp/2010/report/n14_report2010.pdf

*7:"FCFキャンパスカードとは"."一般社団法人 FCF推進フォーラム".http://fcf.jp/fcf12461125151253112497124731245912540124891239212399.html

*8:"図解 - 鍵の各部名称|鍵と防犯の用語集|住まいの防犯特集"."美和ロック株式会社".http://www.miwa-lock.co.jp/lock_day/glossary/lock/12.html