一、前言
Lametric像素时钟很好看,但是无奈太贵(国外 200 刀,淘宝要卖到 1500-2000 人民币)。但 AWTRIX 2.0 项目,花很少的钱就能自己 DIY 一个 WIFI 像素时钟。下面提供一种DIY方案。
AWTRIX实现原理:使用一台电脑或者树莓派作为AWTRIX时钟的服务器用来部署相关服务用来运行APP和数据传输,AWTRIX时钟连接服务器后获取数据进行显示。
二、准备材料
- ESP8266开发板一块,最好是买官方推荐D1 Mini,其他ESP8266开发版也可以。(核心配件)
- 杜邦线、或其他焊接线若干(必须配件)
- BME280温湿度、大气压力传感器一个3.3V版本(非必须配件)
- 光敏电阻一个(非必须配件)
- 1K金属膜电阻一个,配合光敏电阻分压,供ESP8266进行AD转换(非必须配件)
- 10V 1000uF电容一个,电源输出端稳压用(非必需配件)
- 8*32 WS2812BRGB灯板一块(核心配件)
- 灯板光栅一块,3D打印或者自行制作,对显示效果影响很大(必须配件)
- 外壳可以使用积木自己拼装,或者纸板、红酒盒(非必须配件)
- 电源最好满足5V4A输出,因为灯板功耗较大,虽然一般USB电源也能驱动,但非常不推荐。(必须配件)
- 能当做服务器的树莓派、友善之臂单板电脑或者电脑、虚拟机、云服务器均可,用于部署时钟APP服务(必须配件)
- DF mini MP3 Player开源模块,用来播放带声音APP(非必须配件)
- 小扬声器(非必需配件)
- 触摸按键模块,设定时钟相关功能(非必须模块)
按以上方案整机预算不到200元甚至更低(去除服务器价格),淘宝成品时钟价格大约在388元左右。型号样式在官网上都能看到,所有配件在淘宝均有销售,很便宜,可以自行购买
三、下载ESP8266固件烧写软件和最新固件
登陆官网,地址如下:
https://awtrixdocs.blueforcer.de/#/en-en/
该项目发起者为德国人,网站支持德语和英语,网站语言选择英语,主页功能模块大致如下:硬件模块、软件模块、使用说明、API等几部分。
我们关心以下几部分(下图中有标示):
硬件模块里分为标准版和Pro版,功能没什么区别,Pro版本尺寸小,灯板尺寸也小,淘宝上不好买对应灯板,除非自己画板或者购买比较昂贵的成品件,标准版灯板尺寸8*32cm,淘宝上比较好买,个人DIY建议这款,有几家卖的比较便宜。有渠道的朋友也可以选择Pro版本进行DIY。
我们打开网站Software ->Controller控制器模块,下载相应的刷机软件工具包和最新刷机固件。
刷机方法:将ESP8266开发板用USB数据线插入电脑(电脑提前装好CH340串口驱动,因为固件下载是通过串口形式下载),打开固件刷写软件按照下面步骤进行操作:
固件烧写完成后重启ESP8266即可,此时模块未进行配网,模块处于AP状态,配网过程稍后再讲。
四、硬件电路连接示意图
图片均采自官方,下面介绍几种方案:
4.1、最基础版本:只包含控制器模块和点阵屏幕模块,下面是接线示意图。
4.2、增加光线传感器版本,包含控制器模块、光敏电阻和点阵屏幕模块,比基础版本增加屏幕亮度的自动调节,光敏电阻可选型号5528。接线图如下:
4.3、增加声音模块版本,基础硬件版本基础上增加DFPlayer Mini开源MP3模块,可配合某些APP进行声音播放(如天气预警)。接线示意如下:
4.4、增加温湿度模块,该版本在基础硬件版本基础上增加BME280传感器,可配合服务器端BME280 APP用来显示室内温湿度大气压等数据。
4.5、增加触摸按键版本,该版本增加了3个TTP223触摸按键,可以对时钟功能进行设定
以上版本可以单独实现或者叠加实现(Pro版本),接线并不冲突。
五、对服务器进行部署,Linux环境搭建(树莓派、友善之臂、云服务器、win平台虚拟机装linux均可)
AWTRIX 2.0可以在任何平台(Windows,MacOS,Linux)上运行,唯一的要求就是对Java 8(1.8_232)的支持。它是非GUI应用程序,因此不需要桌面环境。
请注意,Java的资源效率不是很高。如果要使用树莓派,建议至少使用树莓派3+及以上类似机能的产品。 AWTRIX可以在树莓派ZeroW运行,但速度较慢。
本教程描述了在Linux机器上的安装部署过程。分为官方版快速安装和脚本安装两种方式,还有一种比较稳定的方式。
============================快速安装方式=======================
5.1、安装java
sudo apt install oracle-java8-jdk
树莓派目前只能运行32位操作系统,只能安装32位java包,需从官网下载,安装过程自行百度。
5.2、下载java包
5.3、安装jar包
sudo java -jar awtrix.jar
服务自此可以运行
=========================使用脚本安装方式=========================
5.4、下载并运行
wget -N https://blueforcer.de/awtrix/awtrix.sh
sudo sh awtrix.sh
5.5、启动服务
sudo service awtrix start
5.6、停止服务
sudo service awtrix stop
5.7、重启服务
sudo service awtrix restart
=========================以上两种方式均可=========================
时钟服务到此可以运行了,使用ipconfig指令查看机器ip地址,在浏览器输入http:// [HOST-IP]:7000/ ([HOST-IP]为服务器地址),在里面可对时钟进行配置、APP安装等,可以将启动脚本加入开机自启动中,时钟服务受机器开关机影响较小,不用每次都手动启动服务。
另一种部署方式可以参考这篇文章
文章来源:https://zhuanlan.zhihu.com/p/64311328
5.8、创建文件夹
sudo mkdir /usr/local/awtrix
5.9、将jar包拷贝到该文件夹下
sudo cp xx/ awtrix.jar /usr/local/awtrix
5.10、创建自动启动程序
sudo vim/etc/systemd/system/awtrix.service
5.11、填充以下内容
[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 |
5.12、创建启动脚本
sudo vim /usr/local/bin/awtrix.sh
5.13、填充以下内容
#!/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
|
5.14、给脚本分配权限
sudo chmod +x /usr/local/bin/awtrix.sh
5.15、测试启动、停止、重启
sudo /usr/local/bin/./awtrix.sh start
sudo /usr/local/bin/./awtrix.sh stop
sudo /usr/local/bin/./awtrix.sh restart
5.16、开启服务、让其后台运行
sudo systemctl enable awtrix
sudo systemctl start awtrix.service
5.17、将启动脚本放入开机自启动中
sudo vi /etc/rc.local
exit 0之前添加
/usr/local/bin/awtrix.sh start
六、ESP8266进行配网
前面说到对ESP8266进行刷固件,刷固件完成后模块本身未进行配网,接上屏幕会显示wifi查找画面
时钟配网流程如下:
手机或者电脑使用wifi连接AWTRIX Controller名称的热点,密码为awtrixxx,连接成功后会弹出wifi配置界面。如果界面没有弹出,使用浏览器访问172.217.28.1,或者浏览任意联网的页面会弹出wifi配置界面。
页面内需要填写以下信息
SSID 填写服务器连接的wifi名称(家里的wifi名称)
Passworld 填写对应wifi的密码
AWTRIX Server 填写服务器的IP地址(树莓派等可用ifconfig查看ip信息)
模块重置方法如下:
如果发生其他问题,可以尝试重置时钟模块。如果需要再次输入主机IP。 这将删除所有已保存的wifi信息,可以通过热点再次进行设置。
有四种方法可以做到这一点:
1、
关闭wifi路由器
重新启动ESP8266
ESP8266如果找不到wifi,它将进入热点模式
类似配网过程,对模块重新进行配网配置
2、
直接通过ESP8266的复位按钮
重置ESP8266
等待3-4秒
再次重置ESP8266
屏幕以红色显示RESET
3、
关闭机器
按住左右键的同时打开机器。
等到重置倒数计时结束完成重置
4、
下载ESP8266下载工具
将您的机器连接到PC,打开软件,然后单击“擦除
七、外壳制作
外壳3D形状文件可以去下面网站下载(这里的外壳对应的是标准版大尺寸外壳,不是Pro版本的)
https://www.thingiverse.com/thing:2791276/files
3D打印较贵,对预算要求严格的朋友可以只选择打印光栅(必须必须)。光栅是拼接的,打印图纸只有一半,打印时需要打印数量为2的倍数。打印回来后进行对拼,光栅文件名称为LEDGrid2x.stl
八、制作完成
时钟连上网络后,可以在服务器端进行功能配置,尽情享受吧!