如何将 Wifi.localIP() 转换为 String 并将其存储到外部变量

6 c++ arduino

我正在尝试将 ip 地址存储到外部字符串中。我的 ip 地址值在 .cpp 中,但后来我想将它存储在我的 .h 文件中。我将它存储为字符串,因为我想将其作为链接。(http://"ip 地址"/)

我的 .h 文件

extern std::string ipadd1 = "";
Run Code Online (Sandbox Code Playgroud)

我的 .cpp 文件

if (connectWifi("", "") == WL_CONNECTED)   {
    DEBUG_WM(F("IP Address:"));
    DEBUG_WM(WiFi.localIP());
ipadd1 = String(WiFi.localIP());
    //connected
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

Ker*_*g73 13

将 the 转换IPAddress为 a String,然后获取 theconst char *并将其转换为 an std::string

ipadd1 = WiFi.localIP().toString().c_str();
Run Code Online (Sandbox Code Playgroud)


Kam*_*Cuk 5

5 分钟的搜索给了我WiFi.localIp() 函数描述,从那里我知道它返回了IPAddress对象。跟随forum.arduino.cc主题:如何操作IPAddress变量/转换为字符串您可以使用以下函数将其转换为字符串:

// author apicquot from https://forum.arduino.cc/index.php?topic=228884.0
String IpAddress2String(const IPAddress& ipAddress)
{
    return String(ipAddress[0]) + String(".") +
           String(ipAddress[1]) + String(".") +
           String(ipAddress[2]) + String(".") +
           String(ipAddress[3]);
}
Run Code Online (Sandbox Code Playgroud)

IPAddress可以像 4 ints数组一样处理。


小智 5

如果我们想写入Wifi.localIP()oled(SSD1306)串行,只需写入WiFi.localIP().toString()。像这样:

Serial.print("Connected, IP address: ");
  Serial.print(WiFi.localIP().toString());

  display.clear();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(0, 0, " WiFi is Connected." );
  
  display.drawString(0, 10, " IP address: "  + WiFi.localIP().toString() );
Run Code Online (Sandbox Code Playgroud)