最近在下使用 ESP32C3 Super Mini 製作一些裝置,需要使用 WiFi 功能
但發現有一些 ESP32C3 Super Mini 的 WiFi 的訊號非常不穩定,無法連接 WiFi
甚至將 ESP32C3 Super Mini 當作 存取點(Access Point) 連接都無法被找到
因此在下又要找方法解決這個問題
改裝天線
翻查網上一些資料,指 ESP32C3 Super Mini 的天線設計缺憾導致
因此需要自行需要焊接額外的天線來改裝訊號穩定性
在下嘗試以相同方法焊接額外天線,但問題仍然未能解決
改變 WiFi 訊號強度
然後在下繼續翻查資料,發現有人建議使用 WiFi.setTxPower(WIFI_POWER_8_5dBm) 來調整 WiFi 訊號的強度
結果讓 ESP32C3 Super Mini 連接到 WiFi 及 成為 AP 讓其他裝置連接
但網上卻沒有介紹 WiFi.setTxPower 是甚麼功能,因此在下嘗試尋找更多資料
根據功能名稱, 在下估計用作設定 WiFi 的 傳送(Tx) 的 功耗
在下亦發現 <arduino-directory>/packages/esp32/hardware/esp32/*/libraries/WiFi/src/WiFiGeneric.h 定義一些關於 WIFI_POWER_*dBm 的設定
| 常數名稱 | 數值代號 | dBm值 |
|---|---|---|
| WIFI_POWER_21dBm | 84 | 21 |
| WIFI_POWER_20_5dBm | 82 | 20.5 |
| WIFI_POWER_20dBm | 80 | 20 |
| WIFI_POWER_19_5dBm | 78 | 19.5 |
| WIFI_POWER_19dBm | 76 | 19 |
| WIFI_POWER_18_5dBm | 74 | 18.5 |
| WIFI_POWER_17dBm | 68 | 17 |
| WIFI_POWER_15dBm | 60 | 15 |
| WIFI_POWER_13dBm | 52 | 13 |
| WIFI_POWER_11dBm | 44 | 11 |
| WIFI_POWER_8_5dBm | 34 | 8.5 |
| WIFI_POWER_7dBm | 28 | 7 |
| WIFI_POWER_5dBm | 20 | 5 |
| WIFI_POWER_2dBm | 8 | 2 |
| WIFI_POWER_MINUS_1dBm | -4 | -1 |
dBm值 越大,理論上 WiFi 的訊號越強,同樣功耗越高
但 ESP32 的官方都沒有詳細資料說明這個操作的實際用途
ESP32C3 Super Mini 預設使用 WIFI_POWER_21dBm , 因此設定為 WIFI_POWER_8_5dBm 應該會導致訊號減弱,而且用電量亦會減少
但設定後,反而能夠讓 ESP32C3 Super Mini 連接到 WiFi 及 成為 AP 讓其他裝置連接
總結
在下估計是因為 ESP32C3 Super Mini 預設使用 WIFI_POWER_21dBm 是最大功耗的設定,反而導致無法驅動 WiFi 的功能
但在下使用 USB電量計 測量時,電量卻沒有明顯變化
而在下測試所有 WIFI_POWER_*dBm 都能夠讓 ESP32C3 Super Mini 的 WiFi 功能運作正常;但不使用 WiFi.setTxPower 則無法讓 WiFi 正常使用
因此在下仍然無法了解是甚麼原因導致 ESP32C3 Super Mini 的 WiFi 功能
暫時只能盲目地加入 WiFi.setTxPower(WIFI_POWER_8_5dBm) 來讓 ESP32C3 Super Mini 的 WiFi 功能運作正常
沒有留言 :
張貼留言