esp8266 接收udp广播_arduino - 通过esp8266通过UDP广播消息 - 堆栈内存溢出

在使用ESP8266作为接入点并尝试通过UDP广播消息时遇到问题,其他ESP8266节点无法接收到广播。当接入点切换为家庭路由器或移动热点时,广播消息能正常接收。代码示例包括接入点设置、UDP数据包发送和接收。寻求解决ESP8266广播问题的方法或推荐替代芯片。
摘要由CSDN通过智能技术生成

我正在连接4 nodemcu(esp8266)。 1 esp8266用作接入点,其他连接到它。

当我通过esp8266作为接入点将UDP数据包作为广播消息发送到所有esp8266时,其他人不接收它,但是当我使用家庭路由器甚至移动热点作为接入点时,广播消息被其他人接收esp8266。 另外,我在这里发布了一部分用于UDP的代码,因此可能会有一些变量你会看到未声明,但它们最初是声明的,而且当我用不是esp8266的Access Point连接它时代码正常工作

接入点代码:#include

void setup()

{

Serial.begin(115200);

Serial.println();

Serial.print("Setting soft-AP ... ");

boolean result = WiFi.softAP("ssid", "password123456");

if(result == true)

{

Serial.println("Ready");

}

else

{

Serial.println("Failed!");

}

}

void loop()

{

Serial.printf("Stations connected = %d\n",

WiFi.softAPgetStationNum());

delay(3000);

}

发送UPD数据包作为广播的代码:

unsigned int localPort = 2000;

IPAddress SendIP(192,168,43,255);

setup()

{

udp.begin(localPort);

Serial.print("Local port: ");

Serial.println(udp.localPort());

}

loop()

{

udp.beginPacket(SendIP, 2000);

udp.write("p");

udp.endPacket();

}

接收UDP数据包的代码:

void loop()

{

int packetSize = udp.parsePacket();

if(packetSize)

{

udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);

p = packetBuffer[0];

Serial.println(p);

function();

}

请告诉我使用esp8266作为发送UDP数据包的接入点的问题。 如果esp8266不能使用,请告诉我任何其他芯片可以做的工作,我想制作一个便携式系统,所以我不能使用路由器。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值