Raspberry Piで半自動稼働のデジタルサイネージを作る


<h1>■ はじめに </h1>
<h>初投稿です。<h/>
<h>職場の大学でデジタルサイネージをセッティングする機会があったので手順のメモを掲載します。<h/>

<dl>今回は、以下の様な条件でデジタルサイネージを制作しました。
 <dl>
 <dd> ・1週間の内5日(月〜金)のみ決まった時間に自動で起動/終了する。
 <dd> ・起動後、自動で映像がループ再生される。
 <dd> ・映像制作環境から直接映像を転送できる。
 <dd> ・管理端末と同じネットワークに接続されている事が前提
</dd>

<h1>■ 機材を用意する </h1>
 <dt>デジタルサイネージに必要な機材を用意します。 </dt>

<dl>
 <dt>RaspberryPi</dt>
 <dl>
 <dd><a href="https://www.switch-science.com/catalog/3880/">Raspberry Pi 3 B+ スターターキット</a> </dd> <dl>
<dd>作業用にキーボード、マウスがあると便利ですがサイネージ運用時には使用しません。</dd>

 </dl>
 <dt>HDMIケーブル</dt>
 <dd><a href="https://www.amazon.co.jp/gp/product/B014I8SSD0?pf_rd_r=ZSHS8E5BW043GAXVY58J&pf_rd_p=7392bae8-7129-4d1a-96a9-1cfe0aa13ab3">HDMIケーブル - 1.8m</a> </dd>
 <dt>モニター</dt>
 <dd><a href="https://www.amazon.co.jp/DMM-make-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4-DKS-4K55DG3-IPS%E3%83%91%E3%83%8D%E3%83%AB-HDMI2-0%E3%83%BBUSB%E3%83%BBVGA%E7%AB%AF%E5%AD%90/dp/B07T6NS1FS">DMM.make モニター ディスプレイ DKS-4K55DG3  </a> </dd>
<dd>今回は、FullHD(1920×1080)の映像を想定しています。</dd>
 <dt>コンセントタイマー</dt>
 <dd><a href="https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%99%E3%83%83%E3%82%AF%E3%82%B9-Revex-PT70DW-%E7%B0%A1%E5%8D%98%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC/dp/B00KOG37DW/ref=pd_aw_sbs_79_1/357-5071967-5028830?_encoding=UTF8&pd_rd_i=B00KOG37DW&pd_rd_r=0970bf05-7f6f-49bf-bb88-1e8db5f76646&pd_rd_w=wL0NH&pd_rd_wg=FKomD&pf_rd_p=bff3a3a6-0f6e-4187-bd60-25e75d4c1c8f&pf_rd_r=JQMMZV4AT93VJZCFDWGZ&psc=1&refRID=JQMMZV4AT93VJZCFDWGZ">Revex コンセント タイマー</a> </dd>


<h1>■ Raspberry Piの環境設定 </h1>
<h>**1. OSのセットアップ〜ネットワークの設定** <h/> 
<h>以下のサイトを参考にOSインストールとインターネットの接続を行なってください。<h/> 
 <dd><a href="https://qiita.com/Higemal/items/c817b96c3806f23b35f6">Raspberry Pi 3 Model B+の初回セットアップ（購入から起動まで）</a> </dd>

<h1>■ VNCを使用して管理PCと接続する </h1>

<h>**・RealVNCで遠隔操作、ファイル転送を行う準備 〜Raspberry Pi編〜** </h>
<h>Raspberry PiにインストールされているRealVNCを使用する準備をします。</h>
<h>左上のラズベリーパイアイコンをクリックして、設定 < RapberryPiの設定を選択します。</h>
<img width="1183" alt="02スクリーンショット 2020-05-21 20.20.10のコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/e76c25c7-0886-9ff1-3197-426acda8f4e6.png">

<h>インターフェースを選択してSSHとVNCを有効にしてOKを押します</h>
<img width="1175" alt="スクリーンショット 2020-05-21 20.20.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/9cc12460-6a4b-440c-822c-411178878ff9.png">

<h>メニューバーにVNCのアイコンが出ていればRaspberry Pi側の設定は終了です。</h>
<img width="178" alt="スクリーンショット 2020-05-21 20.20.31 2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/2afc2797-ff88-83eb-d0ea-2b6b9ee4a4ff.png">
VNCアイコンをクリックするとRaspberry PiのIPアドレスがチェックできます。

<h>**・RealVNCで遠隔操作、ファイル転送を行う準備 〜管理側PC編〜** </h>
<h>サイネージを管理するPC側の設定の準備を行います。</h>
<h>VNCでRaspberry Piを遠隔操作する為のアプリケーション "VNC Viewe"rをダウンロードします。</h>
<h>以下リンクからお使いのPCにあったVNC Vieweをダウンロードします。</h>

<a href="https://www.realvnc.com/en/connect/download/viewer/">VNC Viewer</a> 

<h>※本記事では、macOS High Sierra環境で解説していきます。</h>

<h>VNC VieweがインストールできたらRaspberry Piと同じネットワーク環境に設定の上、VNC Vieweを起動します。</h>

<h>VNC VieweのテキストボックスにRaspberry Piのホスト名かIPアドレスを入力します。</h>
<img width="894" alt="スクリーンショット 2020-05-22 9.32.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/29807f89-fced-9ee3-ab91-55eda23668a2.png">

<h>ホスト名を入力する場合の参考例(デフォルト)</h>

```
raspberrypi.local
```

<h>IPアドレスを入力する場合の参考例(デフォルト)</h>

```
192.168.11.3
```
<h>※ IPアドレスは、Raspberrypi側で確認してくだい。</h>

<dl>
<h>Identity Checkという画面が表示されますが気にせず、"Continue"を選択してください</h>
<dl>
<h>Username(pi)とPassword(raspberry)を入力して"OK"を選択</h>
<h>デフォルト設定の場合、Username(pi)とPassword(raspberry)となります。</h>

```
pi
```

```
raspberry
```

<h>Raspberrypiの画面が表示されたらPC上からRaspberrypiを遠隔操作できる様になります。</h>
<img width="1440" alt="スクリーンショット 2020-05-21 20.19.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/b7d1819d-c69d-263c-563c-b1225fff0e83.png">



<h1>■ 映像をRaspberrypiに転送する</h1>
<h>**1. 管理側PCにサイネージ用映像を用意します。**</h>
<h> 今回は、Adobe After EffectsCC2019で5分程度の映像を制作しました。</h>
<h> 設定内容は以下の通りです。</h>

|                  |                   |
|:-----------------|------------------:|
| ファイル形式        |        MPEG-4 File|
| 解像度            |       1920 × 1080 |
| フレームレート       |          29.97fps |
| コーデック          |         H.264、AAC |

<h>ファイル名は01.mp4 の様な簡単な名前にしましょう。日本語にする場合は、Raspberrypi側で正常に再生されない場合があります。</h>

<h>**2. VNC Vieweで管理側PCからRaspberryPiへ映像を転送します。**</h>

<h>VNC Vieweの画面中央上にマウスカーソルを持っていくとメニューから表Transfer Filesを選択します。</h>

<h>Sendfiles...を選択して管理側PCから再生する映像(01.mp4)を選択します。</h>
<h>Raspberrypi側の転送先は　`/home/pi/Desktop` です。(変更も可能)</h>

<h1>■ Raspberrypiで映像を起動時にループ再生させる</h1>
<h>Raspberrypi側で映像を再生する準備をします。今回はOmxplayerを使用します。</h>
<h>詳しいOmxplayerの使用方法は以下、リンクをご覧ください。</h>
<a href="https://intellectualcuriosity.hatenablog.com/entry/2017/04/04/193655">Raspberry PiのファイルマネージャーからOmxplayerで動画を再生する</a> 
 <dl>

<h>ターミナルで以下コマンドを入力してcrontabを編集します。</h>

```
crontab -e
```
<img width="521" alt="スクリーンショット 2020-05-20 20.41.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/26eb5897-775b-db36-f0a8-b4bc47463853.png">

<h>`# m h dom mon dow command`の次の行に以下コマンドを入力します。 </h>

```
@reboot omxplayer -o hdmi Desktop/filename.mp4 --loop --no-osd
```

<h>`filename.mp4`は再生するファイル名です。今回の場合は、`01.mp4`を指定します。</h>
<h>`--loop`でループ再生、`--no-osd`でSeekメッセージを非表示です。</h>

<h>`ctrl` (macからVNCの場合は、 `Command`) + `o`でcrontabに書き込みを行います。 </h>
<h>`ctrl`(macからVNCの場合は、 `Command`)+`x`でcrontabを終了します。</h>

<h1>■ Raspberrypiを指定時間にシャットダウンさせる</h1>

<h>再度、ターミナルで以下コマンドを入力して/etc/crontaを編集します。</h>

```
crontab -e
```

<h>先ほど入力した `@reboot omxplayer -o hdmi Desktop/filename.mp4 --loop --no-osd`の次の行に以下コマンドを入力します。 </h>

```
30 18 * * * sudo /sbin/shutdown -h now
```

<h>頭の`30 18`は任意のRaspberrypiをシャットダウンしたい時間を入力します。</h>
<h>今回は18時30分にシャットダウンする様に入力します。</h>
<img width="653" alt="スクリーンショット 2020-05-21 20.14.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/e23cf93d-165f-31fb-11d0-8d8ea7d2e020.png">

<h>`ctrl` (macからVNC場合は、 `Command`) + `o`でcrontabに書き込みを行います。 </h>
<h>`ctrl`(macからVNCの場合は、 `Command`)+`x`でcrontabを終了します。</h>

<h>これでRaspberrypiの設定は終了です。</h>
<dl>
<h>ここまでの設定で起動後、01.mp4の映像が自動でループ再生され指定時刻にシャットダウンし終了するようになりました。 </h>

<h1>■ 機材を設置する </h1>
<h>**1.機材を準備する。**</g>
<h>まずは、Raspberrypiから映像を映し出すモニターを用意しましょう。</h>
<dl>
<h>今回は、DMM.makeの4Kモニターディスプレイを縦画面で使用します。</h>
<dl>
<h>出力する機器は、HDMIの入力があると自動起動する機材を推奨します。</h>
<h>近年(2020年現在)のそれなりのお値段のモニター/プロジェクター等だとほとんどの機器にこの機能がついています。</h>
<dl>
<h>モニターディスプレイにRaspberrypiをHDMIケーブルで接続します。</h>
<dl>
<h>**2.Raspberrypiを起動させる為のスターターを組み込む**</h>
<h>次に電源を確保します。</h>
<h>今回は、Raspberrypiを起動させる為、Revexコンセントタイマーを使用します。</h>
<dl>
<h>※Raspberrypiで自動起動をさせる事も可能ですが別途、起動基盤が必要なのと起動基盤の値段が高額な為、安価なコンセントタイマーを推奨しています。</h>

<h>このRevex コンセントタイマーは決まった時刻に電源のON/OFFを制御する事ができます。</h>
<h>Revex コンセントタイマーの使用方法は以下マニュアルページをご覧下さい</h>

<a href="http://www.revex.jp/manuals/index/33"_blank">取扱説明書[取扱説明書　プログラムタイマー／エコタイマー]「リーベックス株式会社」</a> 

<h>今回は、1週間の内5日(月〜金)の8:50に起動して18:40に終了する設定を行います。</h>
<h>Revexの製品は電源のON/OFFを曜日ごとに細かく設定できるので便利です。</h>
<dl>
<h>以下の順番でコンセントを配線します。</h>
<h>電源コンセント(or延長電源コード) → Revex コンセントタイマー →Raspberrypi</h>
<h>DMM.makeモニターは自動起動するのでコンセントに直接繋ぎます。終了時は、モニターがスリープする様に設定します。</h>

![IMG_0637.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/75930e49-7ffe-4590-2ea9-979b15d4ddf3.jpeg)

<h>決まった時間に自動で起動/終了するようになりました。</h>
<h>これでデジタルサイネージは、ほぼ完成です。</h>

<h1>■ 映像を入れ替える </h1>
<h>デジタルサイネージを運用する際、映像の入れ替えなどが必要になる場合があります。</h>
<h>RealVNCを使用しているのでこの機能で入れ替えを行えるようにします。</h>

<h>今回のセッティングは、Raspberrypiと管理用PCが同じネットワーク上でRealVNCを使用する事を想定しています。</h>

<h>管理用PCでRaspberrypiを遠隔操作して01.mp4をゴミ箱に入れます。</h>
<h>■ 映像をRaspberrypiに転送する と同じ方法で映像をRaspberrypiに移動します。</h>
<h>データの転送が終了したら再起動を行い映像が更新されたか確認を行います。</h>


<h1>■ 完成 </h1>

<h>電源を入れて映像がループ再生され、指定時間に終了したら完成です。</h>

![IMG_0698.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277603/6412a101-bc64-c3b1-4b44-22c2003a77a6.jpeg)

<h1>■ まとめ </h1>
<h>機器に依存する部分がいくつかありますが1度設定すればRaspberrypiのみで運用できます。</h>
<h>最近ではRAM8GBのRaspberryPi4も発売されたので4K再生も現実的になってきています。</h>

<h1>■ 参考文献 </h1>

1. <a href="https://qiita.com/Higemal/items/c817b96c3806f23b35f6">Raspberry Pi 3 Model B+の初回セットアップ（購入から起動まで）</a> </dd>

2. <a href="https://jellyware.jp/kurage/raspi/vnc.html"_blank">VNCでPCからデスクトップ画面操作</a> 

3. <a href="https://intellectualcuriosity.hatenablog.com/entry/2017/04/04/193655">Raspberry PiのファイルマネージャーからOmxplayerで動画を再生する</a> 
 <dl>

4. <a href="https://qiita.com/yamamoto_masaki/items/4437864c54386309e5cf" target="_blank">raspiでデジタルサイネージ（omxplayerのseek表示を無くす編）</a> 

5. <a href="https://scrapbox.io/hysysk/Raspberry_Pi%E3%82%92%E6%98%A0%E5%83%8F%E5%86%8D%E7%94%9F%E6%A9%9F%E3%81%AB%E3%81%99%E3%82%8B"_blank">Raspberry Piを映像再生機にする</a> 

6. <a href="http://nomolk.hatenablog.com/entry/2018/05/10/222037"_blank">映像展示の再生デバイスとしてRaspberry Piを使うと最高（Raspbian Stretch版）</a>