ESP8266-01 ets 8 января 2013, первая причина: 4, режим загрузки: (3,7) - PullRequest
0 голосов
/ 30 июня 2019

Платформа

  • Аппаратное обеспечение: ESP-01
  • Разработка Env: [Arduino IDE |
  • Операционная система: [Windows |

Настройки в IDE

  • Модуль: [Универсальный модуль ESP8266 |
  • Режим вспышки: [DOUT]
  • Размер вспышки: [512 КБ]
  • lwip Variant: | v2 Нижняя память |
  • Метод сброса: [ck]
  • Частота вспышки: [40 МГц]
  • Частота процессора: [80 МГц]
  • Загрузка с использованием: [SERIAL]
  • Скорость загрузки: [115200]

Описание проблемы

Я работаю в проекте Smart Parking witharduino uno с использованием 8 ультразвуковых датчиков и esp8266-01, я подключаю TX ESP-01 к arduino uno TX и RX к RX и каждому датчику к одному выводу arduino, при загрузке кода я подключаю GPIO0 к GND, а после загрузки извлекаю его, когда открываю последовательный монитор, разрываю цикл повторного подключения (перезапускаю) и отображать только 5 датчиков со значением 0,

Результат:

connecting..... connected:
192.168.1.11   
Distance0 : 0   
setting /number failed:   
Distance1 : 0   
setting /number failed:   
Distance2 : 0   
setting /number failed:   
Distance3 : 0   
setting /number failed:   
Distance4 :    
ets Jan  8 2013,rst cause:4, boot mode:(3,7) 
wdt reset   
load 0x4010f000, len 1384, room 16    
tail 8   
chksum 0x2d 
csum 0x2d   
v8b899c12   
~ld

Мой код

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

#define FIREBASE_HOST "ْْْXXXXXXXXXXXXXXXXXX" 
#define FIREBASE_AUTH "XXXXXXXXXXXXXX" 
#define WIFI_SSID "AYMAN" 
#define WIFI_PASSWORD "01357911" 
//#include <Servo.h>

//Servo myservo;
const int ULTRASONIC_PIN[] = {2,3,4,5,6,7,8,9};

void setup(){ 
  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD); 
  Serial.print("connecting"); 
  while (WiFi.status() != WL_CONNECTED) { 
    Serial.print("."); 
    delay(500);
  }
  Serial.println(); 
  Serial.print("connected: "); 
  Serial.println(WiFi.localIP()); 
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}

void loop(){
  for(int x=0;x<8;x++){
     Serial.print("Distance");
     Serial.print(x);
     Serial.print(" : ");
     int result = readUltrasonic(ULTRASONIC_PIN[x]);
     Serial.print(result);
     Serial.println();
     if(result<150){
       Firebase_Setup(x);
      }
      delay(1000);
  }

  Serial.println("---------------------------------------------------------------------------------------");
  delay(1000);
}

int readUltrasonic(int pin){
 //Returns distance in cm
 pinMode(pin, OUTPUT);
 digitalWrite(pin, HIGH);
 delayMicroseconds(10);
 digitalWrite(pin, LOW);

 pinMode(pin, INPUT);
 return pulseIn(pin, HIGH, (unsigned long)60000) / 29 / 2;
}
//>--------------------------------------------------------------------------------------
void Firebase_Setup(int number){
  Firebase.set("Slot 1", 1);
  if (Firebase.failed()) {
      Serial.println("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(1000);
}

1 Ответ

0 голосов
/ 30 июня 2019

«сброс wdt», скорее всего, означает, что сторожевой таймер сбрасывает процессор (завершая вашу программу).

Либо выключите сторожевой таймер, либо периодически вызывайте функцию, чтобы продлить время ожидания.

...