BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Помогите ! Мой код вызывает WDT reset

Здравствуйте! помогите решить проблему.
Я использую NodeMCU V3, ArduinoIDE 1.8.13
Код ниже после загрузки в мониторе порта показывает следующие:


ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 3584, room 16 
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld


#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <BlynkSimpleEsp8266.h>
int npins[9] = {14, 12, 13, 15, 16, 9, 10, 0, 2};
char auth[] = "auth";
char ssid[] = "ssid";
char pass[] = "pass";
char server[] = "blynk-cloud.com";  // URL for Blynk Cloud Server
int port = 8080;

void setup() {
  Serial.begin(115200);
  for(int i=0;i<10;i++)
  {
    pinMode(npins[i], OUTPUT); //declaring them as outputs
  }
  delay(5000);
  WiFi.begin(ssid, pass);  // Non-blocking if no WiFi available
  Blynk.config(auth, server, port);
  Blynk.connect();
  ArduinoOTA.setHostname("NodeMCU_HOME");
  ArduinoOTA.begin();
}

void loop() {
  ArduinoOTA.handle();
}

Я знаю что проблему вызывает 9 пинов на выход, но решить это не могу, использование пяти пинов в массиве проблему не вызывает, но мне то надо 9.
" Использование пользовательских методов" от сюда также не решает проблему.

Well, you’re missing Blynk.run() from your void loop, but that shouldn’t cause a WDT reset.

GOIO 9 & 10 are strange pins, and best avoided if possible, and I’d suggest removing all the connections from your other pins to be sure that none of the peripherals you have connected are a problem.

Pete.

в том то и дело что данный код используется на голый контролер без подключенной периферии, 9 и 10 пин в конечном устройсве используется из за нехватки пинов, так как с D5 по D8 это каналы реле, а остальные светодиоды сигнализирующие работу устройства, D0 сигнализирует наличие питания и подключения остальные привязаны к каналам.

So what happens if you remove GPIO 9 & 10 from your sketch and re-compile. Do you still get the WDT reset?

Pete.

Заменил 9 и 10 на 5 и 4, в мониторе порта пусто на контролере горит светодиод, если использовать этот массив {14, 12, 13, 15, 16, 4} и в for(int i=0;i<7;i++) или {14, 12, 13, 15, 16, 4, 5} и for(int i=0;i<8;i++) то все работает нормально

You should read this about GPIO 9 & 10…

Pete.

ну так проблема то не решена, если всё ок то должно быть так: >

___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
    /___/ v0.6.1 on NodeMCU

[5066] Connecting to blynk-cloud.com:8080
[10067] Connecting to blynk-cloud.com:8080
[10276] Ready (ping: 101ms).

а у меня если заменить 9 и 10 на другие в мониторе пусто и горит светодиод на плате

So take a systematic approach, adding one pin at a time until you know the problem pins.

However, it’s time to order an ESP32 for this job.

Pete.

Так ведь исходный код у меня работает вот он:

Summary
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define RELE1 D5
#define RELE2 D6
#define RELE3 D7
#define RELE4 D8
#define LED0 D0
#define LED1 D1
#define LED2 D2
#define LED3 D3
#define LED4 D4
bool CH1, CH2, CH3, CH4;
char auth[] = "";
char ssid[] = "";
char pass[] = "";
int npins[9] = {RELE1, RELE2, RELE3, RELE4, LED0, LED1, LED2, LED3, LED4};

void setup()
{
 Serial.begin(115200);
 
 Blynk.begin(auth, ssid, pass);
for(int i=0;i<10;i++)
 {
   pinMode(npins[i], OUTPUT); //declaring them as outputs
 }
 digitalWrite(LED0, HIGH);
 delay(5000);
}

BLYNK_WRITE(V1)
{
 CH1 = param.asInt();
 digitalWrite(RELE1, CH1);
 if (CH1 == 0) {
   digitalWrite(LED1, HIGH);
 } else {
   digitalWrite(LED1, LOW);
 }
}

BLYNK_WRITE(V2)
{
 CH2 = param.asInt();
 digitalWrite(RELE2, CH2);
 if (CH2 == 0) {
   digitalWrite(LED2, HIGH);
 } else {
   digitalWrite(LED2, LOW);
 }
}

BLYNK_WRITE(V3)
{
 CH3 = param.asInt();
 digitalWrite(RELE3, CH3);
 if (CH3 == 0) {
   digitalWrite(LED3, HIGH);
 } else {
   digitalWrite(LED3, LOW);
 }
}

BLYNK_WRITE(V4)
{
 CH4 = param.asInt();
 digitalWrite(RELE4, CH4);
 if (CH4 == 0) {
   digitalWrite(LED4, HIGH);
 } else {
   digitalWrite(LED4, LOW);
 }
}

void loop()
{
     Blynk.run(); // Initiates Blynk Server
}

У меня проблема интегрировать туда OTA

Sorry, I don’t understand.

Pete.

что именно?