【发布时间】:2019-10-19 15:20:58
【问题描述】:
我正在连接 4 个 nodemcu (esp8266)。 1个esp8266用作接入点,其他连接到它。
当我通过 esp8266 作为接入点将 UDP 数据包作为广播消息发送到所有 esp8266 时,其他人不会收到它但是当我使用家庭路由器甚至移动热点作为接入点时,会收到广播消息由另一个 esp8266。 另外,我在此处发布了用于 UDP 的部分代码,因此您可能会看到一些变量未声明,但它们最初是声明的,并且当我将其与接入点连接时代码正在工作,即不是 esp8266
接入点代码: #包括
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 不能用,请告诉我有什么其他的芯片可以做这个工作,我想做一个便携式系统,所以我不能使用路由器。
【问题讨论】:
标签: arduino udp esp8266 nodemcu arduino-esp8266