Hey, I’m getting a bit strange error while compilation process.
I’m using Nodemcu V3 board(ESP8266) and TFT LCD 3.5" SPI 480x320 ILI9488 diplay.
When I’m trying to include both “BlynkEdgent.h” and <TFT_eSPI.h>, I get some errors, that doesn’t make any sense for me.
Can you help me?
Error:
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:118:32: error: 'FS' was not declared in this scope; did you mean 'fs::FS'?
118 | typedef std::function<String(FS &fs, const String &fName)> ETagFunction;
| ^~
| fs::FS
In file included from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/Processors/TFT_eSPI_ESP8266.h:35,
from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:102,
from D:\Arduino\sketch_solar\sketch_solar.ino:1:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/FS.h:212:7: note: 'fs::FS' declared here
212 | class FS
| ^~
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:118:32: error: 'FS' was not declared in this scope; did you mean 'fs::FS'?
118 | typedef std::function<String(FS &fs, const String &fName)> ETagFunction;
| ^~
| fs::FS
In file included from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/Processors/TFT_eSPI_ESP8266.h:35,
from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:102,
from D:\Arduino\sketch_solar\sketch_solar.ino:1:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/FS.h:212:7: note: 'fs::FS' declared here
212 | class FS
| ^~
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:118:60: error: template argument 1 is invalid
118 | typedef std::function<String(FS &fs, const String &fName)> ETagFunction;
| ^
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:30,
from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:14:24: error: 'FS' was not declared in this scope; did you mean 'fs::FS'?
14 | static String calcETag(FS &fs, const String &path) {
| ^~
| fs::FS
In file included from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/Processors/TFT_eSPI_ESP8266.h:35,
from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:102,
from D:\Arduino\sketch_solar\sketch_solar.ino:1:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/FS.h:212:7: note: 'fs::FS' declared here
212 | class FS
| ^~
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:30,
from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:14:30: error: expected primary-expression before ',' token
14 | static String calcETag(FS &fs, const String &path) {
| ^
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:14:32: error: expected primary-expression before 'const'
14 | static String calcETag(FS &fs, const String &path) {
| ^~~~~
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:14:52: error: expected ',' or ';' before '{' token
14 | static String calcETag(FS &fs, const String &path) {
| ^
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:30,
from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:89:28: error: expected ')' before '&' token
89 | StaticRequestHandler(FS& fs, const char* path, const char* uri, const char* cache_header)
| ~ ^
| )
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:108:5: error: 'FS' does not name a type; did you mean 'SS'?
108 | FS _fs;
| ^~
| SS
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:123:37: error: expected ')' before '&' token
123 | StaticDirectoryRequestHandler(FS& fs, const char* path, const char* uri, const char* cache_header)
| ~ ^
| )
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:127:5: error: expected unqualified-id before '{' token
127 | {}
| ^
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h: In member function 'bool esp8266webserver::StaticDirectoryRequestHandler<ServerType>::handle(esp8266webserver::StaticDirectoryRequestHandler<ServerType>::WebServerType&, HTTPMethod, const String&)':
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:172:9: error: 'File' was not declared in this scope; did you mean 'fs::File'?
172 | File f = SRH::_fs.open(path, "r");
| ^~~~
| fs::File
In file included from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/Processors/TFT_eSPI_ESP8266.h:35,
from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:102,
from D:\Arduino\sketch_solar\sketch_solar.ino:1:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/FS.h:52:7: note: 'fs::File' declared here
52 | class File : public Stream
| ^~~~
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:30,
from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:173:14: error: 'f' was not declared in this scope; did you mean 'fs'?
173 | if (!f)
| ^
| fs
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:176:14: error: 'f' was not declared in this scope; did you mean 'fs'?
176 | if (!f.isFile()) {
| ^
| fs
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:201:27: error: 'f' was not declared in this scope; did you mean 'fs'?
201 | server.streamFile(f, contentType, requestMethod);
| ^
| fs
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h: At global scope:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:221:32: error: expected ')' before '&' token
221 | StaticFileRequestHandler(FS& fs, const char* path, const char* uri, const char* cache_header)
| ~ ^
| )
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:224:5: error: expected unqualified-id before '{' token
224 | {
| ^
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h: In member function 'bool esp8266webserver::StaticFileRequestHandler<ServerType>::handle(esp8266webserver::StaticFileRequestHandler<ServerType>::WebServerType&, HTTPMethod, const String&)':
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:248:9: error: 'File' was not declared in this scope; did you mean 'fs::File'?
248 | File f = SRH::_fs.open(SRH::_path, "r");
| ^~~~
| fs::File
In file included from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/Processors/TFT_eSPI_ESP8266.h:35,
from c:\Users\aslee\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:102,
from D:\Arduino\sketch_solar\sketch_solar.ino:1:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/FS.h:52:7: note: 'fs::File' declared here
52 | class File : public Stream
| ^~~~
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:30,
from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:250:14: error: 'f' was not declared in this scope; did you mean 'fs'?
250 | if (!f)
| ^
| fs
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:253:14: error: 'f' was not declared in this scope; did you mean 'fs'?
253 | if (!f.isFile()) {
| ^
| fs
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h:265:27: error: 'f' was not declared in this scope; did you mean 'fs'?
265 | server.streamFile(f, mime::getContentType(SRH::_path), requestMethod);
| ^
| fs
In file included from C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:349,
from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: At global scope:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:265:73: error: 'FS' has not been declared
265 | void ESP8266WebServerTemplate<ServerType>::serveStatic(const char* uri, FS& fs, const char* path, const char* cache_header) {
| ^~
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:265:6: error: no declaration matches 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::serveStatic(const char*, int&, const char*, const char*)'
265 | void ESP8266WebServerTemplate<ServerType>::serveStatic(const char* uri, FS& fs, const char* path, const char* cache_header) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:124:8: note: candidate is: 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::serveStatic(const char*, fs::FS&, const char*, const char*)'
124 | void serveStatic(const char* uri, fs::FS& fs, const char* path, const char* cache_header = NULL );
| ^~~~~~~~~~~
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:93:7: note: 'class esp8266webserver::ESP8266WebServerTemplate<ServerType>' defined here
93 | class ESP8266WebServerTemplate
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from D:\Arduino\sketch_solar\ConfigMode.h:3,
from D:\Arduino\sketch_solar\BlynkEdgent.h:45,
from D:\Arduino\sketch_solar\sketch_solar.ino:11:
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h: In instantiation of 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::ESP8266WebServerTemplate(int) [with ServerType = WiFiServer]':
D:\Arduino\sketch_solar\ConfigMode.h:60:27: required from here
C:\Users\aslee\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WebServer\src/ESP8266WebServer.h:281:20: error: cannot convert 'std::nullptr_t' to 'esp8266webserver::ESP8266WebServerTemplate<WiFiServer>::ETagFunction' {aka 'int'} in initialization
281 | ETagFunction _eTagFunction = nullptr;
| ^~~~~~~~~~~~~
exit status 1
Compilation error: exit status 1
Code:
#include <TFT_eSPI.h> // Hardware-specific library
#include <SPI.h>
#include <ArduinoJson.h>
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define USE_NODE_MCU_BOARD
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_TEMPLATE_NAME ""
#include "BlynkEdgent.h"
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
#define TFT_GREY 0x5AEB // New colour
const byte ledPin = 2;
BLYNK_WRITE(V1) {
tft.setTextSize(3);
const char* data = param.asStr();
createTheSystem(data);
}
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_GREY);
tft.println("HELLO");
delay(100);
BlynkEdgent.begin();
}
void loop() {
BlynkEdgent.run();
delay(1000);
}
void createTheSystem(const char* data) {
DynamicJsonDocument doc(1024);
deserializeJson(doc, data);
tft.fillScreen(TFT_GREY);
for(int i=0; i<9; i++){
tft.fillCircle(doc[i]["x"],doc[i]["y"],doc[i]["mass"], TFT_GREY);
}
return;
}