ESP8266-01和ets Jan 8 2013,第一个原因:4,启动模式:(3,7)

时间:2019-06-29 21:30:16

标签: c arduino esp8266 arduino-esp8266 arduino-ultra-sonic

平台

  • 硬件:ESP-01
  • 开发环境:[Arduino IDE |
  • 操作系统:[Windows |

IDE中的设置

  • 模块:[通用ESP8266模块|
  • 闪光模式:[DOUT]
  • 闪存大小:[512KB]
  • lwip变体:| v2较低内存|
  • 重置方法:[ck]
  • 闪光频率:[40Mhz]
  • CPU频率:[80Mhz]
  • 使用以下方式上传:[SERIAL]
  • 上传速度:[115200]

问题描述

我在使用8个超声波传感器和esp8266-01的arduino uno进行智能泊车项目中工作,我将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 :(得分:-1)

“ wdt重置”很可能意味着看门狗定时器重置了处理器(结束程序)。

要么关闭看门狗,要么定期调用该函数以延长其超时时间。