どうも、CHASUKEです。
少し興味があって、外出先から自宅のリアルタイムな様子を確認できるようにラズパイを使った監視カメラ(IoTカメラ)を作ってみました。
ラズパイに手持ちのUSBカメラを接続して撮影した映像を、外出先からブラウザ経由で確認できるような仕組みのものです!!
なんか、すごーく難しそうに聞こえますが、NTTコミュニケーションズの「SkyWay」と言うサービスを利用することで、1時間もあれば作れちゃいました。これ凄い!!
ラズパイ側の設定はコチラに記載されており、参考にさせていただきました。
お子様や、高齢者、ペット、不審者などの監視用はもちろん、外の景色や、普段あまり行かない屋根裏部屋などに設置しておいても役立ちそうです^^
それでは、やっていきましょ。
SkyWayとは
SkyWayとは、
WebRTC(Web Real-Time Communication)技術をベースにNTTコミュニケーションズ社が必要なサーバー群を運用、SDKを提供することでビジネス運用も可能なリアルタイムコミュニケーション機能や多人数接続機能を提供するクラウドサービスのこと
つまり、WebRTC技術を使った映像通信するために必要なサーバー設置や設定などを全てSkyWayのサービスに任せられます。サービスを使うには、利用登録してAPIキーを取得すればOKです。
提供されるSDKは、Webブラウザ、iOS、Android、IoT機器向けの4種類で用意されています。今回はIoT機器向けの「IoT SDK(β版)」を利用しています。
しかも、無料で使えるサービスですので、試しやすいと思います!!
まずは完成したものから
例えば、自宅からの景色をいつでも見えるように、窓ガラスに貼り付けてみます。
ちょいと窓が汚いですが、ご容赦をw
ここで撮影している映像を、24時間いつでもリアルタイムに確認できます。
▼Chromeブラウザで確認してみると、
こんな感じで確認できます♪
SkyWayのSDKを利用することで、外出先からのアクセスも可能にしてくれます。海外旅行にいってる最中でも、自宅の様子を確認できます。(※しかし、残念ながらブラウザが対応していないためか、スマホからのアクセスができない..)
ここまでやるとセキュリティが心配になりますが、Q&Aに以下のようにあります。
WebRTCのP2P通信は全てSRTP, DTLSを用いて暗号化される為、盗聴等はできません。
映像通信するために必要なAPIキーさえ守られていれば、映像を他人にみられることはなく、安心できます。
ラズパイ×カメラの設定方法
今回は、処理能力が高いラズパイ3を利用しています。ラズパイZeroは処理性能的に厳しいと思います..
ちなみに、コンセントの都合などで電源確保できない場所では、2.4Aの給電が可能な13400mAhモバイルバッテリー「Cheero Power Plus3」がラズパイ3で利用できます。
WebRTCの設定
冒頭でも述べた通り、こちらの参考ページをそのまま実行していくだけです。
事前にSkyWayの利用登録が必要です。サインアップ画面から「Community Edition」に新規登録し、「APIキー」を取得します。
▼続いて、ラズパイに『IoT SDK』をインストールします。
$ curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/raspbian_stretch/installer.sh | sudo -E bash -
▼以下を入力し、プロンプトが返ってきたら、先ほど取得した「APIキー」を入力します。
$ ssg setup
続いて、WebRTC映像通信に必要な、「Janus gateway」と「SSG」のプロセスを起動します。ターミナルをそれぞれ複数開いて実行する必要があります。
▼Janus gateway
$ /opt/janus/bin/janus
▼SSG
$ ssg start
USBカメラの設定
今回は、USBカメラとしても利用できる「DBPOWER D104」を使いました。本来は小型ドライブレコーダーとして人気のある製品です。
https://chasuke.com/dbpower_d104/
▼USBケーブルでラズパイと接続して、デバイスが読み込まれていればOKです。
$ ls /dev/video*
/dev/video0
▼USBカメラの映像のストリームを生成
$ gst-launch-1.0 v4l2src device=/dev/video0 ! \
video/x-raw,width=640,height=480,framerate=30/1 ! \
videoscale ! videorate ! videoconvert ! timeoverlay ! \
omxh264enc target-bitrate=2000000 control-rate=variable ! \
h264parse ! rtph264pay config-interval=1 pt=96 ! \
udpsink host=127.0.0.1 port=5004
これで準備完了です。
サンプルページからカメラ映像を確認する前に、SkyWay設定ページから利用可能ドメインに「nttcom.github.io」を追加しておきましょう。これをしないとサンプルページで確認ができません。
▼サンプルページにアクセスし、左上「APIキー」を入力後、「start」ボタンを押して、映像が出力されることを確認してみましょう!!
左下にリアルタイムな映像が表示されれば成功です。
最後に
ラズパイとUSBカメラを使って、24時間リアルタイムで自宅の様子を確認できるIoTカメラを作ってみました。
▼部屋の隅っこに上手いこと設置できれば、部屋全体が見れて留守の間も安心ですね。
さすがに、これはフィルターなしでは見せられない..w
ラズパイ3を使ったセキュリティカメラ。試すのに1時間も要らないと思います。
ゴールデンウィークの暇つぶしに是非。
それではまた。