找回密码
 立即注册
查看: 31146|回复: 161

[教程] x3p猫盘的led控制系统之让led灯显示网速

 火.. [复制链接]

21

主题

86

回帖

902

积分

中级渣柚V2

积分
902
chwhsen 发表于 2019-10-6 12:23:16 | 显示全部楼层 |阅读模式 IP:–河南–鹤壁 联通
之前我们你已经说过了led管控机制9 @, ^; c- G% K
聊一聊x3p的LED控制机制( x, N! \5 }4 P% ~, N9 U' f
和用led来显示硬盘温度
" P" v5 q7 Q8 o+ t让你的RGB灯来指示系统温度  H. ]1 k  D( ~, i1 c- {
现在我们可以进一步让led来显示系统网速,且往下看
( g6 Z: y1 D" T# J3 O需要用到一个python脚本来获取系统的联网状态以及各个io状态2 `: O  W) r2 b$ `+ m
  1. import psutil+ c7 `* }/ h; P
  2. print(psutil.net_io_counters(pernic=True))
复制代码
输出结果是下面的& b/ G( m" Q: G6 |* x
  1. {
    ! e  a) E9 i. U3 F2 a( v  y
  2.         'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
    : `) d7 q, U6 X4 I3 J# l
  3.         'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
    5 d7 ?. f% D1 e
  4.         'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
    1 u; V" Q6 D/ y+ w5 ]
  5.         'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
    4 {) _1 Z$ I; ~# g
  6.         'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
    : m# y9 m. s* r/ s- V/ E& h' `4 e
  7.         'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
    " ~/ m9 R9 h0 p2 [4 h! s
  8. }
复制代码
有了数据就能够处理数据转化为网速了。
, |0 Z5 ~: c1 T+ z0 @& v6 A+ ^ 批注 2019-10-06 120535.png : n4 V7 V% J1 M1 s$ c, Y
因为网速差别实在太大,所以我用了分级显示的方案:) k- b3 S$ Y1 X+ k/ P6 m
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯2 S* y$ y# ^: l: S% c
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
& V- \$ ?% m" p" W- z* I3 ?网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
; K! m% p$ e: q8 L6 j; O; O8 y
  1. net_led_dn() {9 o3 \1 j9 j- S. X5 N
  2.     python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
    8 S/ @, {7 g  S+ P, \
  3.     new_rtx=$(cat /root/new.rtx)$ a3 n# i6 I, B
  4.     old_rtx=$(cat /root/rtx.log)
    * r5 s  c" Q: d+ o8 [- j7 A
  5.     rtx=$(expr $new_rtx - $old_rtx)8 S) _; U5 a8 ?! N
  6.     echo $rtx1 l( o2 o* I  p% h3 [
  7.     if [ $rtx -lt 1024 ]; then' V+ v8 l7 a& C& X3 P6 Y2 n
  8.                                                                                                                                                                                               ) n! h) x. @. l1 a' u6 n0 {6 i( M7 {
  9.         rtx_led=$(expr $rtx / 4)' E  n! y8 G, Z
  10.                                                                                                                                                                                               # u2 e! z# o' U- D1 t  m7 c
  11.         set_led c1 $rtx_led 0
    / o8 o; o' I4 j* [0 p2 M
  12.         set_led c2 0 0
    - D* s0 e- q0 Z9 Y: a, K7 ~) E% x5 u
  13.         set_led c3 0 0
    % d5 v6 X1 g4 N$ g
  14.                                                                                                                                                                                               ( c. q/ P- j0 s! s! A8 g
  15.     elif [ $rtx -lt 1048576 ]; then
    , a! s% w4 U4 i- _7 ^* A4 M
  16.         rtx_led=$(expr $rtx / 4096)) [5 [+ ]( n- N- j; I8 o
  17.         set_led c1 0 0) C) w, A- p# S; t
  18.         set_led c2 $rtx_led 0
    - b5 t3 _( q. c; p% F5 [
  19.         set_led c3 0 0
    # k: ?5 r- ^1 g! z
  20.     elif [ $rtx -lt 1073741824 ]; then2 d) n3 r0 w# y) P( c7 z
  21.         rtx_led=$(expr $rtx / 4194304)  D+ j$ y& [. D) r$ s! i
  22.         set_led c1 0 0
    ( _/ E; n! J0 c" t1 W8 {$ k1 ^
  23.         set_led c2 0 0
    + Y6 R: K0 E) }: k9 w
  24.         set_led c3 $rtx_led 0
    5 k: T6 S; W3 e
  25.     fi: g- e3 e  U' e2 b% o4 ~/ m
  26.     echo $new_rtx >/root/rtx.log" G. C3 D1 \4 z8 N$ F
  27. }
复制代码
这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。- I0 f* H1 j% I. K
下面是完整脚本,看附件吧。
3 L+ y% x# Z) p. ?# f" X  G2 S一共有五个文件8 ^- O; Z5 n& Z! G/ T0 e2 a: ^& ~
  1. ledstatus.sh                  #放在/opt/bin文件夹下替换
    & O9 s5 h+ v% l3 X* y+ ]. i
  2. netspeed.py                 #放在root下 ! V, }+ p  _5 }0 j0 d" Y
  3. new.rt                         #放在root下, u- ^8 }  V: C1 w6 u" Y1 }
  4. mew.rtx                       #放在root下. @; m0 {. F3 `' l
  5. rtx                              #放在root下
复制代码
% L. g+ s+ t+ S0 Z/ }$ B' f
0 I7 `0 T- c$ z' k3 s- }) h
led_control.zip (1015 Bytes, 下载次数: 114)
( y+ E% K/ e) ?; f( y7 ^解压密码(刮刮乐):chwhsen" {) \9 a- m) x9 V

- q/ H# g" R4 |1 r8 e
- b' Z8 C4 r, x# \! x& {% h
: U8 u$ g- n+ {7 y$ h

评分

参与人数 3渣金 +35 经验值 +65 收起 理由
jakc + 10 + 15 很给力!
yzfdy + 10 + 10 很给力!
xxx + 15 + 40 很给力!

查看全部评分

8

主题

50

回帖

320

积分

中级渣柚V1

积分
320
zsyg 发表于 2019-10-6 12:51:07 | 显示全部楼层 IP:–广西 移动/数据上网公共出口
谢谢分享

4

主题

768

回帖

5019

积分

资深垃圾佬

积分
5019
kpxx 发表于 2019-10-6 13:27:51 | 显示全部楼层 IP:–广东–江门 电信
好教程,谢谢分享,

27

主题

133

回帖

408

积分

中级渣柚V1

积分
408
47823439 发表于 2019-10-6 13:42:40 | 显示全部楼层 IP:–河南–郑州 联通
厉害了!!!!1

1

主题

5

回帖

45

积分

初级渣柚V1

积分
45
逆水三千 发表于 2019-10-7 22:12:17 | 显示全部楼层 IP:–天津–天津 联通
佩服超级厉害了

12

主题

157

回帖

470

积分

中级渣柚V1

积分
470
起司 发表于 2019-10-7 22:57:46 来自手机 | 显示全部楼层 IP:–山东–东营 联通
感谢分享

3

主题

72

回帖

663

积分

中级渣柚V2

积分
663
Tate 发表于 2019-10-7 23:15:48 | 显示全部楼层 IP:–广东–珠海 电信
感谢分享。先收藏了

42

主题

396

回帖

2230

积分

中级渣柚V3

积分
2230
tiandap 发表于 2019-10-8 07:39:56 | 显示全部楼层 IP:–天津–天津 联通
厉害了!

4

主题

40

回帖

243

积分

中级渣柚V1

积分
243
ziyouchidu 发表于 2019-10-8 08:23:32 来自手机 | 显示全部楼层 IP:–山东 电信数据上网公共出口
牛掰牛掰,厉害厉害
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2026-9-23 20:13 , Processed in 0.065925 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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