![見出し画像](https://assets.st-note.com/production/uploads/images/55732402/rectangle_large_type_2_0ed877f0471ed108a0b3c3a9a5aee317.jpeg?width=1200)
[ラズパイ / 電子工作]手のひらサイズのスマートミラーを自作してみた
どうも~、IoT探検家のシンクンです。
皆さん、「スマートミラー」ってご存知ですか?
天気やニュース情報が表示される未来を感じさせる鏡で、海外のDIY系のYouTube動画で紹介されているのをよく見かけます。
![画像1](https://assets.st-note.com/production/uploads/images/54947868/picture_pc_9cbea930909594bbb28ddece41eefeef.png?width=1200)
今回はこの「スマートミラー」を手のひらサイズで作っていきたいと思います。
用意したもの
・ラズパイ本体(Raspberry Pi 4)
・4インチのLCDモニター
・マジックミラー
・木製の縁
・塗料、刷毛、マスキングテープ、サンドペーパー
・キーボード
・microSDカード
・USB-C接続の電源アダプター
マジックミラーは縦120mm✕横80mmサイズで、鏡の販売.COMさんで作ってもらいました。
マジックミラーとは
別名ハーフミラーとも呼ばれ、片面が鏡のように映像を反射し、もう片面からみるとガラスのように向こう側が透けて見える。 実際は、明るい場所からマジックミラーを見ると鏡に見え、暗い所から明るい場所をマジックミラーを通して見るとガラスのように透けて見える。
自作の流れ
1)ラズパイの初期設定
2)ラズパイのタブレット化
3)ラズパイ(タブレット)にMagicMirror²をインストール
4) MagicMirror²をカスタマイズ
5)組み立てと塗装
6) 手のひらサイズ の「スマートミラー」完成
1)ラズパイの初期設定
まずは、Raspberry Pi(ラズベリー パイ)、略してラズパイという小型コンピュータを用意して、初期設定をします。
詳細は「[普通科高校卒の週末プログラマー]ラズパイの初期設定をしてみた」を御覧ください。
2)ラズパイのタブレット化
次にLCDモニターを別途用意して、組み立ててラズパイのタブレット化します。
詳細は「[普通科高校卒の週末プログラマー]手のひらサイズのタブレットを自作してみた」を御覧ください。
3)ラズパイ(タブレット)にMagicMirror²をインストール
続いて、スマートミラーに天気やニュース情報が表示させるためのモジュール「MagicMirror²」をラズパイにインストールします。
![画像2](https://assets.st-note.com/production/uploads/images/55148306/picture_pc_3a2bd9ea5c71c917c95a4e916445edeb.png?width=1200)
#最新のNode.jsをインストール
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
#MagicMirror²のコードをインストール
git clone https://github.com/MichMich/MagicMirror
#インストールしたMagicMirror²フォルダに移動
cd MagicMirror/
#関連するNode.jsのパッケージをインストール
npm install
#設定ファイルを用意
cp config/config.js.sample config/config.js
#MagicMirror²を実行
npm run start
![画像7](https://assets.st-note.com/production/uploads/images/55221537/picture_pc_ec32606987bcdb95c4f92046e41b5537.jpg?width=1200)
インストールの手順はドキュメントに書いてある通りで、MagicMirror²はnode.jsを利用しているので、まずはnode.jsをインストールして、上のコマンドのように1つずつLXTerminalに入力して、最後にnpm run startでenter。
すると、MagicMirror²の初期画面が立ち上がります。
node.jsとは
サーバーサイドで動作するJavaScript。
4) MagicMirror²をカスタマイズ
MagicMirror²の初期表示は英語表記だったり、ニューヨークの天気が表示されたりしているので使いやすいようにカスタマイズしていきたいと思います。(カスタマイズ参考サイト:RaspberryPi+MagicMirror2で超簡単にGoogleフォトフレームをつくる)
カスタマイズ内容
a)日本語表記
b)日本の現在の天気と天気予報を表示
c)自分のGoogleカレンダーを表示
d)Youtubeの表示
e)縦向き表示
a)日本語表記
cd MagicMirror/config/
sudo nano config.js
このコマンドでMagicMirror²の設定ファイルconfig.jsに移動して開き、languageの値を"en"から"ja"に変更します。
language: "ja",
![画像8](https://assets.st-note.com/production/uploads/images/55222163/picture_pc_26ab62d52385aea8aea1e9e501731984.png?width=1200)
b)日本の現在の天気と天気予報を表示
MagicMirror²ではOpenWeatherを利用して、現在の天気と天気予報の情報を表示しているので、まずはOpenWeatherにユーザー登録する必要があります。
OpenWeatherとは
Webやモバイルアプリケーションの開発者に、現在の天候や予測履歴を含む各種気象データの無料APIを提供するオンラインサービス。
![画像9](https://assets.st-note.com/production/uploads/images/55222206/picture_pc_49ca498d69a3f64235b0ff90be30ba7f.png?width=1200)
MagicMirror²の設定ファイルconfig.jsのweatherモジュールのlocationとlocationIDとappidの値を変更します。
![画像3](https://assets.st-note.com/production/uploads/images/55150290/picture_pc_20ea58d2692c1989fb46d769e9acae50.png?width=1200)
![画像4](https://assets.st-note.com/production/uploads/images/55151179/picture_pc_a9baf9bd9638832b426eea2aa8bfc19b.png?width=1200)
{
module: "currentweather",
position: "top_right",
config: {
location: "Tokyo",
locationID: "1850147",
appid: "APIキー"
}
},
{
module: "weatherforecast",
position: "top_right",
header: "Weather Forecast",
config: {
location: "Tokyo",
locationID: "1850147",
appid: "APIキー"
}
},
appidはOpenWeatherのマイページから取得し、locationとlocationIDはhttps://bulk.openweathermap.org/sample/city.list.json.gzからダウンロードしたjsonファイルで、自分が知りたい天気の地域から選択(上の画像は東京のlocationとlocationIDを選択しています)。
c)自分のGoogleカレンダーを表示
![画像5](https://assets.st-note.com/production/uploads/images/55151649/picture_pc_cc77598c2d556c9325f65861e15d06f9.png?width=1200)
MagicMirror²でGoogleカレンダーを表示させるために、まずはGoogleカレンダー設定画面の「マイカレンダーの設定」にある「iCal形式の非公開URL」を取得します。
![画像10](https://assets.st-note.com/production/uploads/images/55222256/picture_pc_410917dcd9d35d2da5b45cd9030008fa.png?width=1200)
{
module: "calendar",
header: "予定",
position: "top_left",
config: {
dateFormat: "YYYY MM DD" ,
fade: false,
calendars: [
{
url: "iCal形式の非公開URL"
}
]
}
},
そして、MagicMirror²の設定ファイルconfig.jsのcalrndarモジュールのコードをこのように変更。
d)Youtubeの表示
自分のお気に入りのYouTube動画を表示させたいと思います。
cd ~/MagicMirror/modules
git clone https://github.com/nitpum/MMM-EmbedYoutube.git
MagicMirror²の初期設定では表示されないので、「MMM-EmbedYoutube」というモジュールを上のコマンドでGithubからラズパイにインストールしていきます。
![画像17](https://assets.st-note.com/production/uploads/images/55297519/picture_pc_ee056d047b7413ad693c83ef9a862d53.png?width=1200)
{
module: "MMM-EmbedYoutube",
position: "bottom_left",
config: {
//
video_id: "SekwIeFBfAw",
loop: false,
autoplay: true,
width: 280,
height: 158,
}
}
![画像18](https://assets.st-note.com/production/uploads/images/55297880/picture_pc_843204481fe6c058bc07e79a23e21d4a.png?width=1200)
そして、MagicMirror²の設定ファイルconfig.jsに上のコマンドのように、設定のための配列を追記すると、スマートミラーの画面に自分のお気に入りのYouTube動画が表示されるようになります。
e)縦向き表示
sudo nano /boot/config.txt
![画像6](https://assets.st-note.com/production/uploads/images/55151942/picture_pc_e68b81cb4c32187202ecb30d912e5c56.png?width=1200)
ラズパイの設定ファイルconfig.textを開き、display_rotate=1と追記することで縦向き表示が実現します。display_rotate=1で縦向きにならない場合はdisplay_rotate=2を試してみたください。(参考にしたサイト:How to Rotate Raspberry Pi Video Display / Screen)
カスタマイズ後の画面
a)~e)までの5種類のカスタマイズをおこなった後のMagicMirror²の画面はこのようになりました。
![画像19](https://assets.st-note.com/production/uploads/images/55515534/picture_pc_50ab78576d8e37c7790299a673ea3693.jpg?width=1200)
5)組み立てと塗装
次は、スマートミラーに取り付ける木製の縁の組み立てと塗装を行っていきます。
まず、木材の加工ですが、今回は簡単な設計書を紙に書いて用意して、東急ハンズさんにお願いしました。そして、それを木工用ボンドで組み立て。
![画像11](https://assets.st-note.com/production/uploads/images/55222954/picture_pc_37cb5b6435733d1c342294b67ec28ff5.jpg?width=1200)
![画像12](https://assets.st-note.com/production/uploads/images/55222978/picture_pc_77cc3d0d1a7c9e413bac599670b3cacc.jpg?width=1200)
![画像15](https://assets.st-note.com/production/uploads/images/55224038/picture_pc_55ea50fad16f9af68521dc32564404a2.jpg?width=1200)
![画像13](https://assets.st-note.com/production/uploads/images/55223177/picture_pc_f30976a8073a916018ab88a23aa61f17.jpg?width=1200)
![スマートミラー](https://assets.st-note.com/production/uploads/images/55587516/picture_pc_8f061f157363acf90d2648af9f9261f3.jpg?width=1200)
![画像14](https://assets.st-note.com/production/uploads/images/55223273/picture_pc_9ee8b7b8927ac38a7f7f2a023beec53c.jpg?width=1200)
組み立て終わったら塗装をしていきます。塗料は藍色の水性の漆調塗料を利用しました~。
![塗装](https://assets.st-note.com/production/uploads/images/55587548/picture_pc_d87c10a4360b24e504a7c4c218a340dd.jpg?width=1200)
![塗装_2](https://assets.st-note.com/production/uploads/images/55587556/picture_pc_79eed649ae28d268e7d35eefcb881249.jpg?width=1200)
![組み立て_1](https://assets.st-note.com/production/uploads/images/55587656/picture_pc_f6bb01c8e186b37a3e1518cb04cb59b5.jpg?width=1200)
![重り](https://assets.st-note.com/production/uploads/images/55587606/picture_pc_df051af958ef98cb3fc31bbf7eec01de.jpg?width=1200)
![塗装_3](https://assets.st-note.com/production/uploads/images/55587564/picture_pc_dacce6266fe938841f8539e8d55085bf.jpg?width=1200)
塗装できたら、2つの木製の縁の部品をボンドで引っ付けて、一晩寝かしておきました。
6) 手のひらサイズ の「スマートミラー」完成
![画像19](https://assets.st-note.com/production/uploads/images/55517180/picture_pc_2c9d02ef6b56ce92ca6e2ffac0577dc2.jpg?width=1200)
いよいよ「スマートミラー」を完成させていきましょう。上の画像のように、木製の縁に対して、マジックミラー、ラズパイ(タブレット)の順ではめ込みます。
すると、マジックミラーにMagicMirror²の画面が浮かび上がりました~😊。
![組み立て_3](https://assets.st-note.com/production/uploads/images/55587710/picture_pc_7240df4862abfb9d981b1e0079280c93.jpg?width=1200)
![組み立て_4](https://assets.st-note.com/production/uploads/images/55587718/picture_pc_7376c186a17f232510c8fcc25ef143ce.jpg?width=1200)
![完成](https://assets.st-note.com/production/uploads/images/55587734/picture_pc_e88436fefc662f6aa326b3b6637b7c3b.jpg?width=1200)
![画像21](https://assets.st-note.com/production/uploads/images/55519795/picture_pc_b6e81b661f8d4b1e8e921d93a48fb8a0.jpg?width=1200)
振り返り
最後に今回のスマートミラー自作の振り返りです。
・スマートミラーはモジュール「MagicMirror²」の設定ファイルをカスタマイズすることで、自分好みの画面にカスタマイズできる
・スマートミラーに取り付ける木製の縁は、前と後ろの2つの部品に分けることによって、マジックミラーを間に挟む構造にすることができる
・今回のマジックミラーの自作にかかった時間は8時間ほどでした。(思ったよりもの縁の設計に時間がかかりました。)