MagicMirror2 一個開源的模塊化智能鏡子平臺
《開源精選》是我們分享Github、Gitee等開源社區(qū)中優(yōu)質(zhì)項目的欄目,包括技術(shù)、學(xué)習(xí)、實用與各種有趣的內(nèi)容。本期推薦的MagicMirror2是一個開源的模塊化智能鏡子平臺。
MagicMirror 是一個開源的模塊化智能鏡子平臺。隨著可安裝模塊列表的增加, MagicMirror2可讓您將走廊或浴室鏡子轉(zhuǎn)換為您的個人助理。
要求
硬件
MagicMirror2 是為在 Raspberry Pi 上運行而開發(fā)的。它可能(并且將會)在各種不同類型的硬件上運行,但新版本只能在 Raspberry Pi 上進行測試。
Electron是 MagicMirror2 的應(yīng)用程序包裝器,僅支持 Raspberry Pi 2、3 和 4。目前不支持 Raspberry Pi 0/1。如果您想在 Raspberry Pi 1 上運行它,請使用僅服務(wù)器功能并自己設(shè)置全屏瀏覽器。
操作系統(tǒng)
請注意,您需要安裝最新的完整版 Raspbian,不要使用 Lite 版本。
節(jié)點
雖然舊版本的 Node 可能會工作,但我們建議您使用 Node 16。
安裝和使用
手動安裝
- 下載并安裝最新的Node.js版本:
- 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/
- 安裝應(yīng)用程序:npm install –only=prod –omit=dev
- 制作配置示例文件的副本:cp config/config.js.sample config/config.js
- 啟動應(yīng)用程序:僅服務(wù)器npm run start
使用:.npm run server
自動安裝腳本
sudo apt install libffi-dev nginx-full -ypython3 -m pip install --upgrade --no-cache-dir mmpmmmpm --guided-setupecho 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
碼頭工人形象
- MagicMirror2 可以使用docker進行部署。
Kubernetes Helm 圖表
- 如果您想在 kubernetes 集群中運行 MagicMirror2(僅在服務(wù)器模式下),請查看此MagicMirror Helm Chart。
魔鏡操作系統(tǒng)
這是一個基于 Raspbian 的完整操作系統(tǒng)。
- 解壓縮映像并將其安裝到 SD 卡,就像任何其他 Raspberry Pi 映像一樣
- magicmirroros-wpa-supplicant.txt像閃存驅(qū)動器一樣使用閃存卡時,通過在閃存卡的根目錄進行編輯來配置您的 WiFi
- 從 SD 卡啟動 Pi
- 主機名是magicmirroros(不像RaspberryPi往常那樣),用戶名:pi和初始密碼是:raspberry
- 您可以在位于的文件中更改 MagicMirror 的設(shè)置~/magicmirror/mounts/
要求
- Docker 或 Vagrant,推薦使用 docker
- Docker-compose – 如果使用 docker build 方法,建議使用,說明假設(shè)您擁有它
- 已下載Raspbian Lite映像。
- chroot 的根權(quán)限
- 重?fù)?/span>
- sudo(腳本本身調(diào)用它,沒有 sudo 以 root 身份運行將不起作用)
構(gòu)建 MagicMirrorOS
MagicMirrorOS 可以使用在英特爾或 RaspberryPi 上運行的 docker 構(gòu)建(列出了支持的)。構(gòu)建需要大約 4.5 GB 的可用空間。您可以假設(shè)您已經(jīng)安裝了 docker 和 docker-compose 并發(fā)出以下命令來構(gòu)建它:
git 克隆 https://github.com/guysoft/MagicMirrorOS.gitcd MagicMirrorOS/src/imagewget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_armhf_latest'光盤..sudo docker-compose up -dsudo docker exec -it magicmirroros-build build
構(gòu)建 MagicMirrorOS 變體
MagicMirrorOS 支持構(gòu)建變體,這些變體是在主版本構(gòu)建中進行了更改的構(gòu)建。文件夾中提供了示例和其他變體src/variants/example。
要構(gòu)建變體,請使用:
sudo docker exec -it magicmirroros-build build [變體]
使用 Vagrant 構(gòu)建
有一個 vagrant 機器配置可以讓您構(gòu)建 MagicMirrorOS,以防您的構(gòu)建環(huán)境表現(xiàn)不同。除非您進行額外配置,否則 vagrant 必須以 root 身份運行才能使 nfs 文件夾同步工作。
要使用它:
sudo apt-get install vagrant nfs-kernel-serversudo vagrant 插件安裝 vagrant-nfs_guestsudo modprobe nfscd MagicMirrorOS/src/vagrantsudo vagrant up
配置機器后,還可以運行從 devel 更新的每晚構(gòu)建,使用:
cd MagicMirrorOS/src/vagrantrun_vagrant_build.sh
要在機器上構(gòu)建一個變體,只需運行:
cd MagicMirrorOS/src/vagrantrun_vagrant_build.sh [變體]
用法
- 如果需要,通過創(chuàng)建一個新文件來覆蓋現(xiàn)有的配置設(shè)置src/config.local。您可以覆蓋在 中找到的所有設(shè)置src/config。如果您需要覆蓋 Raspbian 映像的路徑以用于構(gòu)建 MagicMirrorOS,請覆蓋要在ZIP_IMG. 默認(rèn)情況下,將使用*-raspbian.zip在 中找到的最新文件匹配。
- src/build_dist以 root 身份運行。
- 最終圖像將在src/workspace
其他操作系統(tǒng)
視窗:
要讓 MagicMirror 軟件在 Windows 上運行,除了上述步驟之外,您還需要做兩件事:
4a。在供應(yīng)商和字體目錄中安裝依賴項:
電源外殼:
- cd fonts; npm install; cd ..
- cd vendor; npm install; cd ..
命令提示符:
- cd fonts && npm install && cd ..
- cd vendor && npm install && cd ..
否則啟動 MagicMirror 時屏幕將保持黑色。
5a。修復(fù)文件中的啟動腳本package.json:
- 導(dǎo)航到文件package.json
- 找到它說的地方"start": "DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js", "start:dev": "DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js dev",
- 并將其替換為"start": ".node_modules.binelectron jselectron.js", "start:dev": ".node_modules.binelectron jselectron.js dev",
- 否則程序?qū)o法啟動,但會顯示以下錯誤消息: "'DISPLAY' is not recognized as an internal or external command, operable program or batch file."
升級指南
如果您想將您的 MagicMirror2 更新到最新版本,請使用您的終端轉(zhuǎn)到您的 Magic Mirror 文件夾并輸入以下命令:
git pull && npm install --only=prod --omit=dev
鍵入git status以查看您的更改,如果有任何更改,您可以使用 重置它們git reset –hard。在那之后,git pull應(yīng)該是可以的。
模塊
- 鐘
該clock模塊是魔鏡的默認(rèn)模塊之一。此模塊顯示當(dāng)前日期和時間。信息將實時更新。
截屏
使用模塊
要使用此模塊,請將其添加到config/config.js文件中的 modules 數(shù)組中:
modules: [ { module: "clock", position: "top_left", // This can be any of the regions. config: { // The config property is optional. // See 'Configuration options' for more information. }, },];
- 日歷
該calendar模塊是魔鏡的默認(rèn)模塊之一。此模塊顯示來自公共 .ical 日歷的事件。它可以組合多個日歷。
使用模塊
要使用此模塊,請將其添加到config/config.js文件中的 modules 數(shù)組中:
modules: [ { module: "calendar", position: "top_left", // This can be any of the regions. Best results in left or right regions. config: { // The config property is optional. // If no config is set, an example calendar is shown. // See 'Configuration options' for more information. }, },];
- 當(dāng)前天氣
該currentweather模塊是魔鏡的默認(rèn)模塊之一。該模塊顯示當(dāng)前天氣,包括風(fēng)速、日落或日出時間、溫度和顯示當(dāng)前狀況的圖標(biāo)。
截屏
使用模塊
要使用此模塊,請將其添加到config/config.js文件中的 modules 數(shù)組中:
modules: [ { module: "currentweather", position: "top_right", // This can be any of the regions. // Best results in left or right regions. config: { // See 'Configuration options' for more information. location: "Amsterdam,Netherlands", locationID: "", //Location ID from https://bulk.openweathermap.org/sample/city.list.json.gz appid: "abcde12345abcde12345abcde12345ab", //openweathermap.org API key. }, },];
- 天氣預(yù)報
截圖
使用模塊
要使用此模塊,請將其添加到config/config.js文件中的 modules 數(shù)組中:
modules: [ { module: "weatherforecast", position: "top_right", // This can be any of the regions. // Best results in left or right regions. config: { // See 'Configuration options' for more information. location: "Amsterdam,Netherlands", locationID: "", //Location ID from https://bulk.openweathermap.org/sample/city.list.json.gz appid: "abcde12345abcde12345abcde12345ab", //openweathermap.org API key. }, },];
模塊開發(fā)文檔
模塊結(jié)構(gòu)
所有模塊都加載到modules文件夾中。modules/default默認(rèn)模塊在文件夾中組合在一起。您的模塊應(yīng)放置在modules. 請注意,您在文件夾中創(chuàng)建的任何文件或文件modules夾都將被 git 忽略,從而允許您升級 MagicMirror2 而不會丟失文件。
一個模塊可以放在一個文件夾中。或者可以將多個模塊分組到一個子文件夾中。請注意,模塊的名稱必須是唯一的。即使將具有相似名稱的模塊放在不同的文件夾中,也無法同時加載它們。
文件
- modulename/modulename.js – 這是您的核心模塊腳本。
- modulename/node_helper.js – 這是一個可選的幫助器,將由節(jié)點腳本加載。節(jié)點助手和模塊腳本可以使用集成的套接字系統(tǒng)相互通信。
- modulename/public – 此文件夾中的任何文件都可以通過/modulename/filename.ext.
- modulename/anyfileorfolder核心模塊腳本可以使用模塊文件夾中的任何其他文件或文件夾。例如:modulename/css/modulename.css將是您添加其他模塊樣式的好路徑
—END—
開源協(xié)議:MIT License
開源地址:https://github.com/MichMich/MagicMirror
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。