Проблема ESP8266 с отправкой UDP в глобальную сеть

#arduino #network-programming #udp #esp8266 #arduino-esp8266

#arduino #сетевое программирование #udp #esp8266 #arduino-esp8266

Вопрос:

У меня проблема с отправкой UDP-пакетов с использованием мини-плат ESP8266 D1 / D1. Дело в том, что при отправке через локальную сеть я вижу, что пакеты поступают в Wireshark, но когда я пытаюсь отправить глобально (подключив плату к мобильной точке доступа), ничего не приходит. В конечном итоге я хочу сохранить данные во InfluxDB, но пока они даже не попадают на сервер.

Пожалуйста, взгляните на код, который я использую, может быть, кто-нибудь сможет помочь.

 #include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiUDP.h>

#define WIFI_SSID "my ssid"
#define WIFI_PASS "my password"

byte host[] = {server ip};
int port = 8888;

ESP8266WiFiMulti WiFiMulti;
WiFiUDP udp;

void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFiMulti.addAP(WIFI_SSID, WIFI_PASS);
  Serial.print("Connecting to WIFI");
  while (WiFiMulti.run() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  
  Serial.println("Setup Complete.");
}

void loop() {

  udp.beginPacket(host,port);
  udp.write("exampleMessage");
  udp.endPacket();

  delay(1000);
}
  

Комментарии:

1. брандмауэр? у вас нестандартный порт

2. Как сказал @Juraj, брандмауэр, маршрутизатор, маршруты, NAT, разрешение DNS. В тот момент, когда вы выходите за пределы локальной сети, многие вещи вступают в игру. Проверьте, есть ли у вас Ping на IP-адрес сервера.