你真的使用以太网或WiFi吗?你在代码中混合了两个,它们是两个独立的网络。你的代码连接到WiFi,所以我猜你实际上并没有使用以太网。
如果你没有使用以太网 - 而ESP32上几乎没有人 - 那就没办法了 EthernetClient 会为你工作。
EthernetClient
在这种情况下,您的代码看起来应该更像:
WiFiClient wifiClient; PubSubClient client; void setup() { Serial.begin(115200); while (!Serial); WiFi.begin(ssid, password); delay(1500); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Establishing connection to WiFi.."); delay(500); } ipIP = WiFi.localIP() ; // 192.168.8.104 - good WiFi.macAddress(mac); // MAC returned - good // Connecting to MQTT Server client.setClient(wifiClient); client.setServer(server, 1883);
您的输出也表示您使用的是ESP32,而不是ESP8266(如您的问题所示)。