camerasystem_setup_win - ETrobocon/etroboEV3 GitHub Wiki

カメラシステム構築手順

目次

Raspbian(ISOイメージファイル)をダウンロード

  1. 下記URLを開きます
    https://www.raspberrypi.org/downloads/raspbian/

  2. 「Raspbian Stretch Lite」の「Download ZIP」をクリックし、ダウンロードします
    RaspbianStretchLite_downloadPage

  3. ダウンロードしたZIPファイルを解凍します

ISOイメージファイルをmicroSDに書き込む

解凍したフォルダにあるISOイメージファイルをmicroSDに書き込みます。
ここではWin32DiskImagerを使った書き込み手順を説明します。
※Win32DiskImagerは下記URLからダウンロードできます。
https://sourceforge.net/projects/win32diskimager/

  1. Win32DiskImagerを起動します

  2. microSDにISOイメージファイルを書き込みます
    ①「Image File」にmicroSDに書き込むISOイメージファイルを指定します
    ②「Device」にmicroSDがマウントされているドライブを指定します
    ③「Write」をクリックします
    Win32DiskImager

  3. 警告が表示されたら、「YES」をクリックします
    Win32DiskImager_confirm

  4. 「Write Successful」と表示されたら、「OK」をクリックします
    Win32DiskImager_complete

Raspberry Pi3のSSH接続を有効化

  1. 書き込んだmicroSDを開き、ルートフォルダ直下に「ssh」フォルダを作成します

Raspberry Pi3を起動

  1. microSDをマウントします

  2. LANケーブルをルータに接続します
    ※接続したルータにPCも接続してください。PCを使ってRaspberry Pi3にSSH接続するために必要となります。

  3. microUSBを接続し、電源を入れます

Raspberry Pi3のIPアドレスの確認

  1. コマンドプロンプトを起動します

  2. 「arp -a | find "b8-27-eb"」を実行するとIPアドレスが表示されます
    下記の例では、IPアドレスが「192.168.1.8」となります

C:\>arp -a | find "b8-27-eb"
  192.168.1.8           b8-27-eb-d7-77-dc     動的

Raspberry Pi3にSSH接続

Raspberry Pi3にSSH接続します
ここではTera Termを使ったSSH接続手順を説明します
※Tera Termは下記URLからダウンロードできます。
https://ja.osdn.net/projects/ttssh2/releases/

  1. Tera Termを起動します

  2. Raspberry Pi3にSSH接続します
    ①「ホスト」にRaspberry Pi3のIPアドレスを指定します
    ②「サービス」に「SSH」を指定します
    ③「TCPポート」に「22」を指定します
    ④「SSHバージョン」に「SSH2」を指定します
    ⑤「プロトコル」に「UNSPEC」を指定します
    ⑥「OK」をクリックします
    TeraTerm_connect

  3. セキュリティ警告が表示されたら、「続行」をクリックします
    TeraTerm_SecurityWarning

  4. ユーザ名とパスワードを入力します
    ①「ユーザ名」に「pi」を指定します
    ②「パスフレーズ」に「raspberry」を指定します
    ③「OK」をクリックします
    TeraTerm_SshAuthentication

Raspberry Pi3の初期設定

  1. ロケールを日本語のUTF-8に設定します
$ sudo raspi-config nonint do_change_locale ja_JP.UTF-8
  1. タイムゾーンを東京に設定します
$ sudo raspi-config nonint do_change_timezone Asia/Tokyo
  1. キーボードの設定を変更します
$ sudo raspi-config nonint do_configure_keyboard jp
  1. システム領域を拡張します
$ sudo raspi-config --expand-rootfs
  1. 再起動します
$ sudo reboot
  1. 再度Raspberry Pi3にログインします

Raspberry Pi3にソフトウェアをインストール

  1. インストール可能なソフトウェアの一覧を更新します
$ sudo apt-get update
  1. ソフトウェアを最新バージョンに更新します
$ sudo apt-get -y dist-upgrade
  1. ソフトウェアをインストールします
$ sudo apt install -y vim fonts-noto git cmake libjpeg8-dev isc-dhcp-server

インストールするソフトウェアは下記の通りです

ソフトウェア 概要
vim テキストエディタ
fonts-noto Googleによって開発された日本語フォント
git 分散型バージョン管理システム
cmake ビルド自動化ツール
libjpeg8-dev JPEG ファイル 処理用ライブラリ
isc-dhcp-server DHCPサーバー

Raspberry Pi3にmjpg-streamerをインストール

  1. gitからmjpg-streamerをクローンします
$ cd /opt
$ sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
  1. mjpg-streamerをmakeします
$ cd mjpg-streamer/mjpg-streamer-experimental
$ sudo make
$ sudo make install

カメラ配信開始スクリプトを作成

  1. ホームディレクトリ配下に「startupOfmjpg_streamer.sh」を作成します
$ sudo vim ~/startupOfmjpg_streamer.sh
  1. 「startupOfmjpg_streamer.sh」に下記の内容を記述します
#!/bin/bash

PORT="80"
SIZE="1280x720"
FPS="15"
QUALITY="30"
MJPG_DIRECTORY=/opt/mjpg-streamer/mjpg-streamer-experimental/
MJPG_STREAMER=/opt/mjpg-streamer/mjpg-streamer-experimental/mjpg_streamer

sudo $MJPG_STREAMER \
         -i "$MJPG_DIRECTORY/input_uvc.so -f $FPS -r $SIZE -q $QUALITY -d /dev/video0 -y -n" \
         -o "$MJPG_DIRECTORY/output_http.so -w ./www -p $PORT" &
 
exit 0

カメラ配信停止スクリプトを作成

  1. ホームディレクトリ配下に「shutdownOfmjpg_streamer.sh」を作成します
$ sudo vim ~/shutdownOfmjpg_streamer.sh
  1. 「shutdownOfmjpg_streamer.sh」に下記の内容を記述します
#!/bin/bash

sudo kill -9 `ps -e | grep mjpg_streamer | awk '{print $1}'` 

exit 0

mjpg-streamer自動起動の設定

Raspberry Pi3起動時に自動でmjpg-streamerが開始されるように設定します

  1. /etc/rc.localを開きます
$ sudo vim /etc/rc.local
  1. exit 0 の前に「sh /home/pi/startupOfmjpg_streamer.sh &」を追記します
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

sh /home/pi/startupOfmjpg_streamer.sh &

exit 0

Raspberry Pi3のIPアドレスを固定

  1. /etc/dhcpcd.confを開きます
$ sudo vim /etc/dhcpcd.conf
  1. 最終行に下記を追記します
static ip_address=192.168.11.100/24

DHCPサーバーで割り振るIPアドレスの範囲を設定

  1. /etc/dhcp/dhcpd.confを開きます
$ sudo vim /etc/dhcp/dhcpd.conf
  1. 下記の2行をコメントアウト(先頭に#を挿入)します
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
  1. 下記の行をアンコメント(先頭#を削除)します
#authoritative;
  1. 最終行に下記を挿入します
subnet 192.168.11.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.11.101 192.168.11.254; # 割り当てるIPアドレスの範囲
}

DHCPサーバーで使用するインターフェースを指定

  1. /etc/default/isc-dhcp-serverを開きます
$ sudo vim /etc/default/isc-dhcp-server
  1. 下記の行をコメントアウト(先頭に#を挿入)します
INTERFACESv4=""
INTERFACESv6=""
  1. 最終行に下記を挿入します
INTERFACES="eth0"

DHCPサーバー自動起動の設定

Raspberry Pi3の起動時にDHCPサーバーが自動起動するように設定します

  1. DHCPサーバーが自動起動するように設定します
$ sudo systemctl enable isc-dhcp-server.service

カメラ配信開始

図のようにRaspberry Pi3を配線し、起動します
※スイッチングハブが手元にない場合、Raspberry Pi3とPCをLANケーブル(ストレートケーブル)で直接接続してください。
wiring_diagram

起動後、自動的にカメラ配信が開始されます

カメラ配信映像の確認

Google Chrome又はFirefoxを立ち上げ、下記URLにアクセスすることでカメラ配信映像を確認します

http://192.168.11.100/?action=stream