V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
villivateur
V2EX  ›  分享创造

Topuino - 你愿意在办公桌上放一个监控服务器的小摆件吗?

  villivateur · 2021-09-01 08:26:49 +08:00 · 12409 次点击
这是一个创建于 1168 天前的主题,其中的信息可能已经有所发展或是发生改变。

我做了一个用来监控服务器的桌面小摆件

什么是 Topuino

Topuino 是我 DIY 的一个桌面小摆件,可以实现通用服务器或计算机的数据监控,包括 CPU 占用、RAM 占用、两个硬盘的可用空间、硬盘读写速度、网络 IO 速率。

为什么叫 Topuino

在 Linux 系列服务器上,我们通常使用 top 命令查看 CPU 内存占用,我最初的设想也是将 top 命令实物化,这就是 Topuino 中 Top 的由来。

在选型的时候,为了兼顾开发效率和成本,我选用了大名鼎鼎的 ESP8266 单片机,配合了 Arduino 开发框架,Arduino 则是 Topuino 中 uino 的由来。

Topuino 有哪些亮点

先看图解:

  1. 我觉得它挺好看,哑光黑的 PCB 底板富有科技感,红绿蓝三色 LED 层次分明,指示性强;
  2. 显示的参数满足大部分的需求,刷新率为 1 秒,CPU 、内存、磁盘占用以百分比表示在柱状图上,磁盘、网络 IO 各以四位数码管显示,配合 KB 、MB 单位显示,可以表示 0KB - 9999MB /s 的速率;
  3. 配置、操作方便。在需要监控的服务器上只需要跑一个 python 脚本即可; Topuino 首次上电后支持用手机或任何支持 Wi-Fi 的设备连接,并通过浏览器配置。若需要重新配置,通过按键即可恢复;
  4. 使用了通用的 USB-TypeC 接口(后期会做带电池版本);
  5. 成本不高,谁都可以承担。

Topuino 的工作原理

  • 服务器部分很简单,主站使用了 Flask,维护一个数据库,保存着从站(被监控服务器) UUID 与运行参数的映射关系(实际上现在是用 python 的字典简单实现的)。主站接收从站的运行数据,并向 Topuino 回传数据;
  • 服务器从站采用 python 的 psutil 库,获取所有的运行数据;
  • Topuino 硬件部分使用了 ESP-12F 作为 MCU,显示采用 LED 整列和数码管,显示驱动是 TM1638 芯片。

附上原理图:

PCB 打样交给专门的厂家,回来自己焊。

结语

你愿意在办公桌上放一个监控服务器的小摆件吗?至少,我做出来之后,很喜欢,就像看着一只猫一样。

另:ESP8266 的代码初步开源在 https://github.com/Villivateur/Topuino ,供大家参考。服务器端代码因为太简单且写得太丑,以后再说吧~~

全文转载自: https://blog.vvzero.com/2021/08/31/Topuino-the-wonderful-Knickknack-for-server-monitoring/

第 1 条附言  ·  2021-09-01 11:17:58 +08:00
统一回复一下,为什么用 LED 做得这么露骨?为什么不用显示屏?

1. 因为想要赛博朋克一点
2. 我要把成本控制在 20 元以内
125 条回复    2022-06-20 09:22:58 +08:00
1  2  
mosliu
    101
mosliu  
   2021-09-02 09:04:12 +08:00
有 pcb 文件么 可以打板看看
cclin
    102
cclin  
   2021-09-02 10:20:43 +08:00 via Android
挺喜欢这个风格的,不过服务器太多了,而且没有位置放它
NoirStrike
    103
NoirStrike  
   2021-09-02 10:33:58 +08:00
觉得这个更适合看自己的电脑状态, 233
tysb777
    104
tysb777  
   2021-09-02 11:50:03 +08:00
太酷了把
villivateur
    105
villivateur  
OP
   2021-09-02 12:02:13 +08:00 via Android
@mosliu dmlsbGl2YXRldXJAdnZ6ZXJvLmNvbQ== 联系我把 Gerber 发你
vcode
    106
vcode  
   2021-09-02 17:04:46 +08:00
太秀了吧
MrTwisted
    107
MrTwisted  
   2021-09-02 18:08:25 +08:00
酷!
darknoll
    108
darknoll  
   2021-09-03 07:48:00 +08:00 via Android
太伤眼睛了
macy
    109
macy  
   2021-09-03 17:24:07 +08:00
可以接在树莓派上么?
villivateur
    110
villivateur  
OP
   2021-09-03 22:25:56 +08:00 via Android
@macy 可以的
0lobster0
    111
0lobster0  
   2021-09-04 18:00:37 +08:00
为什么不选择 lcd 屏,或者水墨屏,spi 接口的。水墨屏可以电池供电,动态唤醒刷新。。。
villivateur
    112
villivateur  
OP
   2021-09-04 23:28:01 +08:00 via Android
@0lobster0 看下附言
huxiweng
    113
huxiweng  
   2021-09-06 09:25:33 +08:00
真棒,楼主能写连接 socket 服务器的硬件吗?
wwwcg
    114
wwwcg  
   2021-09-07 22:56:07 +08:00 via iPhone
有点赛博朋克的感觉了,作为一个玩具很 666
zsxzy
    115
zsxzy  
   2021-09-08 15:15:02 +08:00
很赛博朋克
psterman
    116
psterman  
   2021-09-10 08:28:19 +08:00
我选择 aida64
suxin1995
    117
suxin1995  
   2021-09-10 10:09:52 +08:00
很秀
rosees
    118
rosees  
   2021-09-13 00:44:03 +08:00
插电 不好看
充电 时不时充电很烦
浏览器放个标签就能解决的事情,就不弄得那么复杂了
y0bcn
    119
y0bcn  
   2021-09-13 15:39:36 +08:00
感觉放办公桌上这个灯会很刺眼
villivateur
    120
villivateur  
OP
   2021-09-13 19:36:48 +08:00
@y0bcn 其实实际上不亮,拍照曝光问题
guxin0123
    121
guxin0123  
   2021-09-16 18:59:39 +08:00
这个突出的 wifi 天线。。。
sakuraSou
    122
sakuraSou  
   2021-09-17 20:35:48 +08:00
巧了,楼主,咱两想法一样,我也是用 esp8266 做了一个,用的 128x64 黑白屏幕,服务端用的 nodejs
https://github.com/sakura-he/OLEDMonitorClient/blob/master/README.md
clf
    123
clf  
   2021-09-18 11:27:58 +08:00
换个彩色的 LCD 屏幕我会更喜欢。目前的风格过于硬核
CSGO
    124
CSGO  
   2022-06-20 08:59:28 +08:00
思路可以,但是面板太丑了,可以设计一下
villivateur
    125
villivateur  
OP
   2022-06-20 09:22:58 +08:00
@CSGO 新款的设计可见 https://iot.vvzero.com/
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2779 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 00:20 · PVG 08:20 · LAX 16:20 · JFK 19:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.