Периодично перезагружается ESP

Тема в разделе "ESP8266, ESP32", создана пользователем Некит-кот, 22 окт 2019.

  1. Использую плату WemosD1 mini, есть скрипт постоянно (20 раз в секунду) посылающий данные с пк, все работает нормально, но примерно через 25 секунд плата повисает, скетч управляет RCмашинкой

    Код (C++):
    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>
    #include <ArduinoOTA.h>
    #include <Servo.h>

    Servo myservo;

    const char* ssidAP = "ESPWebServer";
    const char* passwordAP = "12345687";

    const char* ssid = "HomeWlan"; //Название существующей сети
    const char* password = "250074771686"; //И её пароль

    int mod, spd, ser;
    IPAddress StaticIP(192, 168, 1, 35); //Статический адрес, чтобы мы знакли, где наше устройство
    IPAddress GateIP(192, 168, 1, 1); //Шлюз. Смотрите по своей сети, но если используете ESP в качестве точки доступа, можно оставить как есть

    // Create an instance of the server
    // specify the port to listen on as an argument
    WiFiServer server(80);




    void setup() {
      delay(10);
      pinMode(16, OUTPUT);
      pinMode(14, OUTPUT);
      pinMode(12, OUTPUT);
      ConnectWiFiLan();
      myservo.attach(5);
      server.begin();
      ArduinoOTA.setHostname("OTA->ESP");
      ArduinoOTA.begin();


    }

    void loop() {

      ArduinoOTA.handle();
      WiFiClient client = server.available();
      if (!client) {
      return;
      }

      String req = client.readStringUntil('\r');
      mod = req.charAt(6);
      spd = (int(req.charAt(7)) - 48) * 100 + (int(req.charAt(8)) - 48) * 10 + (int(req.charAt(9)) - 48);
      ser = (int(req.charAt(10)) - 48) * 10 + (int(req.charAt(11)) - 48);
      if( mod == 48){
      spd = spd - 100;
      analogWrite(12, spd);
      digitalWrite(14, LOW);
      digitalWrite(16, HIGH);
      myservo.write(ser);
      }
      if( mod == 49){
      analogWrite(12, spd);
      digitalWrite(16, LOW);
      digitalWrite(14, HIGH);
      myservo.write(ser);
      }
      req = "";
      delay(40);

    }


    void ConnectWiFiLan()
    {
      WiFi.disconnect();
      WiFi.mode(WIFI_STA);
      WiFi.softAPdisconnect(true); //for fix stupid bug
      WiFi.enableAP(false); //for fix stupid bug


      delay(500);
      Serial.print("\nWi-Fi connecting");
      WiFi.config(StaticIP, GateIP, IPAddress(255, 255, 255, 0));
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      }
    }
     
    Последнее редактирование: 22 окт 2019
  2. NikitOS

    NikitOS Король шутов Администратор

  3. 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
    v04c11db7
    ~ld
    вылетает подобная ошибка
     
  4. NikitOS

    NikitOS Король шутов Администратор