这篇文章介绍的是用树莓派、显示器、双面镜制作的一面镜子。这面镜子中包含了一个黑色背景的网页,可以显示天气预报、日期、时间以及一句随机生成的问候语。完成这个DIY制作无需修改硬件底层,只需一点点木工技能和修改一些代码。
所需要的材料
一台显示器 一块和显示器大小相同的双面镜 一些2*4米的细木条 树莓派机器必要组件(电源、HDMI线、usb无线网卡、键盘) 木工工具(锯子、磨砂机、螺丝刀) 螺丝、液态钉子
选一个合适的显示器
镜子的大小完全由显示器的类型和大小决定,所以我希望得到一个尽量大的显示器,最好还有一个可以移动的手臂,便于固定在箱子中。除此之外,还要确保你拿到的显示器能输出至中心显示器上而不是其他的显示器上。基于各种条件的限制,我最终选择了BENQ GL2760H 27英寸的显示器。
选一面镜子
镜子是最为关键的一个部分,需要双面镜,有点像水晶和塑料。它比一般的镜子要好操作,可以切成任意你想要的形状,所以如果买不到和显示器一样大的镜子,也可以买一块稍微大点的镜子。
裁剪掉显示器的边框(也可不裁掉)
为了能更好的切合箱子的大小,我去掉了显示器周围的塑料外壳。去壳时一定要细心,显示器的塑料外壳很薄,不要损坏了中间的金属部分。
制作箱子
这部分是最为有趣的部分,我选择了4块4*2的木板,裁剪成适合显示器大小的长度。将4块木块摆放成长方形盒子状,先用夹子固定住,然后再用螺丝固定。
木板盒子的上下两面各打了几个空,以给中间的树莓派输送流动的空气,因为每个人都不希望自己的树莓派在封闭的环境中变成“树莓干”。
还需要注意的是,最下面有一个空要比较大一点,大到可以穿过一个电源插头,因为之后需要接通显示器和树莓派的电源。
安装Chromium
wget http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u3_armhf.deb wget http://launchpadlibrarian.net/218525709/chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb wget http://launchpadlibrarian.net/218525711/chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb sudo dpkg -i libgcrypt11_1.5.0-5+deb7u3_armhf.deb sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb sudo dpkg -i chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
Chromium 开机自启
现在已经安装了chromium,我们可以修改它的配置令其开机自动运行,并全屏显示:
修改autostart设置:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
在这一行中添加 # 注释禁用屏保:
@xscreensaver -no-splash
在配置中增加:
@xset s off @xset -dpms @xset s noblank /usr/bin/chromium --noerrdialogs --kiosk --incognito "http://localhost"
保存并退出,现在我们已经禁用了屏保、禁用电源管理设置,chromium浏览器在本地打开了kiosk模式。
配置WIFI连接
有很多设置树莓派无线的教程,这里我们用终端编辑无线配置文件wpa_supplicant:
sudo nano /etc/network/interfaces
修改网络配置:
network={ ssid="无线SSID名称" psk="无线密码" }
建议不使用过时不安全的WEP加密。
使用下面的两个命令重启WIFI连接,使配置修改生效:
ifdown wlan0 ifup wlan0
如果遇到一些不起眼的报错,不要担心,我也碰到了,你可以通过测试来确定修改是否生效。
ifconfig
如果你的无线网卡wlan0已经分配到了一个IP地址,那么你可以断开树莓派的网线,然后安装好镜子的后盖了。这里我用四枚钉子把背板固定了一下:
设置WEB页面
接下来我决定使用PHP micro-framework搭配jQuery和MomentJs。
搭建WEB服务
接下来需要搭建一台WEb服务器,由于我们用的是Lumen,所以我们需要搭建PHP环境:
sudo apt-get update sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git
安装的过程会花费一些时间,安装完成以后你需要修改nginx的配置文件,让nginx知道MirrorMirror的路径:
sudo nano /etc/nginx/sites-available/mirror.conf
粘贴以下配置:
``` server { listen 80; server_name localhost; root /home/pi/projects/MirrorMirror/public;
index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/myapp-error.log error; sendfile off; client_max_body_size 100m; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } } ```
执行下面的命令使配置生效:
sudo ln -s /etc/nginx/sites-available/mirror.conf /etc/nginx/sites-enabled/mirror.conf sudo service nginx reload
现在你的树莓派已经能过运行PHP环境了
安装MirrorMirror
项目的最后一步:新建一个文件夹、从GitHub上下载MirrorMirror项目代码:
mkdir /home/pi/projects cd /home/pi/projects git clone https://github.com/ctrlaltdylan/MirrorMirror.git
安装Composer Lumen的依赖:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer cd MirrorMirror composer install
在浏览器里打开:http://localhost,没有问题的话就能看到Mirror Mirror的版本,它已经运行了。
特性:
显示、预报天气; 显示日期时间; 随机显示问候语,目前只有一个问候语,后续会增加一些。
*原文地址:dylanjpierce,FB小编Cindy、0xroot编译,文章有修改,转载请注明来自Freebuf黑客与极客(FreeBuf.COM)