M5Stack and Blynk
-
I'm trying to get the M5Stack working with Blynk. I tried to compile a basic Blynk sketch and it's not working.
#define BLYNK_PRINT Serial
#include <M5Stack.h>
#include <BlynkSimpleEsp32.h>// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "my_auth_token";// Your WiFi credentials.
char ssid[] = "my_ssid";
char pass[] = "my_ssid_password";void setup()
{
// Debug console
Serial.begin(9600);Blynk.begin(auth, ssid, pass);
}void loop()
{
Blynk.run();
}
The Arduino errors are:
Arduino: 1.8.5 (Mac OS X), Board: "M5Stack-Core-ESP32, QIO, 80MHz, 921600, None"
In file included from /Users/world101/Documents/Arduino/libraries/Blynk/src/Blynk/BlynkApi.h:17:0,
from /Users/world101/Documents/Arduino/libraries/Blynk/src/BlynkApiArduino.h:14,
from /Users/world101/Documents/Arduino/libraries/Blynk/src/BlynkSimpleEsp32.h:20,
from /Users/world101/Documents/Arduino/m5stack_blynk/m5stack_blynk.ino:38:
/Users/world101/Documents/Arduino/libraries/Blynk/src/Blynk/BlynkTimer.h:38:36: error: conflicting declaration 'typedef void (* timer_callback)()'
typedef void (*timer_callback)(void);
^
In file included from /Users/world101/Documents/Arduino/libraries/M5Stack/src/M5Stack.h:94:0,
from /Users/world101/Documents/Arduino/m5stack_blynk/m5stack_blynk.ino:37:
/Users/world101/Documents/Arduino/libraries/M5Stack/src/utility/M5Timer.h:34:35: note: previous declaration as 'typedef class std::function<void()> timer_callback'
typedef std::function<void(void)> timer_callback;
^
Multiple libraries were found for "WiFi.h"
Used: /Users/world101/Documents/Arduino/hardware/espressif/esp32/libraries/WiFi
Not used: /Applications/Arduino.app/Contents/Java/libraries/WiFi
Multiple libraries were found for "SD.h"
Used: /Users/world101/Documents/Arduino/hardware/espressif/esp32/libraries/SD
Not used: /Users/world101/Documents/Arduino/libraries/SD
Not used: /Applications/Arduino.app/Contents/Java/libraries/SD
exit status 1
Error compiling for board M5Stack-Core-ESP32.This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
If I comment out #include <M5Stack.h> it will compile fine, but I don't get to use any of the M5 functions like M5.Lcd.printf().
Any ideas on how to fix it?
I also tried the DH12 example from github and get similar errors.
https://github.com/m5stack/M5Stack/tree/master/examples/Advanced/Blynk/Post-DHT12Thanks!
-
@world101 @m5stack Hi World101,
I got the same error trying to compile Blynk - PostDHT12 using the one in the list of M5Stack examples.
But it looks like it worked back in September : https://twitter.com/M5Stack/status/907633635796193281
Perhaps something got broken since then..... the blynk library was updated Dec 22nd....
https://twitter.com/blynk_appOr another file update perhaps.......
Anyone got it working ?
-
After further digging for the error, I found the following which has the solution.
https://github.com/m5stack/M5Stack/issues/32
I modified the header file Arduino/libraries/M5Stack/src/utility/M5Timer.h as follows.
//typedef std::function<void(void)> timer_callback; typedef void (*timer_callback)(void); typedef void (*timer_callback_p)(void *);
It now builds successfully and connects to the blynk cloud :-)
@m5stack FYI... please add this to fix on the next release.
-
@world101 Really glad you raised this question and found a solution... I have wanted to use it for quite a while but hadn't chased it.... thanks. Will test it out.