7519浏览
查看: 7519|回复: 6

[讨论] 用树莓派和显示器制作一面“魔镜”

[复制链接]

转自FreeBuff

难度比较大,但是看起来效果很不错


这篇文章介绍的是用树莓派、显示器、双面镜制作的一面镜子。这面镜子中包含了一个黑色背景的网页,可以显示天气预报、日期、时间以及一句随机生成的问候语。完成这个DIY制作无需修改硬件底层,只需一点点木工技能和修改一些代码。

WedOctober-202110275429..png

所需要的材料

一台显示器一块和显示器大小相同的双面镜一些2*4米的细木条树莓派机器必要组件(电源、HDMI线、usb无线网卡、键盘)木工工具(锯子、磨砂机、螺丝刀)螺丝、液态钉子

选一个合适的显示器

镜子的大小完全由显示器的类型和大小决定,所以我希望得到一个尽量大的显示器,最好还有一个可以移动的手臂,便于固定在箱子中。除此之外,还要确保你拿到的显示器能输出至中心显示器上而不是其他的显示器上。基于各种条件的限制,我最终选择了BENQ GL2760H 27英寸的显示器。

WedOctober-202110275498..png

选一面镜子

镜子是最为关键的一个部分,需要双面镜,有点像水晶和塑料。它比一般的镜子要好操作,可以切成任意你想要的形状,所以如果买不到和显示器一样大的镜子,也可以买一块稍微大点的镜子。

WedOctober-202110277151..png

裁剪掉显示器的边框(也可不裁掉)

为了能更好的切合箱子的大小,我去掉了显示器周围的塑料外壳。去壳时一定要细心,显示器的塑料外壳很薄,不要损坏了中间的金属部分。

WedOctober-202110279451..png WedOctober-202110275248..png WedOctober-202110271970..png

WedOctober-202110272926..png WedOctober-202110278625..png

制作箱子

这部分是最为有趣的部分,我选择了4块4*2的木板,裁剪成适合显示器大小的长度。将4块木块摆放成长方形盒子状,先用夹子固定住,然后再用螺丝固定。

WedOctober-202110274518..png

木板盒子的上下两面各打了几个空,以给中间的树莓派输送流动的空气,因为每个人都不希望自己的树莓派在封闭的环境中变成“树莓干”。

还需要注意的是,最下面有一个空要比较大一点,大到可以穿过一个电源插头,因为之后需要接通显示器和树莓派的电源。

安装Chromium


  1. wget http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u3_armhf.deb
  2. wget http://launchpadlibrarian.net/218525709/chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
  3. wget http://launchpadlibrarian.net/218525711/chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
  4. sudo dpkg -i libgcrypt11_1.5.0-5+deb7u3_armhf.deb
  5. sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
  6. sudo dpkg -i chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
复制代码

Chromium 开机自启

现在已经安装了chromium,我们可以修改它的配置令其开机自动运行,并全屏显示:

修改autostart设置:


  1. sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
复制代码
  1. @xscreensaver -no-splash
复制代码
  1. @xset s off
  2. @xset -dpms
  3. @xset s noblank
  4. /usr/bin/chromium --noerrdialogs --kiosk --incognito "http://localhost"
复制代码

保存并退出,现在我们已经禁用了屏保、禁用电源管理设置,chromium浏览器在本地打开了kiosk模式。

配置WIFI连接

有很多设置树莓派无线的教程,这里我们用终端编辑无线配置文件wpa_supplicant:


  1. sudo nano /etc/network/interfaces
复制代码
修改网络配置:
  1. network={
  2.     ssid="Network name here"
  3.     psk="password"
  4. }
复制代码

建议不使用过时不安全的WEP加密。

使用下面的两个命令重启WIFI连接,使配置修改生效:

  1. ifdown wlan0
  2. ifup wlan0
复制代码

如果遇到一些不起眼的报错,不要担心,我也碰到了,你可以通过测试来确定修改是否生效。

  1. ifconfig
复制代码

如果你的无线网卡wlan0已经分配到了一个IP地址,那么你可以断开树莓派的网线,然后安装好镜子的后盖了。这里我用四枚钉子把背板固定了一下:

WedOctober-202110271679..png

设置WEB页面

接下来我决定使用PHP micro-framework搭配jQuery和MomentJs。

搭建WEB服务

接下来需要搭建一台WEb服务器,由于我们用的是Lumen,所以我们需要搭建PHP环境:

  1. sudo apt-get update
  2. sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git
复制代码

安装的过程会花费一些时间,安装完成以后你需要修改nginx的配置文件,让nginx知道MirrorMirror的路径:

  1. sudo nano /etc/nginx/sites-available/mirror.conf
复制代码
  1. sudo ln -s /etc/nginx/sites-available/mirror.conf /etc/nginx/sites-enabled/mirror.conf
  2. sudo service nginx reload
复制代码
  1. ```server { listen 80; server_name localhost; root /home/pi/projects/MirrorMirror/public;
  2. index index.html index.htm index.php;
  3. charset utf-8;
  4. location / {
  5.     try_files $uri $uri/ /index.php?$query_string;
  6. }
  7. location = /favicon.ico { access_log off; log_not_found off; }
  8. location = /robots.txt  { access_log off; log_not_found off; }
  9. access_log off;
  10. error_log  /var/log/nginx/myapp-error.log error;
  11. sendfile off;
  12. client_max_body_size 100m;
  13. location ~ \.php$ {
  14.     fastcgi_split_path_info ^(.+\.php)(/.+)$;
  15.     fastcgi_pass unix:/var/run/php5-fpm.sock;
  16.     fastcgi_index index.php;
  17.     include fastcgi_params;
  18.     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  19.     fastcgi_intercept_errors off;
  20.     fastcgi_buffer_size 16k;
  21.     fastcgi_buffers 4 16k;
  22. }
  23. location ~ /\.ht {
  24.     deny all;
  25. } } ```
复制代码
执行下面的命令使配置生效:

  1. sudo ln -s /etc/nginx/sites-available/mirror.conf /etc/nginx/sites-enabled/mirror.conf
  2. sudo service nginx reload
复制代码

现在你的树莓派已经能过运行PHP环境了

安装MirrorMirror

项目的最后一步:新建一个文件夹、从GitHub上下载MirrorMirror项目代码

  1. mkdir /home/pi/projects
  2. cd /home/pi/projects
复制代码
  1. git clone https://github.com/ctrlaltdylan/MirrorMirror.git
复制代码


安装Composer Lumen的依赖

  1. curl -sS [url]https://getcomposer.org/installer[/url] | sudo php -- --install-dir=/usr/local/bin --filename=composer
复制代码
在浏览器里打开:http://localhost,没有问题的话就能看到Mirror Mirror的版本,它已经运行了。

特性:

显示、预报天气;显示日期时间;随机显示问候语,目前只有一个问候语,后续会增加一些。

原文地址:dylanjpierce

凌风清羽  中级技匠

发表于 2016-1-30 19:23:32

魔镜,魔镜,这个世界上谁最帅啊~~
回复

使用道具 举报

dsweiliang  初级技神

发表于 2016-2-1 08:49:59

炫酷
回复

使用道具 举报

visionsl  初级技匠

发表于 2016-2-1 10:08:36

我一直以为这是用透明屏+普通镜子做出来的
想不到竟然是普通显示屏+双面镜啊?! 腻害!
回复

使用道具 举报

visionsl  初级技匠

发表于 2016-2-1 10:41:12

双面镜不容易买到, 而且似乎很贵
回复

使用道具 举报

Ash  管理员

发表于 2016-2-2 18:06:08

双面镜是审犯人用的那种么,貌似很常被用在不太好的地方,嘿嘿嘿
回复

使用道具 举报

吹口琴的钢铁侠  初级技匠
 楼主|

发表于 2016-2-3 19:14:21

Ash 发表于 2016-2-2 18:06
双面镜是审犯人用的那种么,貌似很常被用在不太好的地方,嘿嘿嘿

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail