我正在连接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,请告诉我其他可以工作的芯片,我想制作一个便携式系统,使我无法使用路由器。
答案 0 :(得分:0)
ESP8266路由器在AP模式下的默认IP地址为 192.168.244.1 。
尝试将发送地址更改为192.168.244.255。