Прошу помочь решить проблему: вебсервер на ESP8266-01 перестает отвечать по http минут через 5-20 после перезагрузки. При этом пингуется. На есп запущен вебсервер, отдающий в json данные с BMP280.
Код:
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <SPI.h>
#include <ArduinoJson.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp;
const char* ssid = "SSID";
const char* password = "pwd";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
Wire.begin(0, 2);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
Wire.pins(0, 2);
//Wire.begin(2,0);
if (!bmp.begin()) {
//Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
//while (1);
}
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
StaticJsonBuffer<200> JSONbuffer;
JsonObject& JSONencoder = JSONbuffer.createObject();
JSONencoder["Place"] = "Mub, 7";
JSONencoder["Number"] = "1";
JSONencoder["Temp"] = bmp.readTemperature();
JSONencoder["Pres"] = (bmp.readPressure() * 7.5006e-3);
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
//values.add(bmp.readTemperature());
String out;
JSONencoder.printTo(out);
client.println(out);
//Serial.print(bmp.readPressure());
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}