找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1167

积分

0

好友

167

主题
发表于 4 天前 | 查看: 20| 回复: 0

在上篇文章中,我们介绍了利用ESP8266与OLED屏展示哪吒探针数据的方法。得益于大家的喜爱,并结合对屏幕尺寸偏小的反馈,本次带来了功能与视觉全面升级的新版本。

在此特别感谢老铁提出的建议
项目地址二维码

项目地址:https://github.com/Priess0503/ESP8266-TFT_eSPI/

新版显示效果

本次升级选用了一块1.54寸IPS屏幕,显著提升了信息展示空间。界面采用环形图动态展示CPU与内存使用率,视觉效果更佳。同时,屏幕底部新增了磁盘使用情况的百分比图示,使存储容量一目了然。

1.54寸IPS屏幕显示效果

快速搭建教程

第一步:搭建哪吒探针

首先,你需要在服务器上部署哪吒探针(Nezha Monitor)。该探针的优势在于能够集中监控多台服务器的状态,便于统一管理。具体安装步骤可参考相关历史文档。

第二步:启动后端API服务

本项目需要一个简单的Python后端脚本来从哪吒探针获取数据并提供API接口。在存放脚本的目录下执行命令启动服务:

python3 kali.py

启动前,请务必根据你的实际环境修改脚本中的WSS地址和服务器内网IP地址(建议在内网环境中运行以保障安全)。

修改后端脚本配置

服务启动后,访问指定的API接口,将收到如下格式的JSON数据,其中包含了服务器的各项性能指标:

{
    "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开发板与TFT屏幕的引脚:

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库

在Arduino IDE中安装 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

第五步:烧录代码到ESP8266

打开项目主程序文件,根据你的网络环境修改Wi-Fi名称、密码以及后端API的地址和端口。随后在Arduino IDE中编译并上传代码到ESP8266开发板。

修改WiFi和API配置

完成以上步骤,你的服务器监控副屏即可开始工作。

二次开发指南

1. 自定义汉字显示

TFT_eSPI库对中文支持有限,需要自行提取字模。使用字模软件(如PCtoLCD)将所需汉字生成字模数据。

字模软件生成汉字

将生成的字模数组复制到项目中的 MyChineseFont.h 文件,并更新 CHINESE_FONT_COUNT 的值为字符总数(例如21个字符就填写21)。

更新字模文件

同时,需要在 OpenFontRender.h 文件中,添加新增汉字字模的引用和数量声明。完成这些修改后,程序即可显示你自定义的汉字。

2. 修改或增加系统图标

如果你想更换或添加代表不同操作系统的图标,建议准备20*20像素的图片。运行项目包中提供的 images.py 脚本,可以将图片转换为 icons.h 头文件中的像素数组。

运行脚本生成图标数据

随后,在主程序的 pickIcon 函数中,根据探针返回的platform字段匹配并显示对应的图标。这本质上是一种轻量级的嵌入式系统开发实践,通过图标使监控界面信息更加直观。

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;
}

通过以上步骤,你可以灵活地定制副屏的显示内容,打造一个贴合个人运维监控需求的专属看板。




上一篇:Kotlin多平台移动开发实战:提升效率、统一逻辑与原生体验解析
下一篇:程序员职场沟通实战:应对团队甩锅行为的策略与技巧
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 19:00 , Processed in 0.153285 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表