ラズベリーパイで猫ちゃん監視システム – 設定法まとめ

ngrokという外部からlocalhostにアクセス可能にするツールを使用しておうちの猫ちゃん達を職場などで確認するシステムをRaspberrypi3で作りました。その後しばらく使用していなかったので再度開始しようとしたのですが、あれこれ設定のポイントが抜けていたため改めて設定法を書いておきます。

使用ハードウエア
  • Raspberrypi 3
  • USB camera iBaffulo  Web Camera BSWFD06M
使用ツール
  • OS RASPBIAN JESSIE WITH PIXEL
  • motion
  • ngrok
Motionの導入と設定

motionは以下の手順で導入

# sudo apt-get install motion

motionの設定

/etc/motion/motion.conf 

Daemonモード motionをDaemonとして起動するのか否かの設定 

# Start in daemon (background) mode and release terminal (default: off) 
daemon off

出力イメージサイズの設定 ここではカメラの設定の範囲内で自由に設定する。 

# Image width (pixels). Valid range: Camera dependent, default: 352 
width 352 

# Image height (pixels). Valid range: Camera dependent, default: 288 height 288

ビデオ出力をlocalhost以外でも許可する設定。ここではoffとする。

# Restrict stream connections to localhost only (default: on)
stream_localhost off

設定が終わったらmotionを起動します。
~ $ sudo motion

終了は ctrl + cで。

次に外部からlocalhostにアクセスするためのツールngrokの導入
ngrokのサイトにアクセスしてまずはsignupというリンクを使いユーザー登録します。その後downloadというリンクを押下しraspberrypiの場合はこのファイルをダウンロードし解凍します。ngrok-stable-linux-arm.zip

ユーザー登録することでauthtokenが発行されるので、先ほどngrokを解凍したディレクトリに配置すれば認証されます。

Install your authtoken
./ngrok authtoken 5bem19mF3K4A9g6t7wCeb_4cGny14DBVtx

さて外部公開するための最後の手順がhttpアクセスする場合のグローバルIPアドレスの取得です。コマンドラインで以下のように入力します。

~ $ ./ngrok http 8081
Session Status                online
Account                       hogehoge (Plan: Free)
Version                       2.1.18
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://XXXXXXX.ngrok.io -> localhost:8081
Forwarding                    https://XXXXXX.ngrok.io -> localhost:8081

Connections                   ttl     opn     rt1     rt5     p50     p90     
                              4       1       0.00    0.00    68.18   3063.20

HTTP Requests
-------------

GET /                          200 OK
GET /                          200 OK
GET /
GET /                          200 OK
GET /                          200 OK

上のForwarding以下に示されるURLをブラウザーの検索欄に打ち込むことでキャプチャーした映像にアクセスできます。

VNCサーバー
さてこのままではssh接続を切るとmotionは止まり、またngrokを介してのhttpアクセスも解除されストリーミングは終了してしまいます。そこでssh接続ではなくvnc接続でmotionの起動およびngrokのhttpアクセスのurl取得を行うことでそのvncヴューワを閉じてもmotionは起動され続けまたngrokを通じてのhttpアクセスもひき続き有効になります。vncサーバーとそのveiwerの設定は他のサイトの開設に任せます。私が使用したのはtightvncというツールです。

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください