查看原文
其他

原价 ¥1500+ 的 Wi-Fi 像素时钟,手把手教你用 ¥150 做一个

酱紫表 少数派 2019-06-15

原文:https://sspai.com/post/54225 

标题:《如何制作一个 WIFI 像素时钟,只要Lametric十分之一的价格》

第一次看到 Lametric 就是心动的感觉,但是无奈太贵(国外 200 刀,淘宝要卖到 1500-2000 人民币),所以一直没舍得买。直到看到了 AWTRIX 2.0 这个项目,花很少的钱就能自己 DIY 一个 WIFI 像素时钟。看到 AWTRIX 论坛晒的作品都超级棒,于是我就上路了。

左图:Lametric;右图:AWTRIX 论坛网友晒的作品

做这个东西其实不难,但是你得稍微有点动手能力。你至少得知道 Linux 是啥或者会复制粘贴命令。你至少得能看一点点英文文档。不需要焊接、不需要硬件知识,如果还想做就看看我写的教程吧。

材料准备

以下材料为必备:

  • WS2812B 全彩 8*32 全彩可编程像素软屏(淘宝 115 元)

  • ESP8266 WIFI 模块 CP2102 ESP-12E (淘宝 27.83 元)

  • 杜邦线 公对母(一头插一头被插)(1-2 元可以和 WIFI 模块一起买,短的就行 )

  • 3D 打印光栅(70 元左右,这个后面会讲)记得打印两个素材里也标注了 ×2!

  • A3 白纸一张(A4 太小)

  • micro usb 线

  • 树莓派(买斐讯便宜的盒子刷 Linux 也是可以的)、或长期开机的电脑 NAS 软路由等、或者云服务器、或者手机。都可以

  • 胶水、剪刀等工具

这里我自己的杜邦线买错了!(害我插错了口,折腾大半天,记得买公对母的),这里没有任何广告,只要东西对买便宜的就行。

3D 打印的光栅素材在 这里,有钱的可以全打印了(我只打印了光栅、后盖打印比较贵、前盖也可以不要,有钱还是全打印吧,方便点)。这里一定要注意打印材料别选透光的,我就选错了 = = ,导致效果差很多。国内有很多 3D 打印平台,上传下 STL 文件就能打印,很方便。速加网、未来工场、云工厂、魔猴等等。(我未来工厂打印的、纯属名字好听,相对便宜)

安装 AWTRIX 2.0 服务端

官方的文档:https://docs.blueforcer.de/#/v2/

服务端我装过三次很简单,复制粘贴下命令就行了。

设置时区

sudo timedatectl set-timezone 'Asia/Shanghai'

安装 JAVA

sudo apt-get install oracle-java8-jdk

下载 AWTRIX 服务端

sudo mkdir /usr/local/awtrixcd /usr/local/awtrixsudo wget https://blueforcer.de/downloads/awtrix.jar

创建自动启动程序

sudo nano /etc/systemd/system/awtrix.service

粘贴这个

[Unit]

Description = AWTRIX Service

After network.target = awtrix.service


[Service]

Type = forking

WorkingDirectory =/usr/local/awtrix

ExecStart = /usr/local/bin/awtrix.sh start

ExecStop = /usr/local/bin/awtrix.sh stop

ExecReload = /usr/local/bin/awtrix.sh reload


[Install]

WantedBy=multi-user.target

创建启动脚本

sudo nano /usr/local/bin/awtrix.sh

粘贴这个

#!/bin/sh

SERVICE_NAME=awtrix

PATH_TO_JAR=/usr/local/awtrix/awtrix.jar

PID_PATH_NAME=/tmp/awtrix-pid

case $1 in

    start)

        echo "Starting $SERVICE_NAME ..."

        if [ ! -f $PID_PATH_NAME ]; then

            sudo nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &

                        echo $! > $PID_PATH_NAME

            echo "$SERVICE_NAME started ..."

        else

            echo "$SERVICE_NAME is already running ..."

        fi

    ;;

    stop)

        if [ -f $PID_PATH_NAME ]; then

            PID=$(cat $PID_PATH_NAME);

            echo "$SERVICE_NAME stoping ..."

            kill $PID;

            echo "$SERVICE_NAME stopped ..."

            rm $PID_PATH_NAME

        else

            echo "$SERVICE_NAME is not running ..."

        fi

    ;;

    restart)

        if [ -f $PID_PATH_NAME ]; then

            PID=$(cat $PID_PATH_NAME);

            echo "$SERVICE_NAME stopping ...";

            kill $PID;

            echo "$SERVICE_NAME stopped ...";

            rm $PID_PATH_NAME

            echo "$SERVICE_NAME starting ..."

            sudo nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &

                        echo $! > $PID_PATH_NAME

            echo "$SERVICE_NAME started ..."

        else

            echo "$SERVICE_NAME is not running ..."

        fi

    ;;

esac

给权限

sudo chmod +x /usr/local/bin/awtrix.sh

测试、启动、重启、停止

sudo /usr/local/bin/./awtrix.sh start

sudo /usr/local/bin/./awtrix.sh stop

sudo /usr/local/bin/./awtrix.sh restart

开启服务,然后让其后台运行

sudo systemctl enable awtrixsudo systemctl start awtrix.service

更新脚本(有更新才需要更新)

sudo -i

cd /usr/local/awtrix

systemctl stop awtrix.service

wget -N awtrix.jar https://blueforcer.de/downloads/awtrix.jar

systemctl start awtrix.service

官方文档还有安卓手机上安装服务端的教程,可以自行去看。

安装好后浏览器打开这个服务端的 IP,然后端口默认都是 7000,就能看见管理后台了。(这时候提示客户端没连接是正常的)

客户端固件刷写

我这里测试了 Linux 和 Windows 平台都是不需要单独安装驱动的,Mac 驱动可以参考 这个网页

第一步,安装好 Visual Studio Code,然后下载 这个文件 后用 Visual Studio Code 打开。

第二步,打开根目录下 awtrix-conf.h 文件,修改 Wi-Fi 和服务器设置。ssid 填写 Wi-Fi 名,password 填写 Wi-Fi 密码,awtrix_server 填写自己 awtrix 服务器的 IP(不需要填端口)

第三步,在 Visual Studio Code 里安装 Platform.IO 插件,超级无敌方便。(Linux 下会自己安装)USB 插上 ESP8266 后点 Devices 应该能看到你的设备,如果找不到,可以重启下 VS Code 或者查看插件是否安装好、USB 线等。

第四步,USB 插上设备(ESP8266),点击箭头刷写固件就 OK。

刷写好后,把 ESP8266 插上电就能连接上 WIFI 了。这时你可以去路由器后台,或者你的 AWTRIX 服务端查看检查是否都正确连接了。(路由器后台设备的名字应该是 ESP 开头)

组装连接和装饰

ESP8266 和像素屏幕用杜邦线连接(记住是接 DIN 的那三个,之前因为买错线接反的我 = =)。像素屏上的 DIN 接 ESP8266 上的 D2 口,像素屏 GND 接 ESP8266 的 GND,像素屏 5V 接 ESP8266 的 3V3(不要问为啥 3V3,其实 3v 的也可以)。如果你之前的做的是对的,这时应该就已经亮了,显示时间。(没亮也正常,多找找自己哪错了)

粘贴好两块 3D 打印的光栅,然后将柔性屏幕贴上去(我是旁边用胶布粘的)。光栅的作用是让圆的光点变成四方的像素,看起来更大更舒服。

下一步,将 A4 纸或者其他纸,粘贴到光栅上去,可以用胶棒。

当然组装多样,你可以看自己需求和创意。我在后面直接绑了个大的移动电源。

AWTRIX 论坛网友有这些创意你可以看下


总结

官方文档在:https://docs.blueforcer.de/#/v2/,有问题可以多看看,后台操作也很方便。有些 app 需要绑定账户,或者 API 的 Key。做完这个还是很开心的,我觉得特别酷,以后还可以自己写一些显示的 app。

我做完的样子:

看 Youtube 的 follower 数量

看天气

看 B 站粉丝

awsl,实在太酷了。后悔 3D 打印选错了选了透光的材料,看起来差很多。

感谢 @黑影儿TV 的视频和回复,大家也可以看看他在 B 站的视频,没弄错的话 B 站粉丝统计是他写的。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存