電子工作
IoT
アイホン

アイ〇ンのプロトコルの話

More than 3 years have passed since last update.

ねとけん Advent Calendar 2015 の 24日の記事です.一応ガジェットネタです.

プロローグ

 コンビニに行って,家に戻るとマンションのエントランスで家の鍵を持っていないことに気付きます.鍵は家の中=部屋の鍵は開いている,ということなのですが,マンションのエントランスにあるこいつが通行を阻みます.

aiphone01.jpg

 こいつです.拡大します.

aiphone02.jpg

 アイ○ンです.色々なところで見かけます.

 こんなとき,フィクションの世界なら,凄腕のハッカーが現れて怪しいカードをスリットに挿しこみ,接続された端末に謎の文字列がしばらく流れたあと,めでたくドアが開くのですが,残念ながら都合よくそんなハッカーが現れないし,そもそもカードを挿すスリットもありません.また,多くの場合,管理会社や不動産会社が使う番号が設定されていたりするのですが,不正アクセス禁止法とか色々面倒な世の中なのでおとなしく退散します.そして周りの目を気にしながらフェンスによじ登り非常階段から2階に上がりエレベータに乗る日々を送っています.

注意: 上記はフィクションです

宣伝

 第7開発セクション から出る「ななかInside PRESS vol.8」に書いた内容の再利用です.2015/12/31(木) 3日目 東4ホール ム-38ab です.よろしくお願いします.ここでは端折っている部分ももう少し詳しく書いてあります.逆にこちらにしか書いてない部分もあるので合わせて読んで頂ければと思います.

変調方式を確認

 エントランスで怪しいことやっていると迷惑(というか通報されそう)になるので部屋にある室内の端末の挙動から観察します.

 室内の端末は「通話/終話」ボタンを手前に引くとネジがあるので,それを回せば簡単に開きます.あとは,パネルの裏に配線の説明が書いてあるので「データ」と書いてある2本の線があるので探しだして流れている信号を観察してみます.下の画像の画面では振幅が見えていますが実際には周波数で変調されています.

IMAG0052.jpg

データ

 ごく普通のシリアル通信を周波数変調したものです.

  • 差動信号.±5V?
  • 変調周波数 50~70kHz
  • 1200bps, スタートビット0, データ8ビット, 偶数パリティ, LSBから

映像/音声

  • NTSCのようなもの
  • そのまま再生できそうな信号が流れてますが,確認はしてないです

プロトコル

[メッセージタイプ], [部屋番号], [データ...],[チェックサム] という共通のフォーマットでデータを送受信しています.

+--------------+----------+--------------------------+--------------+
| Message Type | Room No. |  Data                    | Check Sum    |
|  1B          |  1B      |   0...NB                 |  1B          |
+--------------+----------+--------------------------+--------------+

Message Type

メッセージ先頭の8ビット.

Type 方向 説明
40h エントランス→部屋 リクエスト/レスポンス
c0h エントランス←部屋 リクエスト/レスポンス
50h エントランス→部屋 ACK (Dataは無し)
d0h エントランス←部屋 ACK (Dataは無し)

おそらくMSB1ビットは部屋の端末から送られたときに1になります.

Room No.

 下位4ビットが階数,上位4ビットにその階の番号が入っていました.階ごとの部屋数など構成によって違うと思います.

Data

 0 バイト以上のデータです.

Data 送信元 説明
68 エントランス PING(?)
69 21 室内端末 PONG(?)
87 03 XX XX XX 室内端末 不明.端末ON時等
81 00 室内端末 不明
1C 室内端末 端末OFF時
05 C0 エントランス 呼び出し
45 8F 室内端末 通話開始
45 8C 室内端末 解錠.ドアが開きます
45 0F 室内端末 終話
00 エントランス 切断.終話orタイムアウト

 まだ良くわからないものも多いです.宅配ボックスもつながってるみたいですが,テストしにくいので未調査です.

メモ: データ長は1バイト目の下位2ビットと相関がありそうです.

Check Sum

チェックサムを含めたメッセージ全体のバイトごとの和をとると,下位8ビットが0になります.

受信回路

 オシロで眺めるのは限界があるので,適当なマイコンでデータを取り込みます.アナログ回路は素人ですが,基盤を眺めつつ学校で習った気がするRLC回路の知識でなんとかします.必要な信号を取り出せたら,あとはコンパレータで比較してソフトウェアで処理します.デジタルな世界まで来れば安心して色々できます.

circuit.png

 送信側は作ってないです.変な信号送るの危なそうなので,端末の回路をそのまま使っています.

ファイル置き場: https://github.com/binzume/door-keeper/blob/master/AiphoneCtrl

注意

  • 自己の責任の範囲内でやってください
  • 賃貸の部屋のインターホンの場合は壊さないように注意...というより触らないのが無難です
  • 他の部屋のデータも同じ線に流れてるようなのでそのへんはノータッチにしましょう
  • 火災報知器とかも万が一の時は生命に関わるので触らないように

最後に

 21世紀に物理キー持ち歩いてるのに違和感あるのと,インターホンとドアの鍵くらいはスマホから履歴見たり操作できるのが普通だと思っていたのですが中々世の中は変わらないですね.というわけで5年前に着手して放置してたネタを再開するついでにまとめました.家の鍵などもスマホから操作できるようにするのも試してるのでそっちもいつか書きます.あと,ななかInside PRESS vol.8を買って読んでいただけると嬉しいです.