使用树莓派3B制作AWTRIX时钟(上) | Sakitami的集装箱

使用树莓派3B制作AWTRIX时钟(上)

写在开头

AWTRIX 2.0(AWesome maTRIX)是一款DIY智能时钟(类似于Lametric时间),专注于可用性,Smarthome完整性和大量功能。

材料准备

在AWTRIX的官网上,除了树莓派,你要准备的设备有:
Wemos D1 Mini(ESP-12E)
8x32 WS2812B灵活矩阵
电源(> 4A)
直流插座
1000uF 10V 105C电容器
大于16G的TF卡
Windows/Linux/macOS的电脑
杜邦线
足够的资金用于3D打印屏幕外壳。3D打印图纸

然而毕竟现实和理想总是那么格格不入,我手里的WIFI模块就和官网列出的不一样。

而在接下来的文章中,我将使用这块ESP 01来完成接下来的操作。
并且我使用了一块USB转TTL控制板(使用FT232芯片)
如果你恰好买了全部的推荐硬件,我建议你去参阅AWTRIX官网

服务端搭建

可参阅AWTRIX服务器搭建

Raspbian系统安装

首先准备你的TF卡,并连接电脑。(推荐使用Windows)
格式化TF卡为FAT32格式。

将官方推荐的Raspbian文件烧写到TF卡中
可使用NOOBS简化安装流程。


两种版本均可选择,安装后无区别。

下载后直接解压,并复制到TF卡根目录即可。

注:若使用Raspbian文件,则需要连接显示器进行配置。具体步骤

系统基本配置

连接到外部显示器
在Raspbian中开启ssh、vnc,连上wifi/有线。设置一个密码,然后撤掉外部显示器。

打开你的路由器设置界面,确定RPI的IP地址。

安装服务端

更新脚本在文章末尾

SSH软件准备

在Windows10上通过商店安装Ubuntu,或者安装xshell软件。

Linux/macOS则可直接使用Terminal进行ssh连接操作。
在以下文本中,将使用Ubuntu连接RPI。

在Ubuntu的Terminal中通过ssh连接到你的树莓派。

1
2
ssh pi@树莓派的ip地址
password:刚才设置的密码

设置时区

1
sudo timedatectl set-timezone 'Asia/Shanghai'

安装oracle java8 jdk

1
sudo apt-get install oracle-java8-jdk

下载服务端文件

1
2
3
sudo mkdir /usr/local/awtrix
cd /usr/local/awtrix
sudo wget https://blueforcer.de/downloads/awtrix.jar

设置为自启动

创建awtrix.service
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
nano中写入以下文本,开头有#!/bin/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
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
赋予.sh文件可执行权限
1
sudo chmod +x /usr/local/bin/awtrix.sh
开启服务
1
2
sudo systemctl enable awtrix​.service
sudo systemctl start awtrix.service

至此,服务端的搭建就已经完成了
可以通过https://你的树莓派地址:7000访问AWTRIX配置。


下篇:使用树莓派3B制作AWTRIX时钟(下)

赞助一杯冰阔落🥤