首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >仅需25元,制作服务器性能监控小副屏!

仅需25元,制作服务器性能监控小副屏!

作者头像
逍遥子大表哥
发布2025-12-21 15:03:29
发布2025-12-21 15:03:29
1960
举报
文章被收录于专栏:kali blogkali blog

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

在此特别感谢老铁提出的建议

https://github.com/Priess0503/ESP8266-TFT_eSPI/

新版效果

本次,我采用了一块1.54寸 ips屏幕。让数据尽可能多地展示出来。同时,通过环图展示CPU和内存状态,效果更美!同时,在下方增加了磁盘使用占比图,磁盘容量更清晰。

快速上手

01

搭建哪吒探针v1

可以参考历史文章进行搭建,利用探针的好处是当我们用多台服务器时,可以方便的统一查看状态。

哪吒探针V1 全新版安装
哪吒探针V1 全新版安装

哪吒探针V1 全新版安装

02

启动后端API接口

执行后端脚本

代码语言:javascript
复制
python3 kali.py

注意,修改你的WSS地址和内网IP地址(为了安全,建议在内网运行脚本)

访问api接口,效果如下:

代码语言:javascript
复制
{
      "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
    }

03

配置esp8266

线路连接(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文件找到并修改以下配置:

代码语言:javascript
复制
// 选择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

到此,准备工作完成!

05

烧录代码到8266

修改主程序中的WiFi信息和后端API端口,编译上传即可。

二次开发指南

01

修改汉字

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

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

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

这样,就可以显示自己所需要的汉字了。

02

修改图标

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

然后,在需要显示的地方进行显示图片即可。

代码语言:javascript
复制
const uint16_t *pickIcon(const char *platform) {
if (platform == nullptr) returnnullptr;
  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;
returnnullptr;
}

更多精彩文章 欢迎关注我们

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 kali笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新版效果
  • 快速上手
  • 二次开发指南
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档