概要
パナソニックのインターホン VL-SWD700KL、発売から8年ほど経った少し古めの製品ですが、屋外子機のカメラの映像を屋内親機の画面で確認しながら来訪者への対応ができます。これまでも十分便利に使っていたのですが、つい最近ふとしたきっかけで、屋内親機に挿したSDカードで来訪者の映像を録画できることに気付いてしまいました。というわけで、今更ではありますが、無線LAN搭載SDカード「FlashAir」でIoT化して、誰かがピンポンを押したらLINE通知されるようにしてみました。
ちなみに、この「FlashAir」、製造・販売元の東芝メモリが FlashAir Developers というサイトを通じて開発者向けの技術情報を積極的に公開しています。デジカメからスマホに画像を転送するというオーソドックスな使い方の枠を超えて、SDカードスロットを搭載した様々な機器の無線化・IoTデバイス化に活用でき、週末プログラミングでも大活躍中。(もちろん、ビジネス領域でも活用されているようです)
方針
件のインターホン VL-SWD700KL では、ピンポンが押されるたびに、屋内親機のスロットに挿した FlashAir に来訪者の映像データが記録されます。そこで、これを FlashAir 上のプログラム( Lua スクリプト)で監視し、新たな映像データの記録を検知したら、映像データをDropboxへアップしつつIFTTT経由でLINEに通知することにします。
ざっと方針をまとめると以下の通り。
- FlashAir はステーション(STA)モードに設定し、アクセスポイント経由でインターネットに常時接続
- FlashAirへの通電時に実行されるスクリプト(LUA_RUN_SCRIPT)
- SDカード内に記録されている録画データのうち、最新のものを検索
- 検索された最新録画データの情報を共有メモリに格納
- FlashAirへのデータ書き込み時に実行されるスクリプト(LUA_SD_EVENT)
- 書き込まれた録画データが共有メモリに格納されたものより新しいかどうかをチェック
- 新しかった場合、録画データをDropboxへアップロードして共有リンクをIFTTT経由でLINEに通知
- Dropboxへのアップロードは Dropbox API v2 の /files/upload を利用
- 共有リンクの作成は Dropbox API v2 の /sharing/create_shared_link_with_settings を利用
- IFTTTを経由したLINEへの通知には IFTTT Maker Webhooks を利用
- 書き込まれた録画データの情報を共有メモリに格納。
コード
FlashAir 上で動作する Lua スクリプトを以下に置いておきます。
GitHub - nikotan/DoorPhoneMonitor
感想
FlashAir での開発はデバッグにかなり手こずりましたが、動き出してからは安定して動き続けてくれてます。留守宅への誰かの来訪が録画データ付きでLINEに通知され、なかなか便利です。
参考
FlashAir を使った開発全般、Dropbox や IFTTT との連携などについては、以下記事を参考にしました。