在上期文章中,为大家介绍了利用ESP8266将哪吒探针数据通过OLED屏幕展示出来。看到小伙伴们都很喜欢,也有小伙伴建议屏幕太小了,因此“船新”版本来了。

项目地址: https://github.com/Priess0503/ESP8266-TFT_eSPI
新版效果
本次,我采用了一块1.54寸 ips屏幕。让数据尽可能多的展示出来。同时,通过环图展示CPU和内存状态,效果更美!同时,在下方增加了磁盘使用占比图,磁盘容量更清晰。

快速上手
可以参考历史文章进行搭建,利用探针的好处是当我们用多台服务器时,可以方便的统一查看状态。
执行后端脚本
python3 kali.py
注意,修改你的WSS地址和内网IP地址(为了安全,建议在内网运行脚本)

访问api接口,效果如下:
{
"id": 3,
"name": "服务器",
"platform": "centos",
"cpu_usage": 11.2,
"memory_usage": 81.8,
"disk_total_gb": 49.09,
"disk_usage": 66.16,
"upload_speed_kb": 48.75,
"download_speed_kb": 6.68
}线路连接(ESP8266 → 屏幕)
| ESP8266 引脚 | 屏幕引脚 | 功能说明 |
|---|---|---|
| 3V3 | VCC | 电源正极 |
| GND | GND | 电源负极 |
| D5 (GPIO14) | SCL/CLK | SPI 时钟 |
| D7 (GPIO13) | SDA/MOSI | SPI 数据 |
| D8 (GPIO15) | CS | 片选 |
| D3 (GPIO0) | DC | 数据 / 命令 |
| D4 (GPIO2) | RES | 复位 |
| 可选 | BLK | 背光控制(可接 3V3 常亮) |
安装 TFT_eSPI 库
安装 TFT_eSPI 库,打开 Arduino 安装目录下的libraries/TFT_eSPI/User_Setup.h文件找到并修改以下配置:
// 选择ST7789驱动
#define ST7789_DRIVER
// 屏幕分辨率
#define TFT_WIDTH 240
#define TFT_HEIGHT 240
// 旋转方向(根据实际安装调整,0-3)
#define TFT_ROTATION 0
// SPI引脚定义
#define TFT_MISO 12 // 可选,若屏幕不支持读取可悬空
#define TFT_MOSI 13 // D7
#define TFT_SCLK 14 // D5
#define TFT_CS 15 // D8
#define TFT_DC 0 // D3
#define TFT_RST 2 // D4
// 背光控制(如果需要)
#define TFT_BL 4 // 可选,接D2或其他GPIO
#define BACKLIGHT_ON HIGH到此,准备工作完成!
修改主程序中的WiFi信息和后端API端口,编译上传即可。

二次开发指南
TFT_eSPI 库对汉字的支持并不友好。我们需要利用字模软件对所需要的汉字进行编码。

复制汉字信息到MyChineseFont.h文件,并更新CHINESE_FONT_COUNT的值。如,有21个字符,这里就是21。

同时,修改OpenFontRender.h文件,添加刚才新增的汉字的信息和数量。

这样,就可以显示自己所需要的汉字了。
如果你想要修改或者增加图标。收集自己的图标建议 20 * 20 像素。完成后,运行images.py脚本后,我们便得到了icons.h文件。

然后,在需要显示的地方进行显示图片即可。
const uint16_t *pickIcon(const char *platform) {
if (platform == nullptr) return nullptr;
String p = String(platform);
p.toLowerCase();
if (p.indexOf("centos") != -1) return centosIcon;
if (p.indexOf("debian") != -1) return debianIcon;
if (p.indexOf("raspbian") != -1 || p.indexOf("raspi") != -1 || p.indexOf("pi") != -1) return raspiIcon;
return nullptr;
}
