How to compile AWTrix APP

More Less
3 min readOct 15, 2021

--

AWTrix是一个德国人做的开源项目,是awsome matrix的缩写。使用ESP8266 WLAN microcontroller和32 × 8 WS2812B LEDs像素阵列,可以通过编程显示各种信息,像时钟,天气预报,YouTube/twitter follower数。ESP8266常见的型号是WEMOS D1 Mini Pro。ESP8266用刷机刷一下官方固件,连上电源和显示屏就可以用了。

https://blueforcer.de/shop/

https://www.ebay.com/itm/363427832713

比较费事的是做外壳。外壳一般是用3D打印,要好几百,没玩过。

设置很简单,不过需要有个服务器端,或者在电脑上运行jar文件,或者在server上运行一个docker。鉴于现在家用电脑挺多,在NAS或者树莓派上运行docker都不是什么难事。

docker image在这里:

https://hub.docker.com/r/whyet/awtrix2

运行docker container的命令如下:

docker run --name AwTriX2 -p 7000:7000 -p 7001:7001 -p 5568:5568/udp --restart always -e TZ=Europe/Berlin  whyet/awtrix2:latest

AWTrix像素钟拿到以后,用手机连接AWTrix时钟的wifi — “AWTRIX Controller” 密码:awtrixxx。手机就会自动导向一个网址,在里面设置wifi密码和server ip就可以使用了。

wifi连接上以后,会显示wifi √。

web UI里面自带app store,可以下载应用。但是app store里面没有的应用怎么办呢,比如想要即时显示股票行情。

AWTrix的应用是用b4x写的,是java的一种。网上有教程。

要运行b4x,首先要搭建编译环境。

  1. 下载JDK8或者JDK 11编译环境
    Recommended: OpenJDK 11 + OpenJFX 11: download link.

    Download the zip and unpack it. C:\java is a good place for it. It is recommended to use a tool such as 7-Zip to unzip the large package. Windows Explorer might fail to extract it properly.
    Note that other versions of Java 11+, not downloaded from B4X, will not work as JavaFX will be missing.
  • Oracle JDK 8: download link (requires creating an account).
    Check the Accept License Agreement button.
    Select “Windows x86” or “Windows x64” (for 64 bit machines) in the platforms list.
    Download the file and install it.

2. 下载开发工具: B4J

  • Download B4J Full Version
  • Open B4J.
  • Choose Tools > Configure Paths.
    It will be similar to ‘C:\java\jdk-11.0.1\bin\javac.exe’ or ‘C:\Program Files\Java\jdk1.8.0_151\bin\javac.exe’
  • Use the Browse button to locate “javac.exe”.
    javac is located under <java folder>\bin.

3. 网上下写好的B4J APP

github上有很多开源的b4j项目。比如:

https://github.com/awtrix/AWTRIX2.0-Apps
https://github.com/awtrix/hd-apps

显示股票行情的项目在这里:

下载下来以后,用B4J IDE打开b4j文件。

  1. 将以上项目导入 B4J
  2. 点击 Tools -> Configure Paths , 设置 javac 的目录和 jar 包导出目录(Additional Libraries)
  3. 编译 jar 包: 点击 Project -> Compile to Library

但是编译出错,说是找不到app.genText function。

Compiling code.    Error
Error compiling program.
Error description: Unknown member: gentext
Error occurred on line: 189
App.genText(Symbol,True,scroll,Null,True)
Word: gentext

在project的AWTRIX.bas里面确实没有定义这个函数。也许是个通用的base function。

恰好这个链接里面有:

http://blog.joylau.cn/2020/08/02/Awtrix-BlogViews/

copy这段code以后编译就通过了。

把编译好的jar文件copy到container的/date/Apps目录里

docker cp ~/Downloads/StockTicker_new.jar <containerId>:/data/Apps

在 Awtrix Web 界面重新reload apps就可以了。

显示效果如下:

RESET的方法

重启的时候,手指同时按下中间和左边的按钮,就会出现reset倒计时3,2,1。然后awtrix的状态会变成hotspot,这时候用手机直接连awtrix的wifi,就可以重新设置atrix连接的wifi和server ip了。如果awtrix重启的时候找不到网络,过了若干秒以后也会变成hotspot状态,同样可以重新设置wifi 密码。

参考链接:

http://blog.joylau.cn/2020/08/02/Awtrix-BlogViews/

https://stackoverflow.com/questions/22049212/docker-copying-files-from-docker-container-to-host

https://blueforcer.de/2019/01/04/awtrix-2-0/

--

--

More Less
More Less

Written by More Less

自由撰稿人,时评人,平等公义追求者

No responses yet