Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

Raspberry Piでマジックミラーは随分前に流行りました。ただ、マジックミラーに使う鏡はその辺で簡単に買えません。大きいとそれなりの価格になります。

そこで、単純に情報表示として使うのもアリだなと思っています。

有名な「MagicMirror2」も2019年に少しご紹介しました。 インストールから利用まで備忘録としてザッと残しておきます。

マジックミラー(ハーフミラー)はこういうモノです

インストール

公式サイトでは、インストール方法は手動でインストールしてね、とあります。保証外ではありますけど、便利なスクリプトも公開されています。

多くの人はスクリプトの利用かと思いますが、今回は手動のインストールで試しました。

手動のインストール

手順は以下を順番に実行すれば良いことになります。

注意したいのは、Raspberry Pi OSはデスクトップ版を用意することです。GUIが無いliteではダメなんです。

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm run install-mm
cp config/config.js.sample config/config.js
npm run start

5行目のインストールの後、バージョンアップの表示があったので、ついでにアップデートもしてみました。

npm notice New major version of npm available! 8.19.3 -> 9.6.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.2
npm notice Run npm install -g npm@9.6.2 to update!
sudo npm install -g npm@9.6.2

ここではsudoを付けないとエラーでした。

他はユーザー権限でOKです。

自動スクリプト

もう1つはスクリプトです。一応、これは公式ではありません。(詳しくはgithubページ)

これ一行だけですから、こちらのスクリプトの利用でも構いません。

bash -c  "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"

この記事はこれを使わずにマニュアルインストール方法です。

起動後

起動はnpmコマンド

npm run start

MagicMirror2を起動した直後はこんな感じ。

デバッグモードで動作させたい場合は、:devを付けます。

npm run start:dev

終了するには

SSH経由で実行させた場合、ターミナルにCtrl + C で終了させられます。

一方で、Raspberry Pi 側に繋いだキーボードで操作ができます。

キーボードショットカット

Altキーでメニューバーが出ます。どのOSでも大体Altキーでメニューバーを操作できますから同じです。

ショートカットキー

Ctrl + SHIFT + I でデバッグモードの切り替え

Ctrl + Q で終了

つまり、メニューをマウスで操作するのと同じです。

実はChromium(Webブラウザ)が出ているだけなんですよね。

configファイルで設定

設定はすべてjson形式のconfig.jsファイルに書いていきます。MacgicMirrorフォルダ内にあります。

最初から入っているコアモジュール以外、追加したいモジュールは別途インストールが必要になります。

導入するgithubなどのページに従って記述していきましょう。

nano config/config.js

自動起動の設定

Raspberry Pi の電源を入れた後、MagicMirror2が自動的に起動するようにします。

pm2というアプリを使います。

PM2 は、アプリケーションを24時間365 日オンラインで管理および維持するのに役立つデーモンプロセス マネージャーです。

インストールして起動時にpm2が起動するようにします。

sudo npm install -g pm2
pm2 startup

pm2 startup

スクリプトの作成

次に、ホームディレクトリなど適当な場所にshスクリプトを作成します。(ここでは/home)

nano mm.sh
cd ./MagicMirror
DISPLAY=:0 npm start

記入は2行。

MagicMirrorはホームディレクトリにインストールしたので、./MagicMirrorに移動してスタートコマンドさせるような記述です。

忘れずに実行権限を付与します。

chmod +x mm.sh

pm2に登録と保存

このshファイルをpm2に登録&保存します。

スタートさせるとMagicMirrorが起動します。

pm2 start mm.sh

続けて保存します。

pm2 save

[PM2] Successfullyと出れば完了です。

他にもあるpm2コマンド。restartはよく使います。

pm2 restart mm
pm2 stop mm
pm2 logs mm
pm2 show mm

■Pi 5は8GBモデルがオススメ

サードパーティ製モジュール

モジュールを探すのに適しているのは次のgithubページです。

ズラズラッとMagicMirrorのモジュールが簡易的な説明と共に掲載されています。

GitHub

3rd Party Modules MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or…

日本語設定

config.jsにはLanguage箇所があります。日本語にしておきましょう。

        language: "ja",
        locale: "ja-JP.UTF-8",
        logLevel: [],

logLevelはinfo以下削除しました。別にサンプルのままでも構いません。

カレンダー

icalを日本の祝日に変えておきました。

公開されているicalのURL

https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics

変更した箇所

                {
                        module: "calendar",
                        header: "日本の祝日",
                        position: "top_left",
                        config: {
                                calendars: [
                                        {
                                                symbol: "calendar-check",
                                                url: "https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics"
                                        }
                                ]
                        }
                },

ニュースフィード

ニュースフィード部分はYahoo経済ニュースに変更してみました。

                {
                        module: "newsfeed",
                        position: "top_bar",
                        config: {
                                feeds: [
                                        {
                                                title: "Yahoo経済ニュース",
                                                url: "https://news.yahoo.co.jp/rss/topics/business.xml"
                                        }
                                ],
                                showSourceTitle: true,
                                showPublishDate: true,
                                broadcastNewsFeeds: true,
                                broadcastNewsUpdates: true
                        }
                },

天気予報モジュール

コアモジュールとして最初から導入されている天気予報のモジュールは、config/jsファイルに都市名とLocationIDを指定し、OpenWeatherで登録したAPPID KEYSを書き換えれば変更できます。

location: "都市名",
locationID: "XXXXXXX",
apiKey: "XXXXXXXX"
                {
                        module: "weather",
                        position: "top_right",
                        config: {
                                weatherProvider: "openweathermap",
                                type: "current",
                                location: "都市名",
                                locationID: "XXXXXXX", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                                apiKey: "XXXXXXXX"
                        }
                },
                {
                        module: "weather",
                        position: "top_right",
                        header: "Weather Forecast",
                        config: {
                                weatherProvider: "openweathermap",
                                type: "forecast",
                                location: "都市名",
                                locationID: "XXXXXXXX", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                                apiKey: "XXXXXXXX"
                        }
                },

LocationIDが分からない場合は次の記事を参考にしてください。

OpenWeatherの登録

Youtube動画モジュール

Youtubeを追加

Youtubeのモジュールは複数ありますが、単に表示させるだけであれば「Embed Youtube Module for MagicMirror」が簡単でした。

Video_idに再生したい動画URL末尾の文字列を入れるだけで済みます。

modules: [
  {
    module: 'MMM-EmbedYoutube', // Path to youtube module from modules folder Exmaple: MagicMirror/modules/custom/MMM-EmbedYoutube/ so it's custom/MMM-EmbedYoutube
    position: 'bottom_bar', // This can be any of the regions.
    config: {
      // See 'Configuration options' in README.md for more information.
      video_id: 'w3jLJU7DT5E',
      loop: true,
    },
  },
]

モジュールを~/MagicMirror/modulesでgit cloneしました。

cd ~/MagicMirror/modules
git clone https://github.com/nitpum/MMM-EmbedYoutube.git
cd MMM-EmbedYoutube
npm install

~/MagicMirror/modules/MMM-EmbedYoutubeとなります。

nano ~MagicMirror/config/config.jsで追加するには字下げに気を付けてください。

以下は実際に最後の},カンマから追記した時の場合です。※config:{オプション}は他にもあります。

                {
                       module: 'MMM-EmbedYoutube',
                       position: 'bottom_bar',
                       config: {
                         video_id: 'CQtliTJ41ZE',
                         width: 640,
                         loop: true,
                         autoplay: true,
                         controls: false,
                       }
                },

保存した後、pm2をリスタートさせればすぐに適用されます。

cd ~/
pm2 restart mm.sh

GitHub - nitpum/MMM-EmbedYoutube: Embed youtube video for MagicMirror

バックグラウンドのスライドショー

鏡として使わない前提であれば、真っ黒な背景は要りません。

モジュールを~/MagicMirror/modulesでgit cloneしました。

cd ~/MagicMirror/modules
git clone https://github.com/darickc/MMM-BackgroundSlideshow.git
cd MMM-BackgroundSlideshow
npm install
                {
                        module: 'MMM-BackgroundSlideshow',
                        position: 'fullscreen_below',
                        config: {
                          imagePaths: ['modules/MMM-BackgroundSlideshow/exampleImages/'],
                          transitionImages: true,
                          randomizeImageOrder: true
                        }
                 },

GitHub - darickc/MMM-BackgroundSlideshow

スクリーンセーバーやブランクスクリーンの停止

ブランクスクリーンでモニターが消えないように設定もしておきましょう。

2つのファイルを変更します。

1.autostartに3行を追記

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
@xset s noblank
@xset s off
@xset -dpms

2.lightdm.confに追記

sudo nano /etc/lightdm/lightdm.conf

[SeatDefaults]が無ければこの2行。あればその下に。

[SeatDefaults]
xserver-command=X -s 0 -dpms

表示するモニター

マジックミラーに仕立てなくても、モニターに出力して楽しめます。

鏡じゃないから縦表示にしなくても良いですよね。

サンプルのスライドショー

モバイルモニターみたいな小さい画面に常時表示させておくのも便利ですよ。気に入ったらマジックミラーを探して取り付けてみましょう。

ハーフミラーなら

決まった大きさでもオーダーメイドもできるハーフミラーが販売されています。


細かい点は省いてありますが、これで一応は動作して、天気と時間、カレンダー、背景とYoutubeが表示されます。

Rレッド Rレッド
お試しあれ〜

LINKS