本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。
很久以前在看 MKBHD 的一个 Volg 时,看到他的工作室上有一个像素时钟,上面不仅显示了时间,还显示了他的 YouTobe 的订阅数量,我觉得很酷,我马上去某宝搜了一下:
看到这个价格我傻眼了,只能默默地把它加入了购物车
直到一个偶然的机会 ,我了解到了 AWRITX 这个项目,能够以相对低的成本自己 DIY 一个功能丰富的像素时钟:
于是在经过一个多星期的折腾后,我 DIY 了一个属于我的像素时钟
准备工作
- WS2812B 8x32 可编程软屏(110元)
- 杜邦线 公对母(3.38元)
- ESP8266 WIFI模块CP2102 ESP-12E(27.83元)事实上这个开发板并不是这个项目最好的选择,但是如果闲麻烦用这个也没问题
- 3D打印,图纸下载(全套约400元,我只打印了前盖板和光栅,约130元),光栅一定要打印,但是其它东西可以自己定制亚克力,比这个便宜多了
- A3纸
- 深黑色半透明玻璃贴膜,用来把显示区域变成黑色,如文章头图(可选项目,18.9元200x60cm)
- 黑色喷漆,最便宜的3D打印会导致光栅透光,影响显示效果,所以建议买一个黑色喷漆把光栅喷黑(7.8元)
- 树莓派,安卓手机,云服务器或者任何运行Linux的设备(用于服务端的搭建,我用的是手机,不建议云服务器,延迟很高)
以上是我 DIY 所购置的东西,总共花费约300元,相对来说很便宜了,对我来说 DIY 的过程才是最令人兴奋地,这是直接买买不来的。
服务端的搭建
首先讲一下树莓派等运行 Linux 设备的搭建,其实 官方文档 都有,我只不过是复读一遍罢了
安装 Java
sudo apt install default-jre
设置时区
sudo timedatectl set-timezone Asia/Shanghai
下载 AWTRIX Serversudo mkdir /usr/local/awtrix
cd /usr/local/awtrix
sudo wget https://blueforcer.de/downloads/awtrix.jar
自动启动
创建自启文件
sudo nano /etc/systemd/system/awtrix.service
将下面代码复制进去
[Unit]
Description=AWTRIX
SERVER After=network.target
[Service]
Type=simple
WorkingDirectory=/usr/local/awtrix/
ExecStart=/usr/bin/java -jar /usr/local/awtrix/awtrix.jar
[Install]
WantedBy=multi-user.target
Ctrl+x
y
回车退出保存
启用自启
sudo systemctl enable awtrix
启动 AWTRIX
sudo systemctl start awtrix
停止 AWTRIX
sudo systemctl stop awtrix
重启 AWTRIX
sudo systemctl restart awtrix
升级 AWTRIXsudo -i
cd /usr/local/awtrix
systemctl stop awtrix.service
wget -N awtrix.jar https://blueforcer.de/downloads/awtrix.jar
systemctl start awtrix.service
在 Android 设备上搭建服务端
我用的服务端就是备用机搭建的,我也推荐这样,树莓派也行,这样延迟是最低的,像素时钟的显示也是最流畅的
但是,官方文档 在这一部分的说明是错误的,按照他的做法会出错,在我研究了一番后,参考 这篇文章,成功在 Android 设备上搭建了服务端。
首先下载 Termux ,打开后长这样:
依次执行代码:
apt-get update && apt-get upgrade -yapt-get install wget -y
apt-get install proot -y
apt-get install git -y
cd ~
git clone https://github.com/MFDGaming/ubuntu-in-termux.git
cd ubuntu-in-termux
chmod +x ubuntu.sh
./ubuntu.sh
cp ~/ubuntu-in-termux/resolv.conf ~/ubuntu-in-termux/ubuntu-fs/etc/
启动 Ubuntu./start.sh
启动之后执行
apt-get update
安装 wget
apt-get install wget -y
安装 Java
apt-get install default-jre -y
修改时区
apt-get install tzdata -y
根据自己所在地区输入数字选择:
下载 AWTRIX
wget https://blueforcer.de/downloads/awtrix.jar
运行 AWTRIX
java -jar awtrix.jar
此时就能看到服务端的内网访问网址:
服务器输入网址打开:
始终没有连接,所以会有一个通知
为了维持服务端的运行,Ctrl+c杀掉刚刚启动的服务端,重新用命令后台启动:
nohup java -jar awtrix.jar &
接下来只要保证 termux 一直在手机上运行就能保持 Server 端的运行
时钟固件刷入
硬件连接:用杜邦线连接, 像素屏上的 DIN 接 ESP8266 上的 D2 口,像素屏 GND 接 ESP8266 的 GND,像素屏 5V 接 ESP8266 的 vin
安装后打开,点击侧边栏的 Extensions:
搜索 Platformio 并安装
下载固件:https://github.com/awtrix/AWTRIX2.0-Controller
解压下载好的zip,打开 Visual Studio Code,如图打开刚刚解压的文件夹
点击 awtrix-conf.h ,配置网络
SSID填连接的Wifi名字,Password填Wifi密码,Server填服务端IP,不需要填7000
填完后保存:
用 micro-usb 将开发板连接到电脑,点击下面的箭头刷入固件
这个时候屏幕应该亮了,等一会儿连接上wifi就会显示时间,至此基本配置就已经完成
Server 端的使用
Home 可以控制软件的切换,以及发送一些命令,命令的使用官方文档有说明
Myapps 管理自己已安装的软件:
Appstore 下载软件:
Status 显示连接状态:
Settings 可以设置字体,亮度等:
Settings 的重启使用后要在手机端重新执行命令运行 AWTRIX
进阶:远程遥控时钟
官方文档 介绍了一些基本的控制命令:
利用这个可以实现远程操控,在 ios 和 android 端都可以实现,Android 端略为繁琐,下面以远程执行 打开/关闭 时钟为例
iOS 端
打开 快捷指令-创建快捷指令-搜索URL,选择 URL,填入:
http://你的Server ip/api/v3/basics
再搜索 URL,选择 获取 URL 内容,方法选择 POST,请求体为 JSON,点击 添加“新字段”,选择文本,键填写 power,文本填写 false
这是 关闭显示的命令,开启只需要将 false 改为 true 即可
效果:
Android 端
Android 端的思路是用一个小号 QQ 在那个用作 Server 端的运行,当他接收到“关”时,关闭时钟,接收到“开”时,打开时钟。
这需要利用到 Tasker 和 Notification Listener这两个软件:
链接: https://pan.baidu.com/s/15WkpXsVg8D1FN\_OzbKge9A 提取码: su98
安装完后打开将两个软件的权限全都给了,注意 通知使用权 一定要给
打开 Tasker ,点击右下角+号,命名,选择事件,选择插件,选择 Notification Listener
点击右上角的笔,跳转到 Notification Listener ,点击 Apps 旁边的小九宫格选择 QQ ,Title 不填,Text 填 关,点击右上角 DONE,回到 Tasker ,再返回
右边弹出 新建任务,点击,命名,进入任务编辑,点击右下角+号,选择网络,选择 HTTP POST
如图填写,服务器端口为你的服务器ip,同理如果是 开 则将 false 改为 true
效果:
总结
其实大部分时间都是在等快递,真正折腾也只有两三天,但是自己 DIY 一个东西的成就感真的是买不到的,这就是肥宅最纯粹的快乐吧
我还开发了一个和它有相同功能(也有些它没有的功能)的安卓软件,你可以下载来试试看
参考资料
少数派文章: https://sspai.com/post/54225
B站up 黑影儿TV : https://space.bilibili.com/38995440 (帮助巨大,非常感谢)
评论