読者です 読者をやめる 読者になる 読者になる

Raspberry Pi で自宅監視システムをつくりはじめた

f:id:june29:20150927200526j:plain

外出時も自宅の様子を把握したい気持ちになったので、つくろうと思って行動を開始した。なんかそういうことはできるだろう、と思っていたものの、自分は完全にソフトウェアエンジニアなもので、ハードウェアのことはぜんぜんわからなくて、いろいろ調べるところからスタートした。

半日くらいいろいろと調べて、そのときにRaspberry Piとカメラモジュールとストレージサービスで連続撮影と動画作成 作業編を見つけて読んで、なるほど Raspberry Pi で実現できそうだな〜と感じてポチポチした。

f:id:june29:20150927202345p:plain

揃えたものはだいたい以下の通り。

Raspberry Pi 2 Model B (1)

Raspberry Pi 2 Model B (1)

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

調べている段階では「モニタとキーボードも用意しなきゃいけないのかな…?」という不安があったけれど、ネットワーク設定を済ませて MacBook から ssh でつないで作業する分にはモニタもキーボードも不要だとわかった。買わなくてよかった。

セットアップ

RaspberryPi - Raspberry Pi開封から無線LAN経由でSSH接続して初期設定するまでのマイ・ウェイ(モニタ・キーボード無し) - Qiita がめっちょ参考になった。感謝。

  • microSD に Raspbian のイメージをコピーする
    • 自分がダウンロードしたのは 2015-05-05-raspbian-wheezy.zip っていうファイルだった
    • 最初に SD Card Formatter っていうやつで microSD をフォーマットした
    • このコピーに数十分かかるので、Raspberry Pi を注文して届くのを待つ人は、先にイメージのコピーを済ませておくとよさそう
  • Raspberry Pi 本体にさっきの microSD を差して、とりあえず電源ケーブルと LAN ケーブルをつないで起動してみる
    • LanScan っていうツールを使って Raspberry Pi の IP アドレスを調べる
    • 調べた IP アドレスを指定して MacBook から ssh 接続する
    • このあと無線接続を安定させようと試みるも、ちょくちょく接続が切れてしまう問題を解消できず、ひとまず有線接続でガマンすることにして先に進む
  • カメラモジュールをつないで写真撮影を成功させる
    • カメラモジュールを物理的に接続して Raspberry Pi を再起動する
    • raspistill という、撮影コマンドをインストールする
    • 試しに raspistill を実行して画像ファイルを保存して、手元の MacBook に持ってきて中身を確認してみる
    • けっこう高解像度の写真が撮れていてびっくり〜〜〜
  • 最低限の開発環境を整える
    • bash の設定を整えたり
    • Ruby が動くようになればなんとかなるだろ〜と思って rbenv をインストールして最新の Ruby をインストールする
    • MacBook から ssh 接続して作業することが多くなるので tmux をインストールする

自宅監視システム、はじめの一歩

  • raspistill コマンドで写真を撮影する
  • 生成された画像ファイルを Amazon s3 にアップロードする

というような処理をする Ruby スクリプトを書いて cron でばんばん動かすようにした。s3 の bucket を見てみると…

f:id:june29:20150927205719p:plain

よしよし、勝手に写真がアップロードされてきているぞ〜。ここでは2分ごとに写真を撮ってアップロードするようにしてみた。

「はじめの一歩」としてはこんな感じかな〜。よくわからないまま「うまくできるといいな〜」と構えていたものの、いつもの LinuxRuby などの知識があれば動くものがつくれてしまって拍子抜けした。ハードウェアのことを気にしないでもいいくらいにモジュールが整っているということだ。また、ゆとってしまったな。

f:id:june29:20150927210220p:plain

簡単なビューワーもつくってみた。定点カメラということで、日の出の様子も感じられる。

得られた知見

  • Raspberry Pi はふつうに Linux を設定して使えたのですぐに馴染めた、ウェブ系プログラマにもやさしい感じがする
  • ソフトウェア面に比べて、やっぱりハードウェア面の知見が自分にはぜんぜんない、カメラや本体を部屋の中にどう固定したらいいのかわからなくて困る
  • 外出中も家の様子を把握できるの、想像していた以上に安心を得られてよい
    • 写っているものはもちろんのこと、部屋の蛍光灯の ON/OFF で奥さんの活動の様子も感じられたりする

今後の展望

  • 動画も撮りたい
  • ライブカメラもつくってみたい
  • 写真や動画を解析して動体検知して Slack に通知、とかやってみたい
  • 温度や湿度も測るようにして、IRKit と組み合わせて室温自動調整システムをつくってみたい

とりあえずハードウェアを固定したくて以下を注文した。

今はこんな感じで不恰好だからね、ハード的にもソフト的にも、楽しみながら手を加えながら運用していくぞい。

f:id:june29:20150927200532j:plain