ESP, IoT ESP32 выполняет код и перезагружается

SNR93

✩✩✩✩✩✩✩
7 Ноя 2018
9
0
Добрый день. Такая непонятная вещь, код выполняется, но потом происходит перезагрузка... Куда копать?

Код:
C++:
//ЛОГИКА
//Включаем ESP32 и проверяем уровень воды
//если воды нет, то отправляем информацию о том, что воды НЕТ
//если вода есть, проверяем уровень влаги
//если влаги достаточно, обесточиваем датчик влажности и уходим в сон на 3 часа
//если влаги недостаточно, включаем полив на 5 секунд и ждем 30 секунд
//проверяем есть ли у нас еще вода, если нет, то отправляем уведомение и ничего не делаем
//если вода есть, то
//проверяем достаточно ли полили, если нет, повторяем цикл до достаточного уровня влажности


#include <Arduino.h>
//#include <WiFi.h>
//#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

#define BLYNK_PRINT Serial    // подключаем терминал BLYNK

//НОГИ
const int LED_PIN = 2;       // GPIO2  подключаем помпу  
const int VLAZN_PIN = 3;      // GPIO3  подключаем датчик влажности
int SensorPin = 4;            //подключение датчика уровня воды

//переменные
uint32_t timer;               //переменная для millis, оно же unsigned long
byte OprosDatVody = 0;          //храним показания воды с помпы
int YrovenVody = 0;           //уровень воды в сосуде
int Vlaga = 0;                //уровень влаги в горшке
int StartInit = 0;           //переменная флаг, которая показывает, что контролька только запустилась и нужно подождать для запуска


void FirstStart() {
  if (StartInit == 0) {  //если микруха только включилась, нужно подождать для инициализации
    Serial.println("Включаемся первый раз... Ждем для инициализации...");
    delay(1000);        //ждем 1 секунду
    StartInit = 1;
  }
  else{}
}

//функция для проверки есть ли вода
int voda(byte OprosDatVody) {
  //переменные
  int sensorState = digitalRead(SensorPin);

  if (sensorState == HIGH) {
//    Serial.println("Помпа говорит вода есть");
  }
  else {
//    Serial.println("Помпа говорит воды нет");
  }
  if (sensorState < 1) {   //если помпа говорит что воды нет 0 < 1
    YrovenVody = 0;       //передаем переменной значение 0
    return YrovenVody;    //возвращаем значение функции
  }
  else {                  //иначе
    YrovenVody = 1;       //передаем переменной значение 1
    return YrovenVody;    //возвращаем значение функции
  }
}


//наша главная функция, где все будет происходить
void setup() {
  Serial.begin(115200);       //устанавливаем скорость работы порта отладки
  pinMode(LED_PIN, OUTPUT);  //инициализируем порт светодиода
  pinMode(VLAZN_PIN, OUTPUT); //инициализируем порт датчика влажности
  pinMode(SensorPin, INPUT);  //инициализируем порт датчика воды


//проверяем, первое ли это включение микрухи
FirstStart();

//запускаем функцию проверки уровня воды
voda(OprosDatVody);                                        //запускаем функцию проверки уровня воды
  if (YrovenVody < 1) {                                  //если датчик вернул 0, пишем
      Serial.println("Проверили, воды в бочке нет");     //что воды нет
      digitalWrite(LED_PIN, HIGH);
  }
  else {                                                 //иначе
      Serial.println("Проверили, вода в бочке есть");    //говорим что вода есть
      digitalWrite(LED_PIN, LOW);
  }
}

// блок loop() будет повторяться бесконечно:
void loop()
{
Blynk.run();
}
файл platformio.ini
C++:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

monitor_speed = 115200

lib_deps =
  Blynk
В консоли постоянно это:
C++:
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
Включаемся первый раз... Ждем для инициализации...
Проверили, вода в бочке есть
/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1442 (xQueueGenericReceive)- assert failed!
abort() was called at PC 0x4008846d on core 1

Backtrace: 0x4008bf9c:0x3ffb1d40 0x4008c1cd:0x3ffb1d60 0x4008846d:0x3ffb1d80 0x400f876e:0x3ffb1dc0 0x400f8952:0x3ffb1de0 0x400eb3e8:0x3ffb1e00 0x400eb451:0x3ffb1e20 0x400f9d2e:0x3ffb1e40 0x400f8bb8:0x3ffb1e60 0x400eac6c:0x3ffb1ea0 0x400d290c:0x3ffb1ec0 0x400d21c2:0x3ffb1f20 0x400d1efa:0x3ffb1f50 0x400d1f6c:0x3ffb1f90 0x400d3ff1:0x3ffb1fb0 0x40088781:0x3ffb1fd0

Rebooting...
ets Jun  8 2016 00:22:57


Пишу в PlatformIO
 

Yusif

✩✩✩✩✩✩✩
10 Июл 2020
9
0
Получилось что то? Мне тоже нужно такой проект но только с ds3231
 

toliy

✩✩✩✩✩✩✩
8 Сен 2021
1
0
Добрый день, как была решена проблема? у меня такая же ерунда!!!