#はじめに
RaspberrypiでLINE通知する簡易防犯カメラで書いた通り、動体検知のタイミングだけではなく、気になったときにいつでも撮影できるようにしたいと考えていた。
当初はオレンジ点線のようにLINEBot経由で撮影させる方法を考えていたのだが、2つ課題があることが分かった。
###①motionが常時ストリーミングしてカメラデバイスを占領しているため、rappistillコマンドを別プロセスで起動できない
sudo raspistill -w 480 -h 360 test.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates
raspistillコマンドを起動させるには、motionを一時停止させるか、別デバイスを追加する必要がある。
###②LINE Messaging APIで画像や動画を送信するには公開サーバにアップロードが必要
https://developers.line.biz/ja/reference/messaging-api/#wh-image
この2点を解決するにはカメラを追加したり、公開サーバを立てるなどの準備が必要で、今回の”簡易”防犯カメラの趣旨にはそぐわない・・・
ということで方針を変えて、RaspberryPi側に送られてきているストリーミング動画をインターネットから参照させる事にした。公開にはNgrokというトンネリングサービスを利用。
※後述の通り、インターネット公開すると(ベーシック認証をかけますが)URLが分かれば誰でもアクセスできるため、セキュリティに不安のある方はおすすめしません。私は屋外撮影なので気にしませんが室内撮影はやめたほうが良いかと。真面目にやるならWebサーバを立てるべきですが、そこまでやるなら世に出回っているセキュリティシステムを購入したほうが早いかと。
#準備するもの
・RaspberrypiでLINE通知する簡易防犯カメラで作成した環境
・Ngrokアカウント
#ゴール
RaspberryPiでmotionのストリーミング動画をインターネットから見る
#設定
motionストリームをlocalhost以外からも参照可能に変更し、basic認証を設定
# ストリームのLAN開放
stream_localhost off
# ストリーム参照時にBasic認証追加(value:1)
stream_auth_method 1
# ストリーム参照時の認証情報(id、パスワードは変更ください)
stream_authentication id:password
# ストリーム参照時のポート。任意に変更してください
strema_port 8085
motion再起動
sudo service motion restart
ngrokを常時起動プロセスとするためscreenをインストール
sudo apt-get install screen
screenを起動
screen
motion.confで設定したstream_portでngrokを起動
ngrok http 8085
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account ************** (Plan: Free)
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://********.ngrok.io -> http://localhost:8085
Forwarding https://********.ngrok.io -> http://localhost:8085
Connections ttl opn rt1 rt5 p50 p90
167 0 0.00 0.00 1.07 172.52
#結果
https://********.ngrok.ioからアクセスできるようになります。
basic認証を抜けると、インターネット上から参照できるようになりました。画像っぽいですが動画になっています。
ちなみに、以下のようにリクエストがログに残っていきます。
HTTP Requests
-------------
GET / 200 OK
GET / 200 OK
これで気になったときには家の様子を見られるようになりました。次はmotionのチューニングやraspberrypiの設置について書こうと思います。
#参考
ngrokの使い方
https://parashuto.com/rriver/tools/secure-tunneling-service-ngrok