構(gòu)建基于ESP32的網(wǎng)絡(luò)速度監(jiān)視器
有沒有想過你的WiFi網(wǎng)絡(luò)到底有多快?雖然互聯(lián)網(wǎng)服務(wù)提供商承諾高速,但實際性能可能會因網(wǎng)絡(luò)擁塞、信號干擾或硬件限制而波動。
在本教程中,我們將構(gòu)建一個基于ESP32的WiFi網(wǎng)絡(luò)速度監(jiān)視器,該監(jiān)視器運行定期測試并以每秒請求數(shù)(req/s)或每秒兆比特數(shù)(Mbps)顯示結(jié)果。這種物聯(lián)網(wǎng)驅(qū)動的速度測試將有助于監(jiān)控網(wǎng)絡(luò)穩(wěn)定性并檢測停機(jī)時間。
你會學(xué)到什么:
?連接ESP32到WiFi
?發(fā)送HTTP請求和測量響應(yīng)時間
?以Mbps計算網(wǎng)絡(luò)速度
?通過串行監(jiān)視器或OLED顯示速度指標(biāo)
?自動執(zhí)行網(wǎng)絡(luò)健康檢查
所需的組件
在開始之前,請確保您具備以下內(nèi)容:
?ESP32開發(fā)板
?WiFi連接(ESP32推薦2.4GHz)
?Arduino IDE(安裝ESP32板)
?跳線(如果使用顯示器)
?OLED顯示屏(可選)
ESP32網(wǎng)絡(luò)速度測試是如何工作的
?WiFi連接:ESP32連接到您的WiFi網(wǎng)絡(luò)。
?HTTP請求:它向測試服務(wù)器(httpbin.org)發(fā)送多個請求。
?響應(yīng)時間測量:計算請求持續(xù)時間以估計網(wǎng)絡(luò)速度。
?數(shù)據(jù)處理:將速度轉(zhuǎn)換為每秒請求數(shù)或每秒兆比特(Mbps)。
?顯示結(jié)果:通過串行監(jiān)視器或OLED屏幕輸出結(jié)果。
為您的項目制造pcb
您必須檢查PCBWAY在線訂購pcb便宜!
你得到10個高質(zhì)量的pcb制造和運送到你的家門口便宜。你也可以在第一次訂購時獲得折扣。將您的Gerber文件上傳到PCBWAY,以獲得高質(zhì)量和快速周轉(zhuǎn)時間的制造。PCBWay現(xiàn)在可以提供完整的產(chǎn)品解決方案,從設(shè)計到外殼生產(chǎn)??纯此麄兊脑诰€Gerber瀏覽器功能。有了獎勵積分,你就可以從他們的禮品店得到免費的東西。此外,從這里查看這個有用的博客PCBWay插件KiCad。使用此插件,您可以在KiCad中完成設(shè)計后直接訂購pcb。
設(shè)置Arduino IDE
在編寫代碼之前,請安裝以下庫:
?WiFi.h - ESP32 WiFi連接
?WiFiClientSecure.h -保護(hù)HTTPS請求
?ArduinoJson.h -(可選)用于處理API數(shù)據(jù)
如何安裝:
?打開Arduino IDE→進(jìn)入Sketch→包含庫→管理庫
?搜索WiFiClientSecure和ArduinoJson,并安裝它們。
ESP32網(wǎng)絡(luò)速度測試代碼
這里是完整的ESP32代碼,用于測量WiFi速度(每秒請求數(shù)和Mbps)
代碼的解釋
?ESP32連接WiFi
?向httpbin.org發(fā)送10個HTTP請求
?度量所有請求所花費的總時間
計算速度:
?每秒請求數(shù)(req/s)
?下載速度(Mbps)使用DataSize * 8 / TimeTaken公式
?每60秒重復(fù)速度測試
在OLED屏幕上顯示數(shù)據(jù)(可選)
如果你想要視覺反饋,連接一個SSD1306 OLED顯示器并修改代碼:
增強(qiáng)和未來改進(jìn)
您可以擴(kuò)展這個項目:
?添加一個Web儀表板- ESP32主機(jī)顯示結(jié)果的網(wǎng)頁。
?存儲數(shù)據(jù)-使用Firebase或SD卡記錄速度趨勢。
?實時警報-觸發(fā)通知時,WiFi速度下降到低于閾值。
結(jié)論
使用這款ESP32供電的網(wǎng)絡(luò)速度監(jiān)視器,您可以檢查WiFi性能,檢測波動,甚至自動化智能家居應(yīng)用程序的連接測試。
本文編譯自hackster.io