ESP32外部アンテナの実験
はじめに
ESP32-C3 Super MiniはWiFiの送受信効率が非常に悪く、少し距離が離れたり、木造家屋の1階と2階の通信にも支障が出ることがあります。
ネットを検索していると次の記事を見つけ、これに触発されて外部アンテナを試してみました。
In English
The ESP32-C3 Super Mini experiences poor WiFi performance.
This article is engaging experiments with external antennas.
Testing various lengths based on the 2.4GHz frequency revealed that a 1.5λ(19.5cm, 7.68in) antenna provided the best relative gain, followed by a 5/8λ(7.8cm, 3.07in) antenna.
WiFiの波長について
日本で使用されている2.4GHz帯のWiFiは2.4GHzから2.485GHzの周波数が使用されており、その中心周波数は2.45GHzとなっています。
この中心周波数の波長は
となり、波長は約12.5cmです。
この12.5cmを元にいくつかのアンテナ長を実験してみました。
実験環境
ESP32-C3 Super MiniとWiFiルートを木造家屋内で直線距離約7mで障害物がない状態で行いました。
アンテナ長は1.5λ、1λ、5/8λ、1/2λ、1/4λとしました。
アンテナの取り付け位置は先のURLにある写真を参照しました。
偏波面は垂直(基板に対してアンテナを垂直に立てる)としました。
データ取得はMicropythonで簡単なプログラムを作成してRSSIの値を取得しました。
以下に実験に使用したプログラムを示します。
1秒ごとに5回測定し、並べ替えた後、最高、最低を取り除いた3つのデータを平均しています。
RSSI測定プログラム
# Measure RSSI on ESP32-C3 super mini
# Mar. 25th 2025
from network import WLAN
from time import sleep
WIFI_SSID = 'WiFiルータのSSID'
WIFI_PASS = 'WiFiルータのパスワード'
def measure_rssi(wifi):
rssi_array = []
for i in range(5):
strength = wifi.status('rssi')
print(strength)
rssi_array.append(strength)
sleep(1)
rssi_array.sort()
print(rssi_array)
average = sum(rssi_array[1:4])/3
print("{:.1f}".format(average))
wifi = WLAN(0) # network.STA_IF = 0
if not wifi.isconnected():
print("Connecting to WiFi...")
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASS)
sleep(0.1)
while not wifi.isconnected():
print(".", end="")
sleep(0.2)
pass
ip = wifi.ifconfig()[0]
print(ip)
measure_rssi(wifi)
実験結果
最初にアンテナ無しのノーマル状態でRSSIを測定し、次に19.5cmの単線を半田付けし、RSSIを測定し、順次短くして行きました。
下表の相対利得の欄はアンテナ無しのRSSIとの差分を示しています。
下の表の実験結果にあるように、1.5λの19.5cmにした場合の相対利得が一番高く、22.4dBmの改善が見られました。次が5/8λの7.8cmで21.6dBm、その次が1λの12.5cmで16.3dBmとなりました。
アンテナ長[cm] | 波長λ | 1回目[dBm] | 2回目[dBm] | 3回目[dBm] | 平均[dBm] | 相対利得[dBm] | 順位 |
---|---|---|---|---|---|---|---|
None | ? | -83.3 | -83 | -83 | -83.1 | None | 6 |
19.5 | 1.5λ | -61 | -60 | -61 | -60.7 | 22.4 | 1 |
12.5 | 1λ | -67.3 | -66.7 | -66.3 | -66.8 | 16.3 | 3 |
7.8 | 5/8λ | -62 | -61.3 | -61.3 | -61.5 | 21.6 | 2 |
6.25 | 1/2λ | -73 | -67.7 | -68 | -69.6 | 13.5 | 5 |
3.124 | 1/4λ | -67.3 | -68 | -66.3 | -67.2 | 15.9 | 4 |
おわりに
1/2λの6.25cmが良いという記事を見かけますが、今回の実験結果からすると19.5cmが一番良い結果となっています。ただ、線が長すぎるので、5/8λの7.8cmを採用することにしました。
19.5cmを巻きつけてヘリカル状にするのも一つかも知れませんが、指向性が出てくると思われます。時間があるときに試してみたいと思います。
Discussion