ets Jan 8 2013,rst cause:4, boot mode:(1,7)

У меня возникла проблема с ESP8266-01, описанная ниже:

контрольная сумма 0x42 csum 0x42 ~ld ets, 8 января 2013 г., первая причина: 4, режим загрузки: (1,0) сброс wdt

У кого есть решение, помогите!!!

#include <LiquidCrystal.h>  //Загружаем библиотеку жидких кристаллов
LiquidCrystal LCD(12, 11, 5, 4, 3, 2);  //Создаем жидкокристаллический объект с именем LCD
#include <ESP8266WiFi.h>

const char* ssid     = "your-ssid";
const char* password = "your-password";
const char* host = "your-localhost";

#define in 7
#define out 8
#define trigPin 10
#define echoPin 13
#define relay 2
#define led 6            //красный цвет
#define led2 A0           //желтый цвет
#define led3 9           //зеленый цвет

int count = 0;

int distanceCm;
long duration;

void IN()
{
    count++;
    LCD.clear();
    LCD.print("Number of Item:");
    LCD.setCursor(0,1);
    LCD.print(count);
    delay(10);
    LCD.setCursor(3,1);
    LCD.print(distanceCm);
    delay(10);
    LCD.setCursor(6,1);
    LCD.print(" cm");
    if(distanceCm <= 3){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Full");
     digitalWrite(led, HIGH);
  }else{
    digitalWrite(led, LOW);
  }

  if(distanceCm > 3 && distanceCm <= 5){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Enable");
     digitalWrite(led2, HIGH);
  } else{
    digitalWrite(led2, LOW);
  }

  if(distanceCm > 5){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Empty");
     digitalWrite(led3, HIGH);
  } else {
    digitalWrite(led3, LOW);
  }
  delay(500);
}

void OUT()
{
  count--;
  LCD.clear();
  LCD.print("Number of Item:");
  LCD.setCursor(0,1);
  LCD.print(count);
  delay(10);
  LCD.setCursor(3,1);
  LCD.print(distanceCm);
  LCD.setCursor(6,1);
  LCD.print(" cm");
   if(distanceCm <= 3){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Full");
     digitalWrite(led, HIGH);
  }else{
    digitalWrite(led, LOW);
  }

  if(distanceCm > 3 && distanceCm <= 5){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Enable");
     digitalWrite(led2, HIGH);
  } else{
    digitalWrite(led2, LOW);
  }

  if(distanceCm > 5){
     delayMicroseconds(10);
     LCD.setCursor(10,1);
     LCD.print("Empty");
     digitalWrite(led3, HIGH);
  } else {
    digitalWrite(led3, LOW);
  }
  delay(500);
}

void setup() {
  // поместите сюда свой код установки для однократного запуска:
  Serial.begin(115200);
  delay(10);

  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);

  LCD.begin(16,2);
  LCD.print("Item Counter");
  delay(2000);

  pinMode(in, INPUT);
  pinMode(out, INPUT);
  pinMode(relay, OUTPUT);

  LCD.clear();
  LCD.print("Item In Box:");
  LCD.setCursor(0,1);
  LCD.print(count);

  // Начинаем с подключения к сети Wi-Fi

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
     // ESP.wdtFeed();
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

 // ESP.restart();
}

int value = 0;

void loop() {

 delay(0);
 delay(5000);
  ++value;

  digitalWrite(trigPin, LOW);
  delayMicroseconds(10);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(50);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distanceCm = duration * 0.034/2;

//************************************************ ******//
//Объект подсчета ИК-датчика
  if(digitalRead(in))
  IN();
  if(digitalRead(out))
  OUT();

  if(count<=0)
  {
    LCD.clear();
    digitalWrite(relay, LOW);
    LCD.clear();
    LCD.print("No Item in box");
    LCD.setCursor(0,1);
    LCD.print("box is empty");
    delay(200);
  }
   else{
    digitalWrite(relay, HIGH);
   }

  Serial.print("connecting to ");
  Serial.println(host);

  // Используем класс WiFiClient для создания TCP-соединений
  WiFiClient client;
  const int httpPort = 8095;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
  if(WiFi.status() != WL_CONNECTED){
    WiFi.begin(ssid,password);
    while (WiFi.status()!= WL_CONNECTED)
    {
      Serial.println("Waiting for connection");
      delay(0);
    }
  }

  String IRCount, myDistance;
  IRCount = String(count);
  myDistance = String(distanceCm);
  // Теперь мы создаем URI для запроса
  String url = "/Registration/write_data.php";
  url += "?item=";
  url += IRCount;
  url += "&distance=";
  url += myDistance;

  Serial.print("Requesting URL: ");
  Serial.println(url);

  // Это отправит запрос на сервер
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  int timeout = millis() + 5000;
  while (client.available() == 0) {
    if (timeout - millis() < 0) {
      Serial.println(">>> Client Timeout !");
      client.stop();
      return;
    }
  }

  // Читаем все строки ответа с сервера и печатаем их в Serial
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }

  Serial.println();
  Serial.println("closing connection");
  delay(0);
}

, 👍0

Обсуждение

это сброс сторожевого таймера. что прошито в esp8266?, @Juraj

@Juraj Размер флэш-памяти: 1 МБ (512 тыс. SPIFFS) Узел флэш-памяти: DIO, @Annoymous20

я уже перепробовал все размеры флэш-памяти, но ошибка все еще существует, @Annoymous20

это не то, что я спросил, @Juraj

Извините... я не понимаю, что вы имеете в виду, промелькнув в esp8266., @Annoymous20

Контакты GPIO 0, которые я использовал в esp8266-01., @Annoymous20

какая прошивка или скетч прошит? это программная ошибка при сбросе, поэтому сообщите нам, что вы загрузили, @Juraj

Я не уверен, в чем заключается ошибка... но я использую пример WiFiClient для загрузки фиктивных данных на веб-страницу локального хоста php, и это работает, но когда я использую следующий текстовый файл ниже для загрузки данных на веб-страницу, и он показывает вышеуказанная ошибка [ESP8266_upload.txt](https://github.com/esp8266/Arduino/files/2660837/ESP8266_upload.txt), @Annoymous20


1 ответ


1

esp-01 имеет 4 контакта ввода-вывода: RX, TX, io 0 и io 2. Остальные контакты недоступны. От io 6 до io 11 подключены к встроенной флэш-памяти и не могут использоваться.

Что вы думаете, используя другие контакты, кроме 0 и 2? как ты подключил эти датчики и светодиоды к esp-01?

,

Потому что что касается датчиков и светодиодов... Я хочу передать данные датчиков на свой сервер. Итак, можно ли сохранить данные моего датчика в базе данных MySQL и отобразить их на моей веб-странице. Я подключил эти провода к плате Arduino UNO., @Annoymous20

Есть ли у вас идеи передать данные датчиков на веб-страницу локального сервера PHP? или необходимо сменить другой приемник Wi-Fi для передачи данных на мою веб-страницу локального хоста?, @Annoymous20

Моя проблема такая же, как и на этом форуме до https://arduinoprosto.ru/q/48234/getting-error-ets-jan-8-2013-rst-cause4-boot-mode1-6-wdt-reset. Но я не вижу никакого решения для этого, @Annoymous20

нет никакой магии, которая могла бы читать контакты Uno в подключенном esp8266. вы можете использовать Firmata с библиотекой Firmata Master esp8266, но проще написать два эскиза, @Juraj

а другие эскизы связаны с основными эскизами?, @Annoymous20

проблема, которую вы связали, другая. Уно нет. датчики подключены к плате разработчика esp8266, @Juraj

я не пишу соединение esp8266 в исходном коде... я просто пишу датчики, которые подключаются к плате UNO... я не уверен, правильно это или нет, @Annoymous20

вам нужен скетч в Uno и скетч или прошивка в esp8266, @Juraj

Вы имеете в виду, что мне нужно создать два эскиза: код платы uno и исходный код esp01? Извините... я совершенно не знаю, как это сделать, @Annoymous20

шаг за шагом. сначала создайте и отладьте эскиз для Uno без подключения к сети с выводом на последовательный монитор., @Juraj

или купите плату разработки esp8266, например Wemos/Lolin или NodeMcu, и прикрепите к ней датчики., @Juraj