新冠病毒肆掠全球,虽然现在可以很容易的在手机上查看新闻和数据,但是设置一个专门的电子看板,显示新闻和统计会更加方便。下面会讲解如何一步步的在树莓派上安装和配置“新冠病毒电子看板”。
您需要一个树莓派和HDMI的显示器,你可以放置一个大屏幕在客厅,也可以在桌面上放置一个小屏幕作为摆台。
注意: 树莓派0/1不支持,NodeJS不支持"armv6l"平台了。
使用的开源软件有MagicMirror和covid-19模块.
MagicMirror是一个开源的智能镜子平台, 但实际上使用它并不需要一面镜子,它可以被用来定制电子看板。MagicMirror的客户端和服务器程序使用了Nodejs,服务器通过http提供看板服务,客户端使用Electron,运行Kiosk模式, 也就是浏览器的全屏模式, 您也可以运行“服务器模式”,并在另外一台电脑的浏览器上访问电子看板。
MagicMirror定义的如下的布局,您可以选择把模块放置的看板特定的位置。
模块定义了如何获取和显示数据。
大体上来说就这么简单!
如果您使用的是lite的系统镜像,您需要先安装桌面系统。
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo apt-get install raspberrypi-ui-mods -y
sudo apt-get install libgdk-pixbuf2.0-dev -y
sudo ln -s /usr/lib/*/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/local/bin/gdk-pixbuf-query-loaders
sudo gdk-pixbuf-query-loaders --update-cache -y
sudo apt install ca-certificates python-certifi python3-certifi -y
sudo apt-get install -y --reinstall ca-certificates
sudo update-ca-certificates --fresh
NodeJs-Raspberry-Pi能非常方便的一行命令安装NodeJS:
$ wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | sudo bash; node -v
使用"apt install"很有可能不会安装新版本的NodeJS,MagicMirror在后续的安装过程只会报错。
$ git clone https://github.com/MichMich/MagicMirror
$ cd MagicMirror/
$ npm install
MagicMirror已经安装了一些默认模块.
# 假设在MagicMirror目录
$ cp config/config.js.sample config/config.js
# 可以使用"ctrl+c"停止, 下面的运行方式仅仅用于测试
$ npm run
您可以尝试去修改"config.js"中模块的选项,比如,您可以给"News Feed"模块添加更多的RSS源:
{
title: "BBC",
url: "http://feeds.bbci.co.uk/news/video_and_audio/news_front_page/rss.xml?edition=us"
},
您也可以更加上面的布局图来修改模块的位置(“position"参数)。
您也可以修改默认的语言(“language"参数),https://github.com/MichMich/MagicMirror/tree/master/translations可以查看所有可用的语言选项。改成其他语言要记得安装相关的字体,比如中文字体:
sudo apt install -y fonts-arphic-uming ttf-wqy-microhei
将模块安装在"modules"目录下:
# 假设在MagicMirror目录
$ cd modules
$ git clone https://github.com/bibaldo/MMM-COVID19
然后在"config/config.js"文件中添加模块的配置, 在https://rapidapi.com/注册,将下面的"get-your-api-key"替换为您自己的API密钥。https://rapidapi.com/astsiatsko/api/coronavirus-monitor,“X-RapidAPI-Key"就是API密钥。
{
module: 'MMM-COVID19',
position: "bottom_bar",
config: {
headerRowClass: "big",
infoRowClass: "big",
worldStats: true,
countries: ["USA", "China"],
lastUpdateInfo: true,
delta: true,
rapidapiKey: "get-your-api-key",
}
},
修改了"config/config.js"后,您需要重启MagicMirror。
默认的数据源缺少一些详细信息,比如没有美国每个郡县的统计,没有中国城市的统计。您也可以添加其他的数据源,但那个就不仅仅是简单的配置了,需要修改一些代码,因为不同的数据源的格式不一样。
这里有个改动示例添加了美国郡县的统计数据,并做了汉化。这个改动示例添加了中国城市的统计数据。
美国的数据来源https://github.com/ExpDev07/coronavirus-tracker-api,中国的数据来源https://c.m.163.com/ug/api/wuhan/app/data/list-total,都不需要申请API密钥。
其他的数据源https://github.com/pomber/covid19, 您也可以自行去网上查找合适的数据源,并对代码做相应的改动。
这个wiki列举了所有的第三方模块。最上面的示例图片使用了下面的模块:
您也可以根据自己的需求尝试其他的模块。
测试好电子看板后,您还需要一些额外的配置,才能将其投入使用。
您需要关掉屏保,禁止无线网卡的休眠模式,打开OpenGL驱动,参考wiki进行配置。
注意: 关闭屏保那一步,在修改”/etc/xdg/lxsession/LXDE-pi/autostart"文件时, 需要注释掉这一行”@xscreensaver -no-splash”(使用#),这个在上面的说明里面没有
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@xset s noblank
@xset s off
@xset -dpms
参考wiki设置MagicMirror开机启动。
注意: 如果安装了pm2后却找不到这个命令,您需要将PATH="/opt/nodejs/bin:$PATH"
添加到"~/.profile"文件中,然后source ~/.profile
更新PATH环境变量
在"/var/spool/cron/crontabs/pi"文件中添加如下的内容,控制MagicMirror在早上8 am启动,晚上9 pm关闭,并打开和关闭HDMI显示器。
00 08 * * * vcgencmd display_power 1;pm2 start mm
00 21 * * * vcgencmd display_power 0;pm2 stop mm