三瓶可乐不过岗

三瓶可乐不过岗

| ω・´) 可乐的文章在这里 threkork.me
github
pixiv

自製一個小型UPS

最近因為個人需求,宿舍裡有個設備要 24 小時不斷網,所以萌生出了一個自製 UPS,給宿舍 WiFi 不間斷供電的想法。

所有的部件材料,都有現成的,所以 DIY 起來是很簡單的。僅僅需要的就是簡單烙錫。

  • 一個 UPS 模組
  • 根據需求,18650 電池買幾塊
  • 一個輸出功率大於充電和供電的電源適配器
  • 電線
  • 一套烙鐵工具

由於我的宿舍內的 WiFi 設備是光貓路由一體,要求的輸入是 12V 1.5A。雖然實際上功率不會這麼大,但為了不讓 UPS 模組負載太高發熱,只能購入稍貴一點的 24W 版本。

普通路由器,其實 5W 功率都行了,不需要買這麼大,根據實際需求,購買一個輸出功率小點的,還便宜。

嗯,還有,這個 UPS 模組自帶電池保護。

主要部件總共花費我:UPS 模組 24 + 四塊電池 36 + 電池盒 10=70,其他的都是有剩餘過量。要算的話,QAQ,好多,欺騙一下自己。

這個模組要求兩個電池串聯,具體可看某寶的介紹圖。所以我採用兩個並聯電池組。

這裡提一嘴,電池並聯加容量,串聯加電壓。

先接上電源適配器和輸出,再接電線,最後再接電池,按照說明圖烙上去就行。

最後的大功告成。

等待紅燈變綠燈中......

總之就是非常簡單的東西啦

計算的話,這兩個電池組最短可以堅持 2.6 小時,想要測試的話,目前最好的辦法還是實際測。

最近學了 Rust,所以拿 Rust 來寫一個 ping,查看這個 UPS 能用多久。

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);
    }
}

發現完全可以堅持完宿舍人走斷電所帶來的斷網,綽綽有餘的電量。

到此,結束。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。