LoginSignup
10
14

More than 3 years have passed since last update.

Raspberrypiでインターネットから見れる簡易防犯カメラ

Last updated at Posted at 2019-12-12

はじめに

RaspberrypiでLINE通知する簡易防犯カメラで書いた通り、動体検知のタイミングだけではなく、気になったときにいつでも撮影できるようにしたいと考えていた。

Raspberrypi簡易防犯カメラでLINE通知.jpg

当初はオレンジ点線のように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
image.png

この2点を解決するにはカメラを追加したり、公開サーバを立てるなどの準備が必要で、今回の”簡易”防犯カメラの趣旨にはそぐわない・・・

ということで方針を変えて、RaspberryPi側に送られてきているストリーミング動画をインターネットから参照させる事にした。公開にはNgrokというトンネリングサービスを利用。

image.png

※後述の通り、インターネット公開すると(ベーシック認証をかけますが)URLが分かれば誰でもアクセスできるため、セキュリティに不安のある方はおすすめしません。私は屋外撮影なので気にしませんが室内撮影はやめたほうが良いかと。真面目にやるならWebサーバを立てるべきですが、そこまでやるなら世に出回っているセキュリティシステムを購入したほうが早いかと。

準備するもの

RaspberrypiでLINE通知する簡易防犯カメラで作成した環境
Ngrokアカウント

ゴール

RaspberryPiでmotionのストリーミング動画をインターネットから見る

設定

motionストリームをlocalhost以外からも参照可能に変更し、basic認証を設定

/etc/motion/motion.conf
# ストリームの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認証を抜けると、インターネット上から参照できるようになりました。画像っぽいですが動画になっています。
ngrokスクリーンショット.jpg

ちなみに、以下のようにリクエストがログに残っていきます。

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

GET /                                 200 OK                                                                                                  
GET /                                 200 OK  

これで気になったときには家の様子を見られるようになりました。次はmotionのチューニングやraspberrypiの設置について書こうと思います。

参考

ngrokの使い方
https://parashuto.com/rriver/tools/secure-tunneling-service-ngrok

10
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14