我也來做 MagicMirror (五) Using old Win10 Tablet

話 說 早 前 做 了 一 個 MagicMirror 的 DIY project,朋 友 覺 得 不 錯 ,但 嫌 要 成 千 蚊 太 貴 ,問 有 無 方 法 降 低 成 本 。

MagicMirror 只 是 上 網 抓 取 資 料 再 顯 示 出 來 ,也 不 會 更 新 得 特 別 頻 密 ,本 來 就 不 需 要 很 快 的 硬 件 。倒 是 如 果 要 做 成 月 曆 那 樣 ( 12個 星 期 ),屏 幕 就 必 須 要 有 稍 為 高 一 點 的 解 像 度 。

MagicMirror 是 用 Electron 來 寫 的 ,所 以 理 論 上 是 可 以 通 行 於 Linux、Mac 和 Windows 三 大 桌 面 操 作 系 統 。Linux 和 Mac OS 的 平 板 應 該 沒 有 ( iPad 是 iOS 不 是 Mac OS ),不 過 Win10 平 板 應 該 很 好 找 。

找 舊 平 板 的 時 候 ,首 要 的 解 像 度 。很 多 舊 的 8 寸 10 寸 平 板 ,其 解 像 度 只 有 可 憐 的 1024 x 768、1280 x 800。以 我 的 多 行 月 曆 版 面 ( 12 星 期 ),至 少 要 Full HD 1920 x 1080 才 夠 用 。

Complete Walkthrough – Install MagicMirror on a PC – Windows 7/10

要 在 Windows 上 跑 MagicMirror,說 難 不 難 ( 如 果 你 懂 得 electron app 的 基 本 寫 法 ),說 易 不 也 不 太 易 ( 如 果 你 很 懶 什 麼 也 不 願 去 學 的 話 )。上 面 的 文 章 寫 得 十 分 詳 細 ,不 過 那 已 經 是 2017 年 的 文 ,所 以 用 在 2020 年 的 MagicMirror ( 2.11.0 ) 上 就 要 作 出 一 點 小 改 動 。

1. 下 載 和 安 裝 Node.js

https://nodejs.org/en/download/

按 照 你 的 windows 版 本 ,選 擇 32 bit or 64 bit。我 的 是 64 bit 的 ,就 下 載 了 node-v12.16.3-x64.msi。

如 果 唔 想 出 意 外 ,在 install 的 過 程 ,所 有 野 都 選 default 就 好 。

2. 下 載 和 安 裝 Git for Windows

https://gitforwindows.org/

在 首 頁 按 download 的 話 ,應 該 會 自 動 下 載 適 用 的 版 本 ,我 的 情 況 是 Git-2.26.2-64-bit.exe。

Git for Windows 的 選 項 比 Node.js 還 多 10 倍 !但 不 要 緊 ,不 想 有 意 外 的 話 ,還 是 全 部 按 default 好 了 。它 是 有 10 頁 8 頁 選 項 的 ,就 next next next next 好 了 。

3. 下 載 和 安 裝 MagicMirror

首 先 ,我 們 打 開 Git Bash 那 是 一 個 模 擬 linux terminal 的 環 境 ,可 以 執 行 git / npm 之 類 的 linux command。一 打 開 Git Bash,位 置 會 是 我 們 自 己 的 home folder ( 即 是 c:\users\{username } )。

( 其 實 在 新 版 的 Git for Windows,應 該 在 Windows 的 command prompt,也 一 樣 可 以 執 行 git / npm 等 命 令 。不 過 為 安 全 計 ,在 Git Bash 裡 面 執 行 會 好 一 點 點 。  )

git clone https://github.com/MichMich/MagicMirror

輸 入 第 一 個 command,然 後 按 enter。這 個 command 會 download 一 份 MagicMirror 到 我 們 的 home folder。

cd MagicMirror

然 後 第 二 個 command,意 思 是 進 入 剛 剛 建 立 的 新 folder,MagicMirror。

npm install

然 後 就 是 安 裝 MagicMirror。按 enter 之 後 會 彈 出 一 大 抽 野 ,這 是 正 常 的 。因 為 這 個 command 會 自 動 幫 我 們 安 裝 好 MagicMirror 所 需 要 的 dependencies ( 主 要 就 是 electron )。

cp config/config.js.sample config/config.js

然 後 就 是 由 從 sample 建 立 一 個 我 們 自 己 專 用 的 config.js 檔 案 。這 是 MagicMirror 最 重 要 的 設 定 檔 ,是 用 來 設 置 包 括 3rd party modules 的 所 有 設 定 。

npm start

然 後 就 是 首 次 執 行 MagicMirror。不 過 ,這 是 不 會 成 功 的 ( 會 彈 出 一 抽 error )。原 因 是 出 在 MagicMirror 的 start script,不 知 道 作 者 為 什 麼 在 2 月 時 加 了 一 點 野 。

4. 修 改 package.json

在 MagicMirror folder 的 package.json 檔 裡 面 ,會 找 到 以 下 這 一 行 command。

"start": "DISPLAY=\"${DISPLAY:=:0}\" ./node_modules/.bin/electron js/electron.js",

這 個 start script 其 實 是 一 個 command。Linux 有 DISPLAY:0 command 的 這 個 寫 法 ,是 指 定 這 個 command 在 那 個 display 執 行 。

DISPLAY=:0 scrot

這 種 寫 法 的 一 個 十 分 常 見 的 例 子 是 scrot,scrot 是 linux 很 常 用 的 一 個 桌 面 截 圖 工 具 。上 面 的 command 可 以 令 我 們 在 遙 控 的 情 況 之 下 ( 例 如 ssh ),抓 取 linux 上 的 桌 面 截 圖 。

但 windows 大 概 是 不 支 援 這 種 寫 法 。( 請 注 意 ,MagicMirror 的 start line 幾 乎 個 個 版 本 都 唔 一 樣 ,我 這 裡 示 範 的 只 是 眾 多 版 本 的 最 新 的 一 個 ,2.11.0 )

"start": "./node_modules/.bin/electron js/electron.js",

我 們 只 要 把 display 的 部 分 去 掉 就 好 ( 用 Notepad++ 修 改 package.json 檔 案 )。然 後 再 執 行 一 次 npm start,應 該 就 會 見 到 ….. 一 個 空 白 的 畫 面 ( 黑 色 )。那 恭 喜 你 ,MagicMirror 算 是 成 功 執 行 了 。

5. 安 裝 vendor files

畫 面 空 白 一 片 的 原 因 ( 黑 色 ),是 因 為 之 前 有 些 東 西 並 沒 有 正 確 安 裝 。這 時 不 要 恐 慌 ,輕 輕 按 一 下 Alt 鍵 ,就 會 打 開 pull down menu,選 File > Exit 就 可 以 結 束 程 式 了 。

cd vendor

再 回 到 Git Bash,進 入 vendor folder ( 在 MagicMirror folder 裡 面 )。

npm install

然 後 執 行 npm install。正 確 安 裝 之 後 ,應 該 會 多 了 一 個 node_modules folder。這 原 本 在 上 面 第 一 次 執 行 npm install 時 應 該 會 安 裝 好 ,但 不 知 道 為 什 麼 沒 有 。

cd ..
npm start

然 後 退 出 一 層 ,回 到 MagicMirror 的 folder,再 一 次 執 行 npm start。

11.6″ Windows Tablet 截 圖

這 時 候 你 應 該 可 以 見 到 MagicMirror 正 常 執 行 的 樣 子 。

6. 個 人 化 你 的 MagicMirror

然 後 要 個 人 化 你 的 MagicMirror,就 和 在 Raspberry Pi 上 一 樣 。非 常 詳 細 的 設 定 方 法 ,可 以 參 考 下 面 這 兩 篇 文 章 。

我 也 來 做 MagicMirror (二 ) 基 本 用 法

我 也 來 做 MagicMirror (三 ) 3rd Party Modules

唯 一 的 不 同 ,就 是 你 是 在 windows 環 境 去 修 改 純 文 字 檔 案 。我 推 薦 使 用 Notepad++ 之 類 的 正 常 text editor。而 安 裝 3rd Party modules 還 是 用 Git Bash,所 有 command 都 一 樣 ,沒 有 任 何 分 別 。

7. autostart MagicMirror

Complete Walkthrough – Install MagicMirror on a PC – Windows 7/10 的 第 二 頁 ,用 家 Wominator 提 供 了 一 種 在 windows autostart 的 方 法 。

Wominator 的 方 法 是 使 用 Git Bash 來 start MagicMirror。但 上 面 我 也 說 過 ,在 新 版 的 Git for Windows,用 command prompt 也 一 樣 可 以 執 行 那 些 命 令 。我 在 這 裡 ,提 供 另 一 種 稍 為 簡 單 一 點 ,用 windows batch file 來 start MagicMirror 的 方 法 。

cd c:\Users\{username}\MagicMirror
npm start

首 先 我 們 在 notepad++ 建 立 一 個 新 的 檔 案 ,輸 入 以 上 的 兩 行 內 容 。第 一 行 是 進 入 你 的 MagicMirror folder ( 要 改 成 你 自 己 的 用 戶 名 )。這 裡 我 用 了 absolute path,所 以 不 管 batch file 在 那 裡 執 行 ,都 能 夠 進 入 正 確 的 資 料 夾 。然 後 第 二 行 command 就 是 npm start。

我 們 可 以 把 檔 案 儲 存 為 startmm.bat ( 其 實 名 字 無 所 謂 ,但 檔 尾 必 須 要 是 bat ),然 後 儲 存 到 windows 的 startup folder 裡 ( startup folder 裡 面 的 東 西 會 在 使 用 者 登 入 時 自 動 執 行 )。

C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Startup folder 是 在 你 的 home folder 裡 面 ,如 果 嫌 路 徑 太 長 ,也 可 以 用 以 下 方 法 打 開 。

在 RUN dialog box 裡 面 ( Windows Key + R ),輸 入 shell:startup。

完 成 之 後 ,登 出 再 登 入 ( 又 或 者 restart ),看 看 MagicMirror 有 沒 有 自 動 執 行 。

結 語

幾 經 努 力 之 後 ,就 可 以 把 MagicMirror 設 定 成 你 喜 歡 的 樣 子 。在 我 有 限 時 間 的 測 試 ,我 舊 文 所 介 紹 的 3rd Party Modules 都 可 以 在 Windows Tablet 上 正 常 運 作 ( MMM-Tools 除 外 ,那 是 Pi 專 用 的 。不 過 3rd Party Modules 千 千 萬 萬 ,也 沒 有 人 能 保 證 全 部 都 會 work )。

Windows Tablet 比 起 Raspberry Pi 有 什 麼 分 別 呢 ?我 個 人 的 感 覺 是 沒 有 什 麼 分 別 。有 些 人 說 Windows 裡 面 跑 不 了 voice assistant,基 於 我 對 voice assistant 的 反 感 ,所 以 也 沒 有 做 測 試 ( 我 在 Pi 上 面 也 沒 有 用 )。

Windows Tablet 一 體 化 又 輕 又 薄 的 設 計 ,無 疑 是 贏 了 很 多 分 數 。不 過 Windows Tablet 幾 乎 肯 定 沒 有 任 何 mount ( VESA mount、掛 牆 孔 等 等 ),對 擺 放 構 成 明 顯 的 不 便 ,也 著 實 扣 了 一 定 的 分 數 。

ctleung張先生,男性,肖龍。
職業:I.T. Consultant
簡介:不好好讀書;七尺差五寸,手長過膝,雙耳垂肩;性寬和,寡言語,喜怒不形於色。據說少時曾斬白蛇於鳳凰山下……

This entry was posted in Computer & Network, STEM and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *