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

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

  •  9
     
  •   villivateur · 51 天前 · 9317 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    什么是 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 条附言  ·  50 天前
    统一回复一下,为什么用 LED 做得这么露骨?为什么不用显示屏?

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