WiFi.localIP()
возвращает IPAddress
, а не String
(см. Справочную страницу ). Вам нужно превратить его в String
, прежде чем что-либо объединить с ним.
Так что вместо:
Serial.print(WiFi.localIP() + "\n");
Вам нужно
Serial.print(String(WiFi.localIP()) + "\n");
Еще лучше, используйте String.println()
, избегайте конкатенации и String
построение объекта:
Serial.println(WiFi.localIP());
Это работает, потому что существуют версии методов print()
и println()
, которые принимают IPAddress
в качестве аргумента и знают, как преобразовать его в текст.
Аналогично, WiFi.macAddress()
заполняет 6-байтовый массив, содержащий MAC-адрес интерфейса WiFi, и не возвращает String
(см. Справочную страницу ). Вы не можете легко построить String
из него, а методы print
не будут знать, как с этим справиться.
Так что вместо:
Serial.print(WiFi.macAddress() + "\n");
Вам нужно будет сделать что-то вроде:
byte mac_address[6];
WiFi.macAddress(mac_address);
Serial.printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
mac_address[0], mac_address[1], mac_address[2],
mac_address[3], mac_address[4], mac_address[5]);