10年ほど前からデジタルサイネージが見られるようになってきた。液晶モニターや機器が高価で導入も少なかった。昨今、ネットワークやITの普及により、列車内、駅構内、ショッピングモールや地下街などでデジタルサイネージを大幅に導入するケースも増えてきている。クラウドの浸透により、ネットワークを介したデジタルサイネージも広まりつつある。コンテンツもさることながらハードウエア構成、ネットワークなどプロの仕事の範疇になるため、大規模、高額が一般的であった
デジタルカメラとともにフォトフレーム端末も低価格で提供されている。デジタルTVの導入により、液晶TVの価格が一挙に安くなり、液晶TVやフォトフレームを利用した小規模のデジタルサイネージも広がりつつある。表示側からみると誰でもデジタルサイネージができる環境が揃ったといえるが、残念なことに日本のメーカーはスマートTVへの対応が全くできていない。LGなどはandroid搭載のスマートTVを出荷しているのにもかかわらず全く対応ができていない。 一方、通信会社はすべてandroidスティックを低価格で出荷し、コンテンツ配信で利益を生み出すことを試みている。TV会社やコンテンツ配信会社はインターネットでメディアを配信する体制がすでにできている。
一方、chromecast,android USBスティック,ardrino、raspberry piなどの超小型端末も販売され、HDMIケーブル一本でコンテンツを液晶TVに表示することが可能となってきており、簡単にスマートTVを構成することができる。液晶TVは単なるモニターになってしまった。
WEBでは一時FLASHが大流行し、動的なコンテンツが標準になった。しかし、IOSでのFLASH排除の意向を受け、時代はHTML5に移りつつある。 HTML5、WEBSOCKET,WEBRTCでブラウザがOSの変わりになり、HTML5,javascriptでアプリが作成できる環境が整っている
昨年からリリースされたraspberry Piは200万台の出荷を目前としている。パソコンンや携帯の出荷台数から比べると、非常に少ないと思われるが、OSすら搭載されていない機器として考えるとこの数は看過できない。注目することは、HDMI、有線LANが標準、OSがdebianでることである。USB周辺機器もパソコン用のものが転用できる。無線アダプタも難なく認識し利用できる。OSがlinuxのため、従来の標準技術が簡単に転用できる。ケーブル一本で液晶TVに接続できる。
つまり、いとも容易にコンテンツを表示できる低価格ハードと言える。
今までは、プレイヤー専用のアプリを作成していた。このアプリは、コンテンツ管理サーバと通信(HTTP、UDP)などで、コンテンツ取得、スケジュール取得を行っていた。取得した情報に基づき、URL、イメージ、動画などを表示していた。 機能を追加するには、当然アプリの修正が必要であった。
現在においては、機器、コンテンツ表示と通信に関して大きな変化が見られる まず機器であるが、android端末がたかだか1万円以内で手に入る。ここでアプリを作れば簡単にプレイヤーが作成できる。もう、windowsに依存する必要はない。 次に、コンテンツ表示であるが、HTML5により多彩なマルチメディアが表示できるようになった。 最後に、通信はブラウザがWEBSOCKETをサポートしたことにより、 サーバから情報プッシュが可能となった。いつも対応が遅れているIE11ではサポートされている まとめると、ブラウザの機能アップが顕著なため、ブラウザベースでプレイヤーを構築でき、専用のプレイヤーソフトが必要なくなったと言える。
プレイヤー=低価格端末+液晶TV+ブラウザ
raspberry PIにおいてフルスクリーンでブラウザが起動できれば、それでプレイヤーが構築できたということ! あとはコンテンツ管理サーバから情報をWEBSOCKETでプッシュするだけ
2 サイネージの基本構成
サイネージはコンテンツ、コンテンツ管理、プレイヤーから構成される。 コンテンツ作成に関しては、ここでは述べない。コンテンツはFLASH,、動画、静止画、文字、HTMLなどがある。HTML5が今後メジャーになる可能性がある。 コンテンツ管理は、コンテンツ自体の管理、スケジューリング、プレイヤー管理などを行う。 プレイヤーは、コンテンツ管理サーバからの配信やローカルコンテンツの表示をスケジューリングして液晶モニターに表示する。
3 サイネージ機能比較
|
商用 |
screenly |
今回のアプリ |
|
ループ再生 |
○ |
○ |
○ |
|
同期再生 |
○ |
○ |
○ |
|
スケジュール再生 |
○ |
○ |
○ |
|
ネットワーク更新 |
○ |
○ |
○ |
|
GPIO |
○ |
|
|
|
RS232C制御 |
○ |
|
|
|
Websocket制御 |
|
|
○ |
|
UDP制御 |
○ |
|
○ |
|
画面内同期 |
○ |
|
○ |
|
ライブテキスト |
○ |
|
○ |
|
GPS制御 |
○ |
|
|
|
IPカメラストリーミング |
○ |
|
|
|
ローカルコンテンツ再生 |
○ |
○ |
○ |
|
指定URL表示 |
○ |
○ |
○ |
|
イメージ再生 |
○ |
○ |
○ |
|
音声再生 |
○ |
○ |
○ |
|
ファイルアップロード |
○ |
○ |
○ |
|
インタラクティブ |
○ |
|
|
|
複数プレイヤー同期 |
○ |
|
|
|
スケジュール電源制御 WOL シャットダウン |
○ |
|
|
|
|
|
|
|
|
4 サイネージの利用例
駅構内などでの大規模システム 札幌駅、博多駅などが有名です
中規模
小規模
フォトフレームを利用した商品棚のサイネージ
5 素人がコンテンツを作るには
なんとWORD、EXCEL、パワーポイントで簡単に作れるのです。 WORDでIPHONEの画面を作った人がいます。http://www.youtube.com/watch?v=RZp7BvQJnU8なんと素晴らしい これらのソフトは作成したものを画像で保存できます。これ簡単に画像コンテンツが作れます 作成する画像のサイズにより、ページ設定を行う必要があります 例Powepoint 作成する画像サイズが1920x1080のとき 1920/96*25.4= 1080/96/25.5= このサイズでページを設定して、画像で保存します
6 screenly OSE
ブラウザKIOSK midori,chrome,uszk
6.1 screenly概要 準備 • A Raspberry Pi (Model B). • An SD Card (>4GB). Class 10 is highly recommended. • An HDMI-cable. • A network connection (with DHCP). ルータがあればいい 有線LAN • A keyboard (only required for the installation). • A monitor/TV that can view full HD (and has HDMI input) SDイメージが提供されているのでイメージを使用する。 サポートされるコンテンツ ・ビデオ ・イメージ ・WEBページ 利用ケース • Display BI or server dashboards • Advertisements (in-store or in store-front) • Internal information boards • Fancy photo-frame コンテンツ大きさ images and web-pages will be rendered in 1920x1080 WEBコンテンツ管理画面 制限 The limitation with Screenly OSE is that it was designed for a stand-alone setup. If all you need is to setup a single screen カスタマイズ 有線LANが標準なので、無線LANに対応できるようにする ハードプラットフォーム 無線LANで使用できるようにする sudo nano /etc/network/interfaces In the nano text editor, you’ll see something like this: auto lo iface lo inet loopback iface eth0 inet dhcp That’s the very basic configuration that governs your Pi’s Ethernet connect (indicated by the eth0 portion). We need to add on a very minor bit to enable the Wi-Fi dongle. Use the arrow keys to move down below the existing entry and add the following lines: allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp Once you’ve annotated the file, press CTRL+X to save the file and exit the nano editor. At the prompt again, enter the following command: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf Compare the contents of the file, if it exists, to the following code. If the file is empty, you can use this code to populate it. Take note of the commented lines (indicated by the # marks) to reference which variable you should use based on your current Wi-Fi node configuration. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YOURSSID" psk="YOURPASSWORD" # Protocol type can be: RSN (for WP2) and WPA (for WPA1) proto=WPA # Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise) key_mgmt=WPA-PSK # Pairwise can be CCMP or TKIP (for WPA2 or WPA1) pairwise=TKIP #Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP) auth_alg=OPEN } OS設定 デスクトップ起動 自動ログイン スリープ停止 簡易プレイヤー ブラウザ midoriやchromeをフルスクリーンでURLを表示するものがある。 固定なURLを表示するわけである。 ローカルなスライドショーやコンテンツサーバのURLを入れればいい 設定は ・ ・ブラウザ kioskモード
7 デジタルサイネージ開発案
7.1 ケース(1)pythonアプリからブラウザをコントロール、UDPコマンドによりコンテンツを動的更新 ブラウザをベースにコンテンツ表示を行う。 UDPコマンドによりコンテンツを切り替える ファイルアップロードをサポートし、ローカルコンテンツを更新できる ローカルコンテンツでイメージスライドショーをサポートする ローカルコンテンツにオンデマンドでメッセージ表示機能を提供する pythonを利用して開発を行う。 ・ 通信 udpコマンド受信 HTTP制御 WEBサーバ コマンド処理 コンテンツ管理 データアップロード スケジュール管理 ・ ブラウザコントロール HTMLテンプレート サウンド URL表示 7.2 ケース(2) プラウザベースでwebsocketにより動的更新 機器はraspberry piを使用するが、Windowsでも問題ない。IE11ではwebsocketをサポートしている。chromeならkioskモードで起動すればフルスクリーンなる 配信制御にwebsocketサーバをpythonで書かれたtornadoを利用する インストールは簡単、 ・pythonインストール ・tornadoをコピー ・アプリ作成 プレイヤー ブラウザをフルスクリーンで表示する 初期URLはwebsocketサーバのURLとする index.html javascript アプリ サーバからプッシュされた情報に基づきiframeを更新する コンテンツロード時の空白表示を避けるため,iframeを2個用意し、ロード完了ラグを考慮して切り替える kiosk on windows"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk http://websocketserver:8888kiosk on raspberry pi 1. Install chromium, x11-xserver-utils and uncluttersudo apt-get update && apt-get upgrade -y sudo apt-get install chromium x11-xserver-utils unclutter2. We need to prevent screen from going blank and disable screen saver. - edit /etc/xdg/lxsession/LXDE/autostart and comment # screen saver line and add those lines:@xset s off @xset -dpms @xset s noblank @chromium --kiosk --incognito http:// websocketserver:8888参考URLhttp://nantoak.asablo.jp/blog/2013/03/07/6740018 http://blog.takeda-soft.jp/blog/show/412 http://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi-into-a-fullscreen-browser-kiosk/ http://pikiosk.tumblr.com/ http://www.pricelessgeek.com/2013/08/ultimate-how-to-raspberry-pi-web-kiosk.html#.UoioNsS-2Sowebsocketサーバ 端末リストの読み取り このリストにはMACアドレスと、コンテンツIDの関連付けが記載されている この情報をもとに、端末別にプッシュが可能となる 例# define joblist for ipaddress # # def definejob(ipjob): ipjob["192.168.11.6"]="issue,joblist" ipjob["192.168.11.22"]="joblist " ipjob["192.168.11.23"]="joblist" ipjob["00:00:00:00:00:00"]="issue,joblist"初期処理 端末からの接続リクエストを受け付ける 端末のIPアドレス,MACアドレスを登録する オープニング画面の送信 コンテンツプッシュAPIの受付 コンテンツ制御端末からのリクエストAPIを受け付ける APIはコンテンツID(端末リストに記載)とURLを受け付ける プッシュリクエストを受け付け、コンテンツIDが接続中の端末に一致したら、プッシュを行う 例http://127.0.0.1:8888/api?id=test&value=http://192.168.11.17