以下のテキストを日本語に翻訳してください:
近日、個人の必要性により、寮には 24 時間インターネット接続が必要な機器がありますので、寮の WiFi に連続的に電力を供給するために自作の UPS を作るという考えが生まれました。
すべての部品と材料は手元にありますので、DIY は非常に簡単です。必要なのは単純なはんだ付けだけです。
- 1 つの UPS モジュール
- 必要に応じて、18650 バッテリーをいくつか購入します
- 充電と電力供給よりも大きな出力を持つ電源アダプター 1 つ
- 電線
- はんだ付けツール 1 セット
私の寮の WiFi 機器は光モデムとルーターが一体になっており、入力電圧は 12V1.5A が必要です。実際の消費電力はそこまで大きくないですが、UPS モジュールの負荷を高くしすぎて発熱させないために、やや高価な 24W バージョンを購入する必要があります。
通常のルーターであれば、5W の出力で十分ですので、それほど大きなものを購入する必要はありません。実際のニーズに応じて、出力が少ないものを安価に購入してください。
あと、この UPS モジュールにはバッテリー保護機能が付いています。
主要な部品の合計費用は、UPS モジュール 24 + バッテリー 4 個 36 + バッテリーボックス 10 = 70 ですが、他の部品は余っているので、実際にはかなり多くなります。自分をだましてしまいましょう。
このモジュールは 2 つのバッテリーを直列に接続する必要があります。詳細はオンラインショップの説明図を参照してください。私は 2 つの並列バッテリーグループを使用しました。
ちなみに、バッテリーを並列に接続すると容量が増え、直列に接続すると電圧が上がります。
まず、電源アダプターと出力を接続し、次に電線を接続し、最後にバッテリーを接続し、説明図に従ってはんだ付けします。
最後に、大成功です。
この 2 つのバッテリーグループは最短で 2.6 時間持ちますが、テストしたい場合は実際に試すのが最善です。
最近、Rust を学んだので、この UPS がどれくらい使えるかを確認するために Rust で ping を書いてみました。
use chrono::Local;
use rand;
use reqwest::Client;
use std::fs::File;
use std::io::Write;
use std::thread::sleep;
use std::time::Duration;
use tokio;
async fn check_internet_connection() -> bool {
let client = Client::new();
let response = client.get("https://www.baidu.com").send().await;
let foo: bool;
match response {
Ok(_response) => foo = true,
Err(_error) => foo = false,
}
foo
}
#[tokio::main]
async fn main() {
let path = "time_log.txt";
let mut output = File::create(path).unwrap();
writeln!(output, "wait start:)").unwrap();
loop {
let mut rng = rand::thread_rng();
let duration = Duration::from_secs(rand::Rng::gen_range(&mut rng, 60..180));
let local_time = Local::now();
if check_internet_connection().await {
let txt = local_time.to_string() + ": true";
writeln!(output, "{}", txt).unwrap();
} else {
let txt = local_time.to_string() + "::false::\n:(";
writeln!(output, "{}", txt).unwrap();
break;
}
sleep(duration);
}
}
この UPS は寮の停電によるネットワークの切断を完全にカバーできることがわかりました。十分な電力があります。
以上です。