2015年5月16日土曜日

サイネージ端末としてのraspberry pi ( dashing ) 〜インストール〜

raspberry pi 2にDashingというソフトウエアをインストールしてみました。
Dashingは、Shopifyという会社が公開しているオープンソースのソフトウエアで、rubyのgemという形式で配布されています。"The exceptionally handsome dashboard framework."ということで、様々な情報を一画面で表示するダッシュボードを作ることができるソフトウエアです。公式サイトによると、

・Dashingは、Sinatraベースで美しいダッシュボードを作ることができるフレームワーク
・すでに用意されたウィジットを使うこともできるし、自分でscss, html, coffeescriptを使ってウィジットを作ることができる
・APIを使ってダッシュボードにデータをプッシュ、もしくはruby DSLを使ってデータをフェッチできる
・Drag&Dropでウィジットを再配置できる
・Herokuに30秒でデプロイできる

というところが特徴だそうです。

1080pでの表示に対応しており、raspberry piにもインストールできるようなので、大画面テレビをサイネージ端末とするのに使えそうです。

一応公式サイトにもインストール手順が記載されていますが、以下の記事にraspberry piでdashingを使う際の手順が記載されていましたので、これを参考にセットアップを実行しました。

https://dyscribe.com/tutorial/dashing-dashboard-on-raspberry-pi/


■必要なパッケージのインストール
pi@raspberrypi ~ $ sudo apt-get install libssl-dev 
pi@raspberrypi ~ $ sudo apt-get install ruby-dev
pi@raspberrypi ~ $ sudo apt-get install nodejs
pi@raspberrypi ~ $ sudo apt-get install bundler
pi@raspberrypi ~ $ sudo apt-get install rubygems

■dashingをインストール
pi@raspberrypi ~ $ sudo gem install dashing
Fetching: sass-3.2.19.gem (100%)
Fetching: coffee-script-source-1.9.1.1.gem (100%)
Fetching: execjs-2.0.2.gem (100%)
Fetching: coffee-script-2.2.0.gem (100%)
Fetching: rack-1.5.2.gem (100%)
Fetching: tilt-1.4.1.gem (100%)
Fetching: rack-protection-1.5.3.gem (100%)
Fetching: sinatra-1.4.6.gem (100%)
Fetching: backports-3.6.4.gem (100%)
Fetching: rack-test-0.6.3.gem (100%)
Fetching: multi_json-1.11.0.gem (100%)
Fetching: sinatra-contrib-1.4.2.gem (100%)
Fetching: eventmachine-1.0.7.gem (100%)
Building native extensions.  This could take a while...
Fetching: daemons-1.2.2.gem (100%)
Fetching: thin-1.6.3.gem (100%)
Building native extensions.  This could take a while...
Fetching: thread_safe-0.3.5.gem (100%)
Fetching: tzinfo-1.2.2.gem (100%)
Fetching: rufus-scheduler-2.0.24.gem (100%)
Fetching: thor-0.18.1.gem (100%)
Fetching: hike-1.2.3.gem (100%)
Fetching: sprockets-2.10.2.gem (100%)
Fetching: dashing-1.3.4.gem (100%)
Successfully installed sass-3.2.19
Successfully installed coffee-script-source-1.9.1.1
Successfully installed execjs-2.0.2
Successfully installed coffee-script-2.2.0
Successfully installed rack-1.5.2
Successfully installed tilt-1.4.1
Successfully installed rack-protection-1.5.3
Successfully installed sinatra-1.4.6
Successfully installed backports-3.6.4
Successfully installed rack-test-0.6.3
Successfully installed multi_json-1.11.0
Successfully installed sinatra-contrib-1.4.2
Successfully installed eventmachine-1.0.7
Successfully installed daemons-1.2.2
Successfully installed thin-1.6.3
Successfully installed thread_safe-0.3.5
Successfully installed tzinfo-1.2.2
Successfully installed rufus-scheduler-2.0.24
Successfully installed thor-0.18.1
Successfully installed hike-1.2.3
Successfully installed sprockets-2.10.2
Successfully installed dashing-1.3.4
22 gems installed
Installing ri documentation for sass-3.2.19...
Installing ri documentation for coffee-script-source-1.9.1.1...
Installing ri documentation for execjs-2.0.2...
Installing ri documentation for coffee-script-2.2.0...
Installing ri documentation for rack-1.5.2...
Installing ri documentation for tilt-1.4.1...
Installing ri documentation for rack-protection-1.5.3...
Installing ri documentation for sinatra-1.4.6...
Installing ri documentation for backports-3.6.4...
Installing ri documentation for rack-test-0.6.3...
Installing ri documentation for multi_json-1.11.0...
Installing ri documentation for sinatra-contrib-1.4.2...
Installing ri documentation for eventmachine-1.0.7...
Installing ri documentation for daemons-1.2.2...
Installing ri documentation for thin-1.6.3...
Installing ri documentation for thread_safe-0.3.5...
Installing ri documentation for tzinfo-1.2.2...
Installing ri documentation for rufus-scheduler-2.0.24...
Installing ri documentation for thor-0.18.1...
Installing ri documentation for hike-1.2.3...
Installing ri documentation for sprockets-2.10.2...
Installing ri documentation for dashing-1.3.4...
Installing RDoc documentation for sass-3.2.19...
Installing RDoc documentation for coffee-script-source-1.9.1.1...
Installing RDoc documentation for execjs-2.0.2...
Installing RDoc documentation for coffee-script-2.2.0...
Installing RDoc documentation for rack-1.5.2...
Installing RDoc documentation for tilt-1.4.1...
Installing RDoc documentation for rack-protection-1.5.3...
Installing RDoc documentation for sinatra-1.4.6...
Installing RDoc documentation for backports-3.6.4...
Installing RDoc documentation for rack-test-0.6.3...
Installing RDoc documentation for multi_json-1.11.0...
Installing RDoc documentation for sinatra-contrib-1.4.2...
Installing RDoc documentation for eventmachine-1.0.7...
Installing RDoc documentation for daemons-1.2.2...
Installing RDoc documentation for thin-1.6.3...
Installing RDoc documentation for thread_safe-0.3.5...
Installing RDoc documentation for tzinfo-1.2.2...
Installing RDoc documentation for rufus-scheduler-2.0.24...
Installing RDoc documentation for thor-0.18.1...
Installing RDoc documentation for hike-1.2.3...
Installing RDoc documentation for sprockets-2.10.2...
Installing RDoc documentation for dashing-1.3.4...

ここまででインストールは完了です。

■dashingの基本設定ファイルの生成
pi@raspberrypi ~ $ dashing new dashboard
pi@raspberrypi ~ $ cd dashboard
pi@raspberrypi ~/dashboard $ bundle 
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Installing addressable (2.3.8) 
Using backports (3.6.4) 
Installing buftok (0.2.0) 
Using coffee-script-source (1.9.1.1) 
Using execjs (2.0.2) 
Using coffee-script (2.2.0) 
Using daemons (1.2.2) 
Using rack (1.5.2) 
Using thread_safe (0.3.5) 
Using tzinfo (1.2.2) 
Using rufus-scheduler (2.0.24) 
Using sass (3.2.19) 
Using rack-protection (1.5.3) 
Using tilt (1.4.1) 
Using sinatra (1.4.6) 
Using multi_json (1.11.0) 
Using rack-test (0.6.3) 
Using sinatra-contrib (1.4.2) 
Using hike (1.2.3) 
Using sprockets (2.10.2) 
Using eventmachine (1.0.7) 
Using thin (1.6.3) 
Using thor (0.18.1) 
Using dashing (1.3.4) 
Installing equalizer (0.0.11) 
Installing multipart-post (2.0.0) 
Installing faraday (0.9.1) 
Installing http_parser.rb (0.6.0) with native extensions 
Installing http (0.6.4) 
Installing json (1.8.2) with native extensions 
Installing memoizable (0.4.2) 
Installing naught (1.0.0) 
Installing simple_oauth (0.3.1) 
Installing twitter (5.14.0) 
Using bundler (1.1.4) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

これでDashing自体を動かすための準備は完了ですが、raspberry piに接続した大画面テレビにダッシュボード表示をさせるために必要となるソフトウエアを入れていきます。

■Unclutter、Chromiumのインストール

Dashingのダッシュボード画面は、thinというWebサーバにホスティングされるWebサイトなので、ダッシュボード端末からは、Webブラウザでアクセスすることになるのですが、ChromiumブラウザはKIOSKモードという全画面でWebを表示することができるので、今回の用途に適しています。また、全画面でダッシュボードを表示している時に、マウスポインタが出ていると不格好なので、unclutterというツールを入れて、マウスポインタを隠します。

pi@raspberrypi ~ $ sudo apt-get install unclutter
pi@raspberrypi ~ $ sudo apt-get install chromium-browser

■HDMIのディスプレイをスリープさせない設定

raspberry piのデフォルトでは、15分ほどでHDMIに接続したディスプレイがスリープして真っ黒になってしまうので、これをスリープさせない設定にしたいところです。

やり方を探してみると、/etc/xdg/lxsession/LXDE/autostartを編集するとできるという情報がありましたが、なにをどう設定しても変化なし。

~/.xinitrcで同様の設定ができるという情報もあり、試してみましたが、.xinitrcを作成すると、今まで問題なく立ち上がっていた、X windowsが、startxコマンドで立ち上がらなくなりました。

そこで、/etc/xdg/lxsession/フォルダを改めて見てみると、LXDEフォルダと並列にLXDE-piフォルダというものも有り、その中にもautostartというファイルがありました。

試しに、/etc/xdg/lxsession/LXDE-pi/autostartを編集してみると、スリープ解除の設定が有効になりました。詳細の内容は特定していませんが、raspberry pi 2では、読み込む設定がこちらのファイルに変わったということなのでしょうか?

まとめますと、以下のような設定にすることにより、HDMIがスリープしないようになりました。

pi@raspberrypi /etc/xdg/lxsession/LXDE-pi $ more autostart 
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash

@xset s off
@xset -dpms

@xset s noblank

※参考にした情報
http://akiomik.hatenablog.jp/entry/2013/09/12/211523
http://azmwork.tumblr.com/post/90563391369/raspbian-hdmi
http://www.fusonic.net/en/blog/2013/07/31/diy-info-screen-using-raspberry-pi-dashing/

■X window起動、Dashing起動、Chromium起動

さて、準備が整ったので、dashingを起動し、raspberry pに接続したテレビでダッシュボード画面を表示してみます。

1. raspberry piを起動し、startxコマンドでX windowを起動させる。

2. pi@raspberrypi ~/dashboard_project $ dashing start
でDashingを起動させる。

3. 以下のようなシェルスクリプトでChromiumをkioskモードで起動させる。

pi@raspberrypi ~ $ more brstart.sh 
#!/bin/sh
export DISPLAY=:0.0

chromium --kiosk --ignore-certificate-errors --dsiable-sync --disable-restore-se
ssion-state http://localhost:3030/sampletv

以上で、raspberry piのHDMIディスプレイに、フルスクリーンでDashingのサンプルダッシュボード画面をを表示させることができるようになりました。

次回は、ダッシュボードに表示するウィジットの設定を行い、自分のダッシュボード画面を作ってみたいと思います。表示する情報は、時計、天気、メッセージ、数字、Twitter、写真の予定です。

0 件のコメント:

コメントを投稿