Hello,
I’m trying to use the “Simple push notification example” from the Blynk Example Code Generator with an ESP32 and Arudino IDE, but I simply don’t get it to run.
I’m quite new to the topic in general and I guess it’s actually not a Blynk-specific issue, but since it’s concerning the Blynk Example code, maybe someone else already ran into this problem.
And I just have no idea how to continue otherwise or debug this, since I’m still a little noob
In the meantime, I modified the code a bit by setting a variable for the Button Pin and changed the Pin to 23, since the GPIO2 seems to not work properly on my board, but I also checked it by using the default example.
I tried several other pins, adding delays, changing the interrupt method and some other things, but as soon as the button is pressed (or actually: button pin connected to GND), it simply breaks.
Sometimes it restarts afterwards automatically and other times it doesn’t.
Serial Monitor output:
[25] Connecting to xxx
[635] Connected to WiFi
[635] IP: xx.xx.xx.xx
[635]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v0.6.1 on ESP32
[707] Connecting to blynk-cloud.com:80
[874] Ready (ping: 40ms).
Button is pressed.
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)
Core 1 register dump:
PC : 0x4008c18a PS : 0x00060534 A0 : 0x8008b3a3 A1 : 0x3ffbfb30
A2 : 0x3ffcb880 A3 : 0x3ffbc77c A4 : 0x00000001 A5 : 0x00000001
A6 : 0x00060523 A7 : 0x00000000 A8 : 0x3ffbc77c A9 : 0x3ffbc77c
A10 : 0x00000019 A11 : 0x00000019 A12 : 0x00000001 A13 : 0x00000001
A14 : 0x00060521 A15 : 0x00000000 SAR : 0x0000000a EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0xffffffff
Core 1 was running in ISR context:
EPC1 : 0x4012ad53 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x4008c18a
ELF file SHA256: 0000000000000000
Backtrace: 0x4008c18a:0x3ffbfb30 0x4008b3a0:0x3ffbfb50 0x400896d7:0x3ffbfb70 0x4012acd1:0x3ffbfbb0 0x4011845b:0x3ffbfbd0 0x40117cd9:0x3ffbfc00 0x40118209:0x3ffbf
Code:
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "xxx";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "xxx";
char pass[] = "xxx";
int buttonPin = 23;
void notifyOnButtonPress()
{
// Invert state, since button is "Active LOW"
int isButtonPressed = !digitalRead(buttonPin);
if (isButtonPressed) {
Serial.println("Button is pressed.");
// Note:
// We allow 1 notification per 5 seconds for now.
Blynk.notify("Yaaay... button is pressed!");
// You can also use {DEVICE_NAME} placeholder for device name,
// that will be replaced by your device name on the server side.
//Blynk.notify("Yaaay... {DEVICE_NAME} button is pressed!");
}
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup notification button on buttonPin
pinMode(buttonPin, INPUT_PULLUP);
// Attach pin buttonPin interrupt to our handler
attachInterrupt(digitalPinToInterrupt(buttonPin), notifyOnButtonPress, CHANGE);
}
void loop()
{
Blynk.run();
}
Any help is appreciated!
Thanks
Moe