#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-адрес сервера.