XIAO ESP32C5 ESP-Mesh オーディオ

ESP-WIFI-MESH
以下は、Espressif Systems による ESP-WIFI-MESH の公式紹介です:
ESP-WIFI-MESH は、Espressif SoC の同時 AP-STA 機能を使用してメッシュトポロジーで組織されたノードを持つワイヤレス通信ネットワークです。自己形成および自己修復ネットワークを提供し、展開が容易です。ESP-WIFI-MESH のネットワークトポロジーは、特定の Wi-Fi インフラストラクチャサポートを必要とせずに、広いエリアで最大 1000 ノードまでスケールアップできます。ESP-WIFI-MESH は、Wi-Fi 信号が届かない家庭展開シナリオでの Wi-Fi デッドスポットをカバーするためにも使用できます。
以下の特徴があります:
- 簡単で安全なセットアップ : モバイルアプリ + Bluetooth LE ネットワーク設定がサポートされており、新しいノードの迅速な追加と設定の安全な配信が可能です。
- 自己形成および自己修復 : ノードは自動的に接続/再接続し、ノードが故障した場合にネットワークが自動的に形成され、自己修復できます。
- 追加のゲートウェイ不要 : 追加のゲートウェイやインフラストラクチャは必要ありません。メッシュネットワークは数千のノードまでスケールアップでき、大規模展開に適しています。
- IP 接続性 : すべてのノードが IP 通信をサポートし、ノード間の相互接続と外部ネットワークへのアクセス(ルートノード NAT またはブリッジング経由)の両方を可能にします。
- 設計による安全性 : 標準 Wi-Fi に基づいており、ノード間の通信は WPA2 暗号化を採用して安全なデータ伝送を確保できます。
- アプリケーション : スマート照明、スマートホーム、自動化制御、大規模会場(駐車場、工場、共有スペースなど)でのネットワーキングなど、さまざまなシナリオに適用できます。
詳細については、Espressif Systems の公式リンクを参照してください:
ESP-Mesh_Audio
次に、XIAO ESP32-C5、5 GHz 周波数帯をサポートするルーター、およびコンピューターを使用して、メッシュノードシナリオでの 5 GHz 帯オーディオ伝送をシミュレートします。
ここで、あなたのコンピューターは メッシュ子ノード として機能し、5 GHz ルーター経由でデータを送信します。C5 は メッシュルートノード として機能し、データを受信します。
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
ご自宅に 5 GHz 周波数帯をサポートするルーターがない場合は、携帯電話のホットスポットを有効にし、5 GHz 周波数帯に設定して、コンピューターがこのホットスポットに接続されていることを確認してください。
Arduino プロジェクトの作成
以下のコードをコピーし、ssid と password を使用している 5 GHz 周波数帯ルーターの名前とパスワードに変更してください。
#include <WiFi.h>
#include <WiFiUdp.h>
const char* ssid = "Your_5G_Router_SSID";
const char* password = "Your_Router_Password";
#define UDP_PORT 4444
WiFiUDP udp;
uint8_t packetBuffer[1024]; // Buffer for storing received UDP packets
void setup() {
Serial.begin(115200);
// Connect to WiFi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to 5GHz WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Start UDP listening
udp.begin(UDP_PORT);
Serial.printf("Listening on UDP port %d\n", UDP_PORT);
}
void loop() {
int packetSize = udp.parsePacket();
if (packetSize) {
// Read received data
int len = udp.read(packetBuffer, 1024);
// Statistics and print: size of received packet, and signal strength (RSSI)
// Signal strength is crucial for 5GHz audio transmission
Serial.printf("[RECV] %d bytes from %s, RSSI: %d dBm\n",
len, udp.remoteIP().toString().c_str(), WiFi.RSSI());
// If you have an I2S speaker, you can call i2s_write here for playback
}
}
IP アドレスの取得
コードを XIAO ESP32-C5 にアップロードし、シリアルモニターを開くと、5 GHz WiFi ルーターに正常に接続された場合、接続された IP アドレスが印刷されます。

Python スクリプトの作成
Python スクリプトを使用する前に、まず Python 3 環境をインストールする必要があります。詳細については、対応するインストールチュートリアルをオンラインで検索してください。
Windows の任意のフォルダーに send_audio.py という名前のファイルを作成し、以下の Python コードをコピーしてください。
Arduino IDE のシリアルモニターで印刷された IP アドレスを、コード内の TARGET_IP 変数に入力してください。
import socket
import time
import random
# Set the target IP (View the IP printed out by the serial port of C5)
TARGET_IP = "192.168.x.x" # <--- Modify here!!!
TARGET_PORT = 4444
# Simulated Audio Parameters
# 16kHz sampling, 16-bit, mono -> 32000 bytes per second
# Send one packet every 20ms -> Each packet is 640 bytes
PACKET_SIZE = 640
INTERVAL = 0.02 # 20ms
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print(f"Start sending simulated audio to {TARGET_IP}:{TARGET_PORT}...")
sequence = 0
try:
while True:
# Generate simulated data (add serial numbers to facilitate packet loss detection)
# The first 4 bytes are the serial numbers, followed by random noise
payload = sequence.to_bytes(4, byteorder='big') + random.randbytes(PACKET_SIZE - 4)
sock.sendto(payload, (TARGET_IP, TARGET_PORT))
print(f"Sent packet #{sequence}, size: {len(payload)}")
sequence += 1
time.sleep(INTERVAL) # Control the transmission frequency
except KeyboardInterrupt:
print("Stopped.")
sock.close()
スクリプトファイルの実行
send_audio.py が保存されているフォルダーで右クリックし、このフォルダーでターミナルを開きます。
python send_audio.py を入力してスクリプトを実行します。接続が成功すると、20 ms ごとに XIAO ESP32-C5 にオーディオデータを送信します。

Arduino IDE のモニターウィンドウには、コンピューターの IP アドレスとバイトデータ、および接続された 5 GHz WiFi の信号強度が返されます。

おめでとうございます!この時点で、5 GHz WiFi 帯でオーディオを伝送する方法を学びました。さらなるイノベーションがあなたの実現を待っています!
技術サポートと製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!弊社製品での体験を可能な限りスムーズにするため、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。
