如何用树莓派和显示器制作一面“魔镜”

这篇文章介绍的是用树莓派、显示器、双面镜制作的一面镜子。这面镜子中包含了一个黑色背景的网页,可以显示天气预报、日期、时间以及一句随机生成的问候语。完成这个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)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器人网

【干货】低压电气元件全面解析

1 隔离开关 隔离开关:(我们所说的隔离开关,一般指的是高压隔离开关,即额定电压在1kv及其以上的隔离开关)高压开关电器中使用最多的一种电器,在电路中起隔离作用...

33913
来自专栏FreeBuf

Android系统中也存在Web注入吗?

有一类专门针对浏览器的攻击,被称为浏览器中间人(MITB)攻击。想要实现这类攻击,方式也非常的多,像恶意 DDL 注入,扩展欺骗或将一些特制的恶意代码注入到...

2085
来自专栏企鹅号快讯

假日出行必备:专家解析如何在公共Wi-Fi网络下保护个人隐私

“用指尖改变世界” ? 对于外出的我们来说,公共Wi-Fi网络在很多方面都是很棒的。因为它是免费的,能够节省我们很多的移动数据流量,并且提供更快的下载速度。 然...

2095
来自专栏FreeBuf

新手科普:浅谈家用路由器安全变迁

路由器是家庭网络的入口,在IoT浪潮下,路由器也起到了网络守护者的角色。正因为如此,这几年针对路由器的攻击也越来越多,本文就带大家细数这些年针对路由器的攻击。 ...

4316
来自专栏北京马哥教育

【重大事件】知名终端模拟软件XSHELL多版本存在后门,或上传用户服务器账号密码!

简介 ▼▼▼ Xshell是一款强大,著名的终端模拟软件,被广泛的用于服务器运维和管理,Xshell支持SSH,SFTP,TELNET,RLOGIN和SERIA...

3875
来自专栏FreeBuf

CODESYS WebVisu产品出现严重漏洞,影响100多款ICS系统

根据外媒 Securitweek 报道,Istury IOT 的朱文哲(音)发现 3S-Smart Software Solutions 的 CODESYS W...

2495
来自专栏FreeBuf

银行木马Trickbot新模块:密码抓取器分析

Trickbot曾经是一个简单的银行木马,已经走过了漫长的道路。随着时间的推移,我们已经看到网络犯罪分子如何继续为此恶意软件添加更多功能。

1443
来自专栏信安之路

金融黑客的惯用手段 MITB

所谓的 MITB 技术就是 man-in-the-browser 的简称,也就是浏览器中间人攻击方式。我们先来回顾一下经典的中间人攻击方式。

880
来自专栏FreeBuf

这个APT攻击与东南亚和中国南海问题相关?

最近,一个与东南亚和中国南海问题相关的APT攻击被发现,该APT攻击以包括美国在内的各国政府和公司为目标 。经安全专家分析,该APT攻击所使用的全部工具代码都是...

2107
来自专栏安恒信息

2014网络安全APT攻击专题分析

1.警惕利用Bash漏洞的IRC-BOT 什么是Bash安全漏洞 继2014年4月的“Openssl心脏流血”漏洞之后,另一个重大互联网威胁于2014年9月24...

3216

扫码关注云+社区

领取腾讯云代金券