|
通过WiFi.localIP()获取了8266的ip地址,但是要传送到app里显示时,需要是字符串格式,请问怎么转换?代码如下,到“Text1.print(IP_Ad);”这步时,无法将addr_4, addr_3, addr_2, addr_1套进去,没学过C语言,不会弄了
- #define BLINKER_WIFI
- #include <Blinker.h>
- char auth[] = "XXXXXX";
- char ssid[] = "XXXXXX";
- char pswd[] = "XXXXXX";
- #define TEXTE_1 "TextKey"
- BlinkerText Text1(TEXTE_1);
- void dataRead(const String & data)
- {
- BLINKER_LOG("Blinker readString: ", data);
- Blinker.vibrate();
- uint32 IP_Ad = WiFi.localIP();
- Serial.printf("转换前IP:%d", IP_Ad);
- /* 提取IP:位移操作 */
- int addr_1 = IP_Ad >> 24; // 提取第一部分IP地址
- IP_Ad = IP_Ad << 8;
- int addr_2 = IP_Ad >> 24; // 提取第二部分IP地址
- IP_Ad = IP_Ad << 8;
- int addr_3 = IP_Ad >> 24; // 提取第三部分IP地址
- IP_Ad = IP_Ad << 8;
- int addr_4 = IP_Ad >> 24; // 提取第四部分IP地址
- /* 提取IP:求余取整
- addr_1 = IP_Ad % 256; // 提取第一部分IP地址
- IP_Ad = IP_Ad / 256;
- addr_2 = IP_Ad % 256; // 提取第一部分IP地址
- IP_Ad = IP_Ad / 256;
- addr_3 = IP_Ad % 256; // 提取第一部分IP地址
- IP_Ad = IP_Ad / 256;
- addr_4 = IP_Ad % 256; // 提取第一部分IP地址
- */
- /* 打印IP地址:结果为"192.168.31.102" */
- Serial.printf("IP地址为:%d.%d.%d.%d", addr_4, addr_3, addr_2, addr_1);
- Text1.print(IP_Ad);
- }
- void setup()
- {
- Serial.begin(115200);
- BLINKER_DEBUG.stream(Serial);
- Blinker.begin(auth, ssid, pswd);
- Blinker.attachData(dataRead);
- }
- void loop()
- {
- Blinker.run();
- }
复制代码
输出结果为:转换前IP:1744939200IP地址为:192.168.1.104 但是不能讲这个转换好的地址上传
|
|