ESP8266在接收udp数据包时出现问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266在接收udp数据包时出现问题。相关的知识,希望对你有一定的参考价值。

我的WeMos D1 Mini正在运行一个脚本,如果它收到udp数据包中的某些字符串,它应该执行某些操作。

大多数时候它都能正常工作,但有时它却没有任何反应,通常只需等待几分钟或发送几次数据包即可。我的猜测是,它可能会进入某种深度睡眠。有时候唯一有用的就是重启它。

我试着实现了一个看门狗,但这并没有真正的工作(但这是一个单独的问题),我不确定它是否能解决这个问题.我通过Netcat发送数据包,WiFi强度是确定的(但不是很大).一切都在本地网络上。

请看一下我的代码,检查一下是否有错误improvements。

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

#define SSID "XXX"
#define PASSWORD "XXX"
#define PORT XXX

WiFiUDP udpServer;

char MESSAGE[] = "message";

void setup() {
  Serial.begin(9600);

  WiFi.mode(WIFI_STA);
  WiFi.begin(SSID, PASSWORD);
  wifiStrength();

  udpServer.begin(PORT);

  delay(100);
}

void wifiStrength(){
  if (WiFi.status() != WL_CONNECTED) {
      Serial.println("no wifi, reconnecting...");
      delay(3000);
      WiFi.begin(SSID, PASSWORD);
    }
    long rssi = WiFi.RSSI();
    Serial.print("connected, RSSI:");
    Serial.println(rssi);
  }

void loop() {
  if (udpServer.parsePacket()) {
    char receiveBuffer[WIFICLIENT_MAX_PACKET_SIZE + 1];
    udpServer.read(receiveBuffer, sizeof(receiveBuffer) - 1);

    if (strstr(receiveBuffer, MESSAGE)) {
      Serial.println("do stuff...");
    } 
  }
}

以上是关于ESP8266在接收udp数据包时出现问题。的主要内容,如果未能解决你的问题,请参考以下文章

在 Iphone SDK 上接收带有异步 Udp 套接字的 UPS 包时出现问题

两个单片机使用esp8266间如何直接通信

BeagleBone Black–ESP8266 UDP 服务

UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize

ESP8266怎么接收另一个ESP8266用CIPSEND发送的信息呢?用啥模式进行?

esp8266wifi模块怎么接收传感器数据