アクアリウムをラズパイ&USBカメラでライブストリーミング part1

こんにちは。

久しぶりにアクアリウムの記事です。

この間、ついにラズパイ3をゲットしたので、
何かやってみようと思って色々試した記事第一弾です。

まずは非常に簡単なリアルタイムストリーミングから。

実現したこと

自宅の水槽の現在の状況を
世界中のどこからでも
リアルタイムに確認できるようにした

いいですねー。

これで会社にいながら、旅行をしながら、スポーツの合間に、
いつでもどこからでも水槽を愛でることができるようになりました。

Part1:まずは自宅内でブラウザから見れるように

ゴールにたどりつくためには、いくつかのステップを踏む必要があります。
今日はPart1ということで、自宅内から見れるようにしたいと思います。

大前提として、ラズパイにOSがインストールされている必要があるので、
まだ買ったばっかだよという方は下記のような記事を参考にOSを導入してください。

ラズベリーパイ3の使い方とOSセットアップ方法 | うしこlog

さて本題です。

まずは、自宅のWiFiからブラウザ経由でカメラの映像を確認できるようにしましょう。
ストリーミングには、mjpg-streamerというソフトウェアを使います。
また、カメラはLogicoolの一番安いやつでいいかなと思います。


お近くの家電量販店、もしくはAmazon,楽天などでゲットしてください。

ラズパイにUSBカメラを接続したうえで、ターミナルで下記の手順を実行してください。
※cat << EOF > start_server.shの部分は、
 #!/bin/shから末尾のEOFの下の行までをコピーして、
 ターミナルに貼り付けてください。

※コマンドをコピーするときは、行頭の$は除いてコピーしてください。

$ sudo apt-get update
$ sudo apt-get install -y subversion libjpeg-dev imagemagick
$ cd /opt/
$ sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
$ cd mjpg-streamer/
$ make
$ sudo make
$ echo $?
$ sudo make install
$ sudo cat << EOF > start_server.sh
#!/bin/sh

PORT="8080"
ID="admin"
PW="password"
SIZE="1280x960"
FRAMERATE="30"
MJPEGDIR=/opt/mjpg-streamer
export LD_LIBRARY_PATH=/usr/local/lib
$MJPEGDIR/mjpg_streamer \
    -i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" \
    -o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW"
EOF

$ sudo cat start_server.sh
$ sudo chmod +x start_server.sh

作業内容としては、

  • インストールされているソフトウェアの最新化
  • mjpg-streamerを導入するために必要なソフトウェアのインストー
  • mjpg-streamerのインストー
  • 起動スクリプトの作成

です。

上記の手順が完了したら、
ターミナルから下記のコマンドを実行してください。

$ sudo /opt/mjpg-streamer/start_server.sh

ターミナルに色々出てくると思います。

その後、ブラウザを開いて、
http://<ラズパイのIP>:8080/ にアクセスし、
id:admin,PASS:passwordを入力し、下記の画面が表示されたら成功です。

f:id:iryond:20170728122546p:plain

圧倒的Congratulations!

さて、画面左部のstreamというリンクをクリックすると、
ストリーミング動画が表示されます。
そこで、カメラの位置などを調整してください。
幸せな未来があなたを待ち受けています。

ということで、今日はここまでです。
ラズパイを使うと、こんなに簡単にライブストリーミングできることがわかりました。
可能性と夢が広がりまくっているので、
これからいろいろなことにチャレンジしたいと思います。

それでは。