如何制作一个 WIFI 像素时钟

如何制作一个 WIFI 像素时钟

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

前言

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

材料准备

  1. WS2812B 全彩 8*32 全彩可编程像素软屏(115元淘宝)
  2. ESP8266 WIFI 模块 CP2102 ESP-12E (27.83元 淘宝)
  3. 杜邦线 公对母(一头插一头被插)(1-2元可以和 WIFI 模块一起买、短的就行 )
  4. 3D 打印光栅(70元左右,这个后面会讲)记得打印两个素材里也标注了×2!
  5. A3 白纸一张(A4太小)
  6. micro usb 线
  7. 树莓派(买斐讯便宜的盒子刷 Linux 也是可以的)、或长期开机的电脑Nas然路由等、或者云服务器、或者手机。都可以
  8. 胶水、剪刀等工具

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

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

安装 AWTRIX 2.0 服务端

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

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

  • 设置时区

    1
    sudo timedatectl set-timezone 'Asia/Shanghai'
  • 安装JAVA

    1
    sudo apt-get install oracle-java8-jdk
  • 下载 AWTRIX 服务端

    1
    2
    3
    sudo mkdir /usr/local/awtrix
    cd /usr/local/awtrix
    sudo wget https://blueforcer.de/downloads/awtrix.jar
  • 创建自动启动程序

    1
    sudo nano /etc/systemd/system/awtrix.service
  • 粘贴这个

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [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
  • 创建启动脚本

    1
    sudo nano /usr/local/bin/awtrix.sh
  • 粘贴这个

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #!/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
  • 给权限

    1
    sudo chmod +x /usr/local/bin/awtrix.sh
  • 测试、启动、重启、停止

    1
    2
    3
    4
    5
    sudo /usr/local/bin/./awtrix.sh start

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

    sudo /usr/local/bin/./awtrix.sh restart
  • 开启服务,然后让其后台运行

    1
    2
    3
    sudo systemctl enable awtrix

    sudo systemctl start awtrix.service
  • 更新脚本(有更新才需要更新)

    1
    2
    3
    4
    5
    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 和 Win 平台都是不需要单独安装驱动的、Mac驱动可以参考这个 http://rossbates.com/2016/01/30/getting-started-esp8266-osx/

  • 安装好 Visual Studio Code,然后下载 https://github.com/awtrix/AWTRIX2.0-Controller 这个后用 Visual Studio Code 打开。

  • 打开根目录下awtrix-conf.h 文件, 修改 WIFI,和服务器设置。

    ssid(填写wifi名)

    password (填写wifi密码)

    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站粉丝统计是他写的

最后确保你关注了公众号

小塞——Here to the fools who dream

要恰饭的嘛(逃