Я подключаю 4 nodemcu (esp8266). 1 esp8266 используется в качестве точки доступа, а другие подключены к ней.
Когда я отправляю UDP-пакеты как широковещательное сообщение всем esp8266 через esp8266 в качестве точки доступа, другие не получают его, однако, когда я использую домашний маршрутизатор или даже мобильную точку доступа в качестве точки доступа, широковещательные сообщения принимаются другим esp8266.
Кроме того, я разместил здесь часть своего кода, который используется для UDP, поэтому могут быть некоторые переменные, которые вы увидите как необъявленные, но они первоначально объявлены, и код работает, когда я соединяю его с точкой доступа, которая является не 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 не может быть использован, скажите, пожалуйста, какой-нибудь другой чип, который может работать, я хочу сделать портативную систему, чтобы я не мог использовать маршрутизатор.