通过esp8266的UDP广播消息

时间:2019-06-04 05:55:04

标签: arduino udp esp8266 nodemcu arduino-esp8266

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

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

接入点代码:     #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,请告诉我其他可以工作的芯片,我想制作一个便携式系统,使我无法使用路由器。

1 个答案:

答案 0 :(得分:0)

ESP8266路由器在AP模式下的默认IP地址为 192.168.244.1
尝试将发送地址更改为192.168.244.255。