如何使用 ESP8266-12E 通过 UDP send/receive
How to send/receive via UDP with ESP8266-12E
嗯,我已经做过很多次 UDP send/receive。但现在我卡住了。
也许我遗漏了代码中的一些愚蠢错误,或者我正在使用的库中可能存在问题。无论如何,如果有人可以帮助,请看一下。
接收者代码
#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);
}
}
}
sender/accesss点代码
#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.. 他们到达了他们连接的地步,但是已经结束了。
您可能想尝试在 Wifi.begin
之前将以下内容添加到您的接收器:
WiFi.mode(WIFI_STA);
这会将 Wifi 设置为站点(客户端)而不是接入点。您的代码没有执行此操作,因此很难确定发生了什么,特别是如果您正在重新使用之前在 AP 模式下编程为 运行 的设备。
嗯,我已经做过很多次 UDP send/receive。但现在我卡住了。
也许我遗漏了代码中的一些愚蠢错误,或者我正在使用的库中可能存在问题。无论如何,如果有人可以帮助,请看一下。
接收者代码
#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);
}
}
}
sender/accesss点代码
#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.. 他们到达了他们连接的地步,但是已经结束了。
您可能想尝试在 Wifi.begin
之前将以下内容添加到您的接收器:
WiFi.mode(WIFI_STA);
这会将 Wifi 设置为站点(客户端)而不是接入点。您的代码没有执行此操作,因此很难确定发生了什么,特别是如果您正在重新使用之前在 AP 模式下编程为 运行 的设备。