Как отправить / получить через UDP с ESP8266-12E - PullRequest
0 голосов
/ 21 апреля 2019

Ну, я уже сделал UDP отправлять / получать много раз. Но теперь я застрял.

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

Код получателя

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "M3-L7";
const char* password = "mySmartChoice";
unsigned int localPort = 2390; 
char packetBuffer[255];
WiFiUDP Udp;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Udp.begin(localPort);
}

void loop() {
  delay(10);
  if (Udp.parsePacket()) {
    int len = Udp.read(packetBuffer, 255);
    if (len > 0) {
      packetBuffer[len] = 0;
      Serial.println(packetBuffer); 
    }
  }
}

код отправителя / точки доступа

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char *ssid = "M3-L7";
const char *password = "mySmartChoice";
unsigned int localPort = 2390; 

WiFiUDP Udp;
void setup() {
    delay(1000);
    Serial.begin(115200);
    WiFi.softAP(ssid, password);
  Udp.begin(localPort);
}

void loop() {
 Udp.beginPacket("192.168.4.1", localPort);
 Udp.write("Hello");
 Udp.endPacket();
 delay(10);
}

Что ж, я ожидаю, что "Hello" будет напечатан несколько раз: D .. они достигают точки, где они соединяются, но это конец.

1 Ответ

1 голос
/ 23 апреля 2019

Возможно, вы захотите попробовать добавить следующее к вашему ресиверу непосредственно перед Wifi.begin:

WiFi.mode(WIFI_STA);

Это устанавливает Wi-Fi как станцию ​​(клиент), а не как точку доступа.Ваш код этого не делает, поэтому трудно быть уверенным, что происходит, особенно если вы повторно используете устройство, которое было предварительно запрограммировано для работы в режиме AP.

...