求助:如何将8266获取的ip转换成字符串格式?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2340|回复: 4

求助:如何将8266获取的ip转换成字符串格式?

[复制链接]
发表于 2021-3-17 16:27 | 显示全部楼层 |阅读模式
通过WiFi.localIP()获取了8266的ip地址,但是要传送到app里显示时,需要是字符串格式,请问怎么转换?代码如下,到“Text1.print(IP_Ad);”这步时,无法将addr_4, addr_3, addr_2, addr_1套进去,没学过C语言,不会弄了
  1. #define BLINKER_WIFI
  2. #include <Blinker.h>

  3. char auth[] = "XXXXXX";
  4. char ssid[] = "XXXXXX";
  5. char pswd[] = "XXXXXX";

  6. #define TEXTE_1 "TextKey"

  7. BlinkerText Text1(TEXTE_1);

  8. void dataRead(const String & data)
  9. {
  10.   BLINKER_LOG("Blinker readString: ", data);
  11.   Blinker.vibrate();
  12.   uint32 IP_Ad = WiFi.localIP();
  13.   Serial.printf("转换前IP:%d", IP_Ad);

  14.   /* 提取IP:位移操作 */
  15.   int addr_1 = IP_Ad >> 24;        // 提取第一部分IP地址
  16.   IP_Ad = IP_Ad << 8;
  17.   int addr_2 = IP_Ad >> 24;        // 提取第二部分IP地址
  18.   IP_Ad  = IP_Ad << 8;
  19.   int addr_3 = IP_Ad >> 24;        // 提取第三部分IP地址
  20.   IP_Ad  = IP_Ad  << 8;
  21.   int addr_4 = IP_Ad  >> 24;       // 提取第四部分IP地址

  22.   /* 提取IP:求余取整
  23.     addr_1 = IP_Ad % 256;       // 提取第一部分IP地址
  24.     IP_Ad  = IP_Ad / 256;
  25.     addr_2 = IP_Ad % 256;        // 提取第一部分IP地址
  26.     IP_Ad  = IP_Ad / 256;
  27.     addr_3 = IP_Ad % 256;        // 提取第一部分IP地址
  28.     IP_Ad  = IP_Ad / 256;
  29.     addr_4 = IP_Ad % 256;       // 提取第一部分IP地址
  30.   */
  31.   /* 打印IP地址:结果为"192.168.31.102" */
  32.   Serial.printf("IP地址为:%d.%d.%d.%d", addr_4, addr_3, addr_2, addr_1);
  33.   Text1.print(IP_Ad);
  34. }

  35. void setup()
  36. {
  37.   Serial.begin(115200);
  38.   BLINKER_DEBUG.stream(Serial);
  39.   Blinker.begin(auth, ssid, pswd);
  40.   Blinker.attachData(dataRead);
  41. }

  42. void loop()
  43. {
  44.   Blinker.run();
  45. }
复制代码

输出结果为:转换前IP:1744939200IP地址为:192.168.1.104 但是不能讲这个转换好的地址上传
 楼主| 发表于 2021-3-17 16:49 | 显示全部楼层
非常感谢!!!
但是platformio里的blinker库太老了
发表于 2021-3-17 16:39 | 显示全部楼层
Serial.println(WiFi.localIP().toString())
或者Serial.printf("%s\n", WiFi.localIP().toString().c_str());

ps.赶快换platformio吧,Arduino ide太垃圾了
发表于 2022-4-19 18:29 | 显示全部楼层
请问WiFi.localIP()这样出来的就直接是IP地址啊,为什么到Blinker上输出就是另外一串数字了呢?求解答!
发表于 2022-4-20 22:25 | 显示全部楼层
String IPADDRESS =  WiFi.localIP().toString();
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 05:16 , Processed in 0.082823 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表