带电流表的文件服务器


木易
转载
发布时间: 2025-06-09 19:45:14 | 阅读数 0收藏数 0评论数 0
封面
为了充分利用新升级的4TB希捷Ironwolf硬盘文件服务器,我常使用它进行数据备份、文件存储及媒体播放。鉴于Raspberry Pi (RPI) 3B/3B+及硬盘的高功耗,我选用了一个12V/2.0A与5V/5.2A的大功率电源,并添加了一个基于INA219芯片的电流表来监测实际的电流消耗。
1

原理图

为了更好地理解,文件服务器电路由以下组件组成。

- 高容量(5V/5.2A、12V/2.0A)两通道开关电源单元,为RPI和5.25英寸HDD的运行提供电力

- 5.25英寸HDD通过SATA与RPI连接至USB接口模块

- 由于 5.25 英寸硬盘需要 12V 电源来运行盘片电机,需要 5V 电源来激活硬盘控制器板,因此需要两种不同电压的电源

- RPI 3B+安装Linux操作系统并支持Samba文件系统服务与PC连接

- 使用Windows资源管理器程序,可以通过网络连接存储访问4TB硬盘,目录链接如“\\192.168.0.3\pi”

当连接到 PRI 的 4TB HDD 作为网络存储连接时,可以像集成到 PC 中的本地存储一样操作 HDD 中存储的所有目录和数据。

虽然上述电路中的 INA219 电流表使用了 16x2 LCD,但本次项目中使用了 4 位 7 段显示器。

但电流表电路的操作方案是相同的。

当 INA219 传感器嵌入电源的正极 (+) 端子时,会感测到热线(正极端子)中流动的电流,并将捕获的数据通过 I2C 通信线传输到 Arduino pro-mini 板。

由于我只对电流值感兴趣,因此当前流动的电流水平在 4 位 7 段显示屏上显示为 mA(0000mA ~ 9999mA/9.9A)。

由于使用共阳极类型的7段模块,Arduino中存储的草图程序处理来自INA219的感测数据,以在7段显示器上正确显示mA值。

我将在下面的另一步骤中解释sketch程序的运行逻辑。

2

零件

文件服务器的主要部分由下面列出的许多组件组成。

- 2通道开关电源(UP50DAC:5V/5.2A、12V/2.0A)

- 希捷 IRONWOLF 4TB SATA 硬盘 7200rpm

- SATA转USB 3.0硬盘接口线(HDD接口控制器,12V和5V电源输入)支持3Gbps传输速率

- 带冷却风扇电路的Raspberry Pi 3B+控制器板(更多详细信息请参阅之前的说明)

- 设备机箱用PCB、电源开关、插座及电缆、亚克力板

电流表电路由以下部分组成。

- Arduino pro-mini 5V 16MHz 板

- INA219 电流传感器分线板(5V,I2C 接口)

- 共阳极4位7段显示器

- 通用PCB,杜邦电缆线

外壳方面,所有电子元件安全、厚(5T底面、3T盖)亚克力板和4mm金属支架用螺栓和螺母紧固固定。

3

草图程序

当您查看步骤 1 - 原理图时,7 段连接到 Arduino,具有 4 条控制线(Arduino 引脚 9 ~ 引脚 12)和 7 条数据线(Arduino 引脚 2 ~ 引脚 8)。

由于七段模块的 4 个数字共用 7 根数据线,因此每个数字应以很短的周期(如 5ms ~ 10ms)连续显示。

当连续执行简短连续的数字显示时,7 段显示器上稳定显示 4 位数字,如上图所示。

这是一种视觉技巧,广泛用于播放由许多图片帧组成的很长的电影。

当您查看中间的图片时,您可以了解共阳极型七段显示器的工作原理。

为了正确显示数字,应正确配置 7 条数据线的电压状态,如下所示的草图代码。

void disp_4() {

digitalWrite(pinA, HIGH);

digitalWrite(pinB, LOW);

digitalWrite(pinC, LOW);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, LOW);

digitalWrite(pinG, LOW);

}

例如,通过如上设置各数据线电压,在7段上显示数字4。

另外,为了在最右边的位置显示数字 4,应执行以下草图代码。

void ON_1th() {

digitalWrite(D1, LOW);

digitalWrite(D2, LOW);

digitalWrite(D3, LOW);

digitalWrite(D4, HIGH);

}

在4条控制线中,只有D4(Arduino PIN 9)电压电平变为高电平(5V)以启用7段的最右边位置。

假设当前流动的电流水平为 1234mA,则使用模 (%) 运算符计算最左边的数字(十进制 1000 值),如下所示。

- 首先电流值(1234mA)除以1000

- 然后除法运算的时间值变为 1

- 然后通过模(1%10)数学运算得到余数

- 最后可以得到小数点第1000位值1

如果您查看模运算符的计算方案,您可以了解如何计算每个数字,

欲了解更多详细信息,请查看此步骤所附的草图程序。

当您将草图代码与上面的流程图进行比较时,也许您可​​以轻松理解4位7段显示屏上显示的总体电流值。

INO
7_segment_mini_INA219.ino
5.69KB
4

操作与结论

由于显示的电流水平仅通过 5V 电源线测量,因此显示值并不显示从开关电源模块流出的所有电流。

但所有主要耗电电路均连接至5V电源线(12V电源仅用于驱动硬盘盘片电机),显示的电流值可以视为文件服务器电路的主要耗电结果。

正如您在下面的视频中看到的,当 RPI 启动并初始化 HDD 以进行连接时,最大功耗达到约 1200mA (1.2A)。

当使用大量存储访问命令(例如从其他 RPI 服务器运行 scp –r 命令)时,有时可以流过约 1.8A 的电流。

但RPI和HDD的总电流使用量并未超过2.0A水平。

最后,我可以看到在严重过载的情况下 RPI 消耗了多少电流。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报