evgenii0016
New member
Всем доброго времени суток!
Подскажите причину проблемы: периодически с разным интервалом esp отключается от сети, код следующий
Модуль подключается к сети wi-fi, далее сервер обращается к нему по udp, и модуль отправляет ответ с показаниями температуры и влажности. Но периодически (когда и 50 запросов пройдет, а когда только 1 (запросы каждые 10 сек)), esp перестает отвечать, и в мониторе порта следующее:
В чем может быть причина?
Заранее спасибо за ответы
Подскажите причину проблемы: периодически с разным интервалом esp отключается от сети, код следующий
Код:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <dht11.h>
#include "DHT.h"
#define DHTTYPE DHT11
int hh = 0;
const byte dht_pin = 2;
DHT dht(dht_pin, DHTTYPE);
const char* ssid = "Tested";
const char* password = "pass";
WiFiUDP Udp;
unsigned int localUdpPort = 4400;
char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
IPAddress ip(192, 168, 10, 159);
IPAddress gateway(192, 168, 10, 1);
IPAddress subnet(255, 255, 255, 0);
void setup()
{
Serial.begin(115200);
delay(500);
Serial.println();
dht.begin();
Serial.printf("Connecting to %s ", ssid);
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
Serial.println(" connected");
Udp.begin(localUdpPort);
Serial.printf("Now listening at IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort);
}
void loop()
{
if (hh == 0) {Serial.println("void loop() start "); hh++;}
int packetSize = Udp.parsePacket();
if (packetSize)
{
Serial.print("Received packet of size ");
Serial.println(packetSize);
Serial.print("From ");
IPAddress remote = Udp.remoteIP();
for (int i =0; i < 4; i++)
{
Serial.print(remote[i], DEC);
if (i < 3)
{
Serial.print(".");
}
}
Serial.print(", port ");
Serial.println(Udp.remotePort());
Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
Serial.println("Contents:");
Serial.println(packetBuffer);
String str = packetBuffer;
if (str[0] == 50 && str[2] == 49)
{
Udp.beginPacket(Udp.remoteIP(), 4400);
str+=":";
str+=dht.readTemperature();
str+=":";
str+=dht.readHumidity();
Serial.println("send:");
Serial.println(str);
Udp.print(str);
Udp.endPacket();
}
}
}
Код:
Exception (29):
epc1=0x40218fbf epc2=0x00000000 epc3=0x00000000 excvaddr=0x000000e0 depc=0x00000000
ctx: sys
sp: 3ffffda0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3fffff40: 4022304c 00000000 3ffe9e34 3ffe9e40
3fffff50: 00000000 00000022 00000000 00000036
3fffff60: 00000000 3ffe9e4a 40222993 3ffec9b0
3fffff70: 3ffe9e34 3fffdcc0 3ffe8ff0 3ffe8ff0
3fffff80: 000000b0 3ffec9b0 00000002 00000000
3fffff90: 40222253 3fffdab0 00000000 00000005
3fffffa0: 3ffe8ff0 40000f49 3fffdab0 40000f49
<<<stack<<<
ets Jan 8 2013,rst cause:4, boot mode:(3,6)
wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v614f7c32
~ld
Заранее спасибо за ответы