XIAO W5500 Ethernet Adapter 入門ガイド
はじめに
XIAO ESP32S3 Plus を搭載したコンパクトな PoE 開発ボードで、絶縁型 PoE モジュールと TPS563201 ベースの電源変換を統合し、マイコンを駆動するためのクリーンな 5V 電源を供給します。IoT プロジェクト、スマートホーム機器、産業オートメーションなど、信頼性の高い Ethernet 接続と低消費電力ワイヤレス処理を柔軟に組み合わせることで、設置を簡素化し、システム性能を向上させたい用途に最適です。

特長
-
高性能マイクロコントローラ:XIAO ESP32S3 Plus プラットフォームをベースとしており、高い処理能力と効率的なワイヤレス接続を提供するため、複雑な IoT や組み込みアプリケーションに最適です。
-
絶縁付き PoE と電源変換の統合:堅牢な絶縁型 PoE モジュールを搭載し、12V の Ethernet 電源入力を安全に受け取ることができます。高効率な TPS563201 降圧コンバータにより 12V を安定した 5V レールへ変換し、XIAO ESP32S3 Plus に最適な電力を供給します。
-
信頼性の高い Ethernet 接続:オンボードの W5500 Ethernet チップと標準 RJ45 ジャックを備え、安定した有線ネットワーク接続により、シームレスなデータ伝送とリモート管理を実現します。
-
多彩な I/O オプション:両側に I/O 出力を備えており、さまざまなセンサや周辺機器と容易にインターフェースして機能を拡張し、用途に合わせて柔軟にカスタマイズできます。
-
コンパクトで即導入可能な設計:PoE、絶縁回路、Ethernet 接続を小型フォームファクタに統合しており、スマートホーム、産業オートメーション、ネットワーク機器プロジェクトにおけるプロトタイピングを簡素化し、効率的な展開を可能にします。
仕様
| パラメータ | 説明 |
|---|---|
| MCU | XIAO ESP32-S3 Plus |
| アンテナ | 2.4GHz ロッドアンテナ (2.81dBi) |
| USB Type-C | 入力電圧 (Type-C):5V |
| PoE チップ | MQ7813T120 |
| PoE 電源 | PoE IEEE802.3af 出力電流:12V/1.1A 高効率 86%(入力 48V、負荷 12V@1.1A) |
| Ethernet チップ | WIZnet W5500 |
| Ethernet インターフェース | RJ45 10 または 100Mbps Ethernet |
| TCP/IP プロトコル | TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE |
| LED インジケータ | 電源 x 1 ユーザー x 1 |
| ボタン | リセット |
| I/O インターフェース | |
| 製品サイズ | 83 x 118 x 26 mm |
| 製品重量 | 75g |
| 筐体 | 白色 3D プリント |
ハードウェア概要
- 製品外観
- 製品内部
以下の画像は、XIAO W5500 Ethernet Adapter の外観デザインを示しています。コンパクトなフォームファクタ、Ethernet ポート、および XIAO シリーズマイコンと接続するためのインターフェースが確認できます。この設計により、スペースと信頼性が重要となるさまざまなプロジェクトへ容易に組み込むことができます。


次の画像は、XIAO W5500 Ethernet Adapter の内部構造を示しています。ここでは、内部の PCB レイアウト、W5500 Ethernet コントローラチップ、および安定した Ethernet 通信とオプションの Power over Ethernet (PoE) 機能を実現するための周辺回路を確認できます。

はじめに使ってみる
配線手順
XIAO W5500 Ethernet Adapter をネットワークに接続する推奨方法は 2 通りあります:
- PoE 対応スイッチまたはルーターを使用する方法:
- PoE 対応スイッチまたはルーターに、標準 RJ45 Ethernet ケーブルを用いて本デバイスを直接接続します。この構成では、同じケーブルでデータと電力の両方が供給されるため、XIAO ボードに別途電源を供給する必要はありません。

-
標準 Ethernet ケーブルを使用する方法:
- 通常の Ethernet ケーブル(PoE 非対応)を使用する場合は、一方をネットワークに、もう一方を XIAO W5500 Ethernet Adapter に接続します。この場合、Ethernet ケーブルはデータ通信のみを提供するため、XIAO ボードには USB-C ポートから安定した 5V 電源を別途供給する必要があります。

ヒント: セットアップに十分な長さがあり、状態の良い Ethernet ケーブルを使用して、信頼性の高い通信を確保してください。
リセットボタン
XIAO W5500 Ethernet Adapter にはリセットボタンが搭載されています。デバイス上のプログラムが期待どおりに動作しない場合や、システムを再起動する必要がある場合は、リセットボタンを 1 回押すだけで構いません。これによりデバイスが再起動され、プログラムが再初期化されるため、予期しない状態やエラーからの復旧に役立ちます。
ESP32 Arduino Ethernet ライブラリ
XIAO W5500 Ethernet Adapter は、ネットワーク接続に ESP32 Arduino Ethernet ライブラリを使用します。このライブラリは、Ethernet 接続の管理、イベント処理、ESP32 ベースボード上でのネットワークアプリケーション構築のための API とサンプルを提供します。
詳細、応用的な使い方、最新情報については、Espressif 公式ドキュメントを参照してください: ESP32 Arduino Ethernet Library Documentation
XIAO サンプル
必要なライブラリをインストールし、基本機能を理解したところで、XIAO W5500 Ethernet Adapter 向けの実用的なサンプルをいくつか見ていきましょう。これらのデモは、使い始める際の助けとなり、自身のプロジェクト向けにコードをどのように応用できるかを示します。
ステップ 1. Arduino アプリケーションを起動します。

ステップ 2. 開発ボードのモデルを選択し、Arduino IDE に追加します。
- 後述のルーチンで Seeed Studio XIAO ESP32-S3 Plus を使用するには、このチュートリアル を参照して追加作業を完了してください。
ステップ 3. 必要な部材
以下のサンプルを完了するには、次のハードウェアが必要です。XIAO W5500 Ethernet Adapter に加えて、セットアップに十分な長さの Ethernet ケーブルを用意してください。Power over Ethernet (PoE) 対応ケーブル、または標準 Ethernet ケーブルのどちらでも使用できます。標準 Ethernet ケーブル(PoE 非対応)を使用する場合は、XIAO ボードに安定した 5V 電源を別途供給していることを確認してください。
| XIAO W5500 Ethernet Adapter |
|---|
![]() |
デモ 1:Ethernet イベントロガー
目的: このデモでは、MAC アドレスや現在の IP アドレス(DHCP により割り当て)を含む Ethernet イベントをシリアルコンソールに記録します。W5500 Ethernet インターフェースの初期化方法と、そのステータスを監視する方法を示します。
代表的なユースケース: ハードウェア構成とネットワーク接続を確認するための出発点として使用できます。デバッグや、Ethernet のステータスを監視したりネットワークイベントをログに記録したりする必要があるプロジェクトに役立ちます。
#include <SPI.h>
#include <ETH.h>
#include <WiFi.h>
static bool eth_connected = false;
#ifndef ETH_PHY_CS
#define ETH_PHY_TYPE ETH_PHY_W5500
#define ETH_PHY_ADDR 1
#define ETH_PHY_CS D1
#define ETH_PHY_IRQ -1
#define ETH_PHY_RST -1
#endif
// SPI pins
#define ETH_SPI_SCK D8
#define ETH_SPI_MISO D9
#define ETH_SPI_MOSI D10
// React to Ethernet events:
void onEvent(arduino_event_id_t event, arduino_event_info_t info)
{
switch (event) {
case ARDUINO_EVENT_ETH_START:
// This will happen during setup, when the Ethernet service starts
Serial.println("ETH Started");
//set eth hostname here
ETH.setHostname("esp32-ethernet");
break;
case ARDUINO_EVENT_ETH_CONNECTED:
// This will happen when the Ethernet cable is plugged
Serial.println("ETH Connected");
break;
case ARDUINO_EVENT_ETH_GOT_IP:
// This will happen when we obtain an IP address through DHCP:
Serial.print("Got an IP Address for ETH MAC: ");
Serial.print(ETH.macAddress());
Serial.print(", IPv4: ");
Serial.print(ETH.localIP());
if (ETH.fullDuplex()) {
Serial.print(", FULL_DUPLEX");
}
Serial.print(", ");
Serial.print(ETH.linkSpeed());
Serial.println("Mbps");
eth_connected = true;
// Uncomment to automatically make a test connection to a server:
// testClient( "192.168.0.1", 80 );
break;
case ARDUINO_EVENT_ETH_DISCONNECTED:
// This will happen when the Ethernet cable is unplugged
Serial.println("ETH Disconnected");
eth_connected = false;
break;
case ARDUINO_EVENT_ETH_STOP:
// This will happen when the ETH interface is stopped but this never happens
Serial.println("ETH Stopped");
eth_connected = false;
break;
default:
break;
}
}
// Try to read something from a webserver:
void testClient(const char * host, uint16_t port)
{
Serial.print("\nConnecting to ");
Serial.print(host);
Serial.print(":");
Serial.println(port);
NetworkClient client;
if (!client.connect(host, port)) {
Serial.println("connection failed");
return;
}
client.printf("GET / HTTP/1.1\r\nHost: %s\r\n\r\n", host);
while (client.connected() && !client.available());
while (client.available()) {
Serial.write(client.read());
}
Serial.println("closing connection\n");
client.stop();
}
// Initializing everything at start up / after reset:
void setup()
{
// Wait for the hardware to initialize:
delay(500);
// This sketch will log some information to the serial console:
Serial.begin(115200); // Assuming computer will be connected to serial port at 115200 bauds
Serial.println("Setup...");
Serial.println("Registering event handler for ETH events...");
Network.onEvent(onEvent);
// Starth Ethernet (this does NOT start WiFi at the same time)
Serial.println("Starting ETH interface...");
SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI);
ETH.begin(ETH_PHY_TYPE, ETH_PHY_ADDR, ETH_PHY_CS, ETH_PHY_IRQ, ETH_PHY_RST, SPI);
Serial.println("Waiting for Ethernet connection");
while (!eth_connected) {
delay(500);
Serial.print(".");
}
}
void loop()
{
if (eth_connected) {
testClient("baidu.com", 80);
}
delay(20000);
}
Ethernet のイベントおよび IP 情報を確認するために、シリアルモニタをボーレート 115200 で開きます。コードは接続性テストとして、20 秒ごとに "baidu.com" への接続を試みます。
カスタマイズ:
testClient("baidu.com", 80);内のテストサーバーを、自分のサーバーまたはローカルネットワーク機器に変更します。- イベントハンドラを使用して、ネットワークイベント発生時にカスタムアクションをトリガーします。
デモ 2: シンプルな Ethernet Web サーバ
目的: このデモでは、W5500 Ethernet Adapter を使用して XIAO ESP32-S3 上に基本的な HTTP Web サーバを構築します。ルート URL へのリクエストに応答し、不明なルートに対してはシンプルな 404 ハンドラを提供します。
代表的なユースケース: 有線 Ethernet 接続を介して、デバイスから直接 Web ページや REST API を提供したい IoT プロジェクトに最適です。
#include <ETH.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#ifndef ETH_PHY_CS
#define ETH_PHY_TYPE ETH_PHY_W5500
#define ETH_PHY_ADDR 1
#define ETH_PHY_CS D1
#define ETH_PHY_IRQ -1
#define ETH_PHY_RST -1
#endif
// SPI pins
#define ETH_SPI_SCK D8
#define ETH_SPI_MISO D9
#define ETH_SPI_MOSI D10
static bool eth_connected = false;
WebServer server(80);
// ESP32-POE doesn't have an onboard LED so if you want to use a LED you have to attach one to the extended pins on either UEXT or one of the 10 pin extentions.
// in this example the default value is 13 which is UEXT pin 6, or Extention 2 pin 1. If you want to attach the LED to another pin you need to change this value accordingly.
const int led_pin = D0;
// Web Server: handle a request to / (root of the server)
void handleRoot() {
digitalWrite(led_pin, 1);
server.send(200, "text/plain", "hello from esp32!");
delay(100); // Wait x ms so we have time to see the Led blinking
digitalWrite(led_pin, 0);
}
// Web Server: handle a request to an unknown URI (unknown "File")
void handleNotFound() {
digitalWrite(led_pin, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
// digitalWrite(led_pin, 0); // If this is commented out, the LED will stay on in case of 404 error
}
// Handle Ethernet Events:
void onEvent(arduino_event_id_t event, arduino_event_info_t info)
{
switch (event) {
case ARDUINO_EVENT_ETH_START:
// This will happen during setup, when the Ethernet service starts
Serial.println("ETH Started");
//set eth hostname here
ETH.setHostname("esp32-ethernet");
break;
case ARDUINO_EVENT_ETH_CONNECTED:
// This will happen when the Ethernet cable is plugged
Serial.println("ETH Connected");
break;
case ARDUINO_EVENT_ETH_GOT_IP:
// This will happen when we obtain an IP address through DHCP:
Serial.print("Got an IP Address for ETH MAC: ");
Serial.print(ETH.macAddress());
Serial.print(", IPv4: ");
Serial.print(ETH.localIP());
if (ETH.fullDuplex()) {
Serial.print(", FULL_DUPLEX");
}
Serial.print(", ");
Serial.print(ETH.linkSpeed());
Serial.println("Mbps");
eth_connected = true;
// Uncomment to automatically make a test connection to a server:
// testClient( "192.168.0.1", 80 );
break;
case ARDUINO_EVENT_ETH_DISCONNECTED:
// This will happen when the Ethernet cable is unplugged
Serial.println("ETH Disconnected");
eth_connected = false;
break;
case ARDUINO_EVENT_ETH_STOP:
// This will happen when the ETH interface is stopped but this never happens
Serial.println("ETH Stopped");
eth_connected = false;
break;
default:
break;
}
}
// Try to read something from a webserver:
void testClient(const char * host, uint16_t port)
{
Serial.print("\nConnecting to ");
Serial.print(host);
Serial.print(":");
Serial.println(port);
NetworkClient client;
if (!client.connect(host, port)) {
Serial.println("connection failed");
return;
}
client.printf("GET / HTTP/1.1\r\nHost: %s\r\n\r\n", host);
while (client.connected() && !client.available());
while (client.available()) {
Serial.write(client.read());
}
Serial.println("closing connection\n");
client.stop();
}
// Initializing everything at start up / after reset:
void setup()
{
// Wait for the hardware to initialize:
delay(500);
// This sketch will log some information to the serial console:
Serial.begin(115200); // Assuming computer will be connected to serial port at 115200 bauds
Serial.print("Setup...");
Serial.print("Registering event handler for ETH events...");
Network.onEvent(onEvent);
// Starth Ethernet (this does NOT start WiFi at the same time)
Serial.print("Starting ETH interface...");
SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI, ETH_PHY_CS);
ETH.begin(ETH_PHY_TYPE, ETH_PHY_ADDR, ETH_PHY_CS, ETH_PHY_IRQ, ETH_PHY_RST, SPI);
// multicast DNS (mDNS) allows to resolve hostnames to IP addresses without a DNS server
if (MDNS.begin("esp32")) { // using mDNS name "esp32"
Serial.println("MDNS responder started");
}
// Web Server handlers:
// Handle a request to / (root of the server)
server.on("/", handleRoot);
// Minimalistic handling of another URI (LED will not flash on this one):
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
// Handle all other URIs:
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
pinMode( led_pin, OUTPUT); // Initialize the LED pin as a digital output (on/off)
}
void loop ()
{
server.handleClient();
delay(2);//allow the cpu to switch to other tasks
}
デバイスが IP アドレスを取得したら(シリアルモニタに表示されます)、ブラウザを開き、http://<your_device_ip>/ にアクセスします。ルートエンドポイントは "hello from esp32!" と応答し、LED を点滅させます。/inline やその他のパスにアクセスして、異なる応答を確認してみてください。
カスタマイズ:
server.on("/yourpath", handlerFunction);を使用して、さらに多くのエンドポイントを追加します。- センサーの読み取り値やデバイス制御を Web サーバのレスポンスに統合します。
デモ 3: Ethernet カメラストリーミングサーバ
リマインダー: このデモには、XIAO ESP32-S3 Sense ボードのカメラモジュールが必要です。XIAO W5500 Ethernet Adapter 自体にはカメラは含まれておらず、カメラソケットも現在は単体販売されていません。以前に XIAO ESP32-S3 Sense ボードを購入している場合は、そのカメラをこのデモで使用できます。きれいに設置するには、このセットアップに対応したカメラ穴付き 3D プリント可能エンクロージャについて、Resources セクションを参照してください。
目的: この高度なデモでは、XIAO ESP32-S3 のカメラモジュールと W5500 Ethernet Adapter を組み合わせて、Ethernet 経由でカメラ画像をストリーミングします。カメラの初期化、Ethernet インターフェースの設定、およびビデオストリーミング用 Web サーバの起動方法を示します。
代表的なユースケース: 監視、リモートモニタリング、または信頼性の高い有線接続を介したリアルタイム画像ストリーミングを必要とするあらゆるプロジェクトに最適です。
以下のプログラムは .ino ファイル専用であり、このプログラムをコンパイルするにはいくつかのヘッダファイルが必要です。プロジェクトの完全なソースコードは、下記のリンクから入手できます。
#include "esp_camera.h"
#include <ETH.h>
#include <WiFi.h> // For event handling
// Define the camera model being used
#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
// Include camera pin definitions
#include "camera_pins.h"
#define USE_TWO_ETH_PORTS 0
// Ethernet PHY and SPI pin definitions (adjust according to your hardware)
#ifndef ETH_PHY_CS
#define ETH_PHY_TYPE ETH_PHY_W5500
#define ETH_PHY_ADDR 1
#define ETH_PHY_CS D1
#define ETH_PHY_IRQ -1
#define ETH_PHY_RST -1
#endif
#define ETH_SPI_SCK D8
#define ETH_SPI_MISO D9
#define ETH_SPI_MOSI D10
// Global variable to track Ethernet connection status
static bool eth_connected = false;
// Function declarations
void startCameraServer();
void setupLedFlash(int pin);
void onEvent(arduino_event_id_t event, arduino_event_info_t info);
void setup() {
Serial.begin(115200);
delay(2000);
// Register Ethernet event handler
Network.onEvent(onEvent);
// Initialize SPI and Ethernet
SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI, ETH_PHY_CS);
ETH.begin(ETH_PHY_TYPE, ETH_PHY_ADDR, ETH_PHY_CS, ETH_PHY_IRQ, ETH_PHY_RST, SPI);
// Wait for Ethernet connection
Serial.print("Waiting for Ethernet connection");
while (!eth_connected) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Ethernet connected");
Serial.setDebugOutput(true);
Serial.println();
// Camera configuration structure
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sccb_sda = SIOD_GPIO_NUM;
config.pin_sccb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.frame_size = FRAMESIZE_UXGA;
config.pixel_format = PIXFORMAT_JPEG; // Use JPEG for streaming
config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
config.fb_location = CAMERA_FB_IN_PSRAM;
config.jpeg_quality = 12;
config.fb_count = 1;
// Adjust configuration based on PSRAM availability
if (config.pixel_format == PIXFORMAT_JPEG) {
if (psramFound()) {
config.jpeg_quality = 10;
config.fb_count = 2;
config.grab_mode = CAMERA_GRAB_LATEST;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.fb_location = CAMERA_FB_IN_DRAM;
}
} else {
config.frame_size = FRAMESIZE_240X240;
#if CONFIG_IDF_TARGET_ESP32S3
config.fb_count = 2;
#endif
}
#if defined(CAMERA_MODEL_ESP_EYE)
// Special pin setup for ESP-EYE
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
// Initialize the camera
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
// Adjust sensor settings for specific camera modules
sensor_t *s = esp_camera_sensor_get();
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // Vertical flip
s->set_brightness(s, 1); // Increase brightness
s->set_saturation(s, -2); // Decrease saturation
}
if (config.pixel_format == PIXFORMAT_JPEG) {
s->set_framesize(s, FRAMESIZE_QVGA); // Lower initial frame size
}
#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif
#if defined(CAMERA_MODEL_ESP32S3_EYE)
s->set_vflip(s, 1);
#endif
// Setup LED flash if the pin is defined
#if defined(LED_GPIO_NUM)
setupLedFlash(LED_GPIO_NUM);
#endif
// Start the camera web server
startCameraServer();
// Print the access URL to the serial monitor
Serial.print("Camera Ready! Use 'http://");
Serial.print(ETH.localIP());
Serial.println("' to connect");
}
void loop() {
// No additional processing needed; camera server runs in another task
delay(10000);
}
// Ethernet event handler
void onEvent(arduino_event_id_t event, arduino_event_info_t info) {
switch (event) {
case ARDUINO_EVENT_ETH_START:
Serial.println("ETH Started");
// Set Ethernet hostname here
ETH.setHostname("esp32-eth0");
break;
case ARDUINO_EVENT_ETH_CONNECTED:
Serial.println("ETH Connected");
break;
case ARDUINO_EVENT_ETH_GOT_IP:
Serial.printf("ETH Got IP: '%s'\n", esp_netif_get_desc(info.got_ip.esp_netif));
Serial.println(ETH);
eth_connected = true;
break;
case ARDUINO_EVENT_ETH_LOST_IP:
Serial.println("ETH Lost IP");
eth_connected = false;
break;
case ARDUINO_EVENT_ETH_DISCONNECTED:
Serial.println("ETH Disconnected");
eth_connected = false;
break;
case ARDUINO_EVENT_ETH_STOP:
Serial.println("ETH Stopped");
eth_connected = false;
break;
default:
break;
}
}
デバイスがネットワークに接続された後、シリアルモニタを開いてデバイスの IP アドレスを確認します。ブラウザにその IP アドレスを入力して、カメラストリームにアクセスします。
カスタマイズ:
camera_config_t構造体内でカメラ設定(解像度、画質、フレームサイズ)を調整します。- Web サーバーコードを変更して、認証や追加のエンドポイントを追加します。
- カスタムハードウェアに合わせて Ethernet のピン定義を調整します。
FAQ
Q1: W5500 Adapter のネットワーク信号が弱いのはなぜですか?解決策はありますか?
WiFi を使用するすべてのコード内に電力調整用のコードセグメントを追加することが可能で、送信電力を調整することで信号強度を大幅に改善できます。
例えば、次のコードスニペットのように、Setup() 内の関数に電力を調整するためのコードを追加します。
// 1. Set WiFi to Station mode
WiFi.mode(WIFI_STA);
// 2. Adjust WiFi transmit power (Key correction)
int8_t power_dbm = 15;
int8_t power_param = (int8_t)(power_dbm / 0.25);
esp_err_t err = esp_wifi_set_max_tx_power(power_param);
if (err == ESP_OK) {
Serial.print("Successfully set WiFi TX Power to: ");
Serial.print(power_dbm);
Serial.println(" dBm");
} else {
Serial.println("Failed to set WiFi TX Power.");
}
// 3. Start connecting to WiFi
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi network: ");
Serial.println(ssid);
電力を上記のコードに設定することで、最良の結果が得られることが確認されています。
リソース
- [PDF] W5500 Datasheet
- [PDF] XIAO W5500 Ethernet Adapter SCH V30
- [STEP] XIAO W5500 Ethernet Adapter 3D STEP
- [STEP] XIAO W5500 Ethernet Adapter Shell 3D STEP (No pre-drilled camera holes)
- [STEP] XIAO W5500 Ethernet Adapter Covers 3D STEP
- [KICAD] XIAO W5500 Ethernet Adapter PCB
- [GITHUB] XIAO W5500 Ethernet Adapter Repository
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます。弊社は、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに合わせて選べる、複数のコミュニケーションチャネルをご用意しています。
