Hello, fellow coders!
I don't know if this is the right place in the forum but by now I am pretty helpless so here comes:
Last night I was, once again, trying to code for an ESP8266 that should open a relay for 5 seoconds, when a webhook gets updated.
My code has no errors (still not the functionality of 5 seconds) and may not properly perform a webhook GET but to troubleshoot that I need a working script.
Thats where the problem is. When I compile the code, my Arduino IDE throws the error of:
- Multiple libraries being double and wich one it chose to use
- Errors in chosesn libraries.
The full Error is as follows:
Arduino: 1.8.10 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, All Flash Contents, 115200"
In file included from C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecure.h:41:0,
from C:\Users\mknoa\Documents\Arduino\IFTTT_To_Esp8266\IFTTT_To_Esp8266.ino:2:
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:262:36: error: expected ')' before '*' token
WiFiClientSecure(ClientContext *client, const X509List *chain, unsigned cert_issuer_key_type,
^
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:264:35: error: expected ')' before '*' token
WiFiClientSecure(ClientContext* client, const X509List *chain, const PrivateKey *sk,
^
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:38:5: error: 'BearSSL::WiFiClientSecure::~WiFiClientSecure()' marked override, but does not override
~WiFiClientSecure() override;
^
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:43:9: error: 'int BearSSL::WiFiClientSecure::connect(const String&, uint16_t)' marked override, but does not override
int connect(const String& host, uint16_t port) override;
^
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:48:12: error: 'size_t BearSSL::WiFiClientSecure::write_P(const char*, size_t)' marked override, but does not override
size_t write_P(PGM_P buf, size_t size) override;
^
C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:60:12: error: 'size_t BearSSL::WiFiClientSecure::peekBytes(uint8_t*, size_t)' marked override, but does not override
size_t peekBytes(uint8_t *buffer, size_t length) override;
^
Multiple libraries were found for "WiFi.h"
Used: C:\Program
Multiple libraries were found for "WiFiClientSecure.h"
Used: C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WiFi
Multiple libraries were found for "SPI.h"
Used: C:\Users\mknoa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\SPI
exit status 1
Error compiling for board Generic ESP8266 Module.
Error downloading http://arduino.esp8266.com/staging/package_esp8266com_index.json
Error downloading http://arduino.esp8266.com/staging/package_esp8266com_index.json
java.lang.NullPointerException
java.lang.RuntimeException: java.lang.NullPointerException
at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at cc.arduino.contributions.libraries.LibrariesIndexer.lambda$rescanLibraries$2(LibrariesIndexer.java:165)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at cc.arduino.contributions.libraries.LibrariesIndexer.rescanLibraries(LibrariesIndexer.java:167)
at cc.arduino.contributions.libraries.LibraryInstaller.rescanLibraryIndex(LibraryInstaller.java:207)
at cc.arduino.contributions.libraries.LibraryInstaller.install(LibraryInstaller.java:129)
at cc.arduino.contributions.libraries.LibraryInstaller.install(LibraryInstaller.java:117)
at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:239)
... 1 more
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
My code is as follows. I am using a Generic ESP8266 Module with its 8 Pins stuck into a USB Programmer.
#include <WiFi.h>
#include <WiFiClientSecure.h>
char ssid[] = "GUBANO"; // "Name" of the WiFi, you want to connect to.
char password[] = "6904048253XXXXXX"; // Password of the WPA/WPA2 Ecnrypted WiFi.
IPAddress ip(192, 168, 179, 1); // IP Adress that this Device should use.
const String deviceName = "Door Opener"; // Optional, displayed in Router.
const String Host = "maker.ifttt.com";
const String Webhook = "/trigger/Door_Opener/with/key/-VR7aEoq65qFs_XXXXXXX";
const String Key = "-VR7aEoq65qFs_XXXXXXX";
int Delay = 5; // In Seconds before refreshing
int status = WL_IDLE_STATUS;
WiFiClientSecure client;
void setup() {
Serial.begin(9600);
//WiFi.hostname(deviceName);
WiFi.config(ip);
while ( status != WL_CONNECTED ) {
Serial.println("Attempting to connect to SSID: " + String(ssid) + " with IP Address " "to be implemented");
WiFi.begin(ssid, password);
delay(10000);
}
Serial.println("Connected succesfully.");
long rssi = WiFi.RSSI();
Serial.println("Signalstrength is " + String(rssi) + "dBm");
}
void loop() {
client.connect(Host, 80);
client.print(String("GET") + Webhook + " HTTP/1.1\r\n" +
"Host: " + Host + "\r\n" +
"User-Agent: Door_OpenerESP8266\r\n" +
"Connection: close\r\n\r\n");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
String line = client.readStringUntil('\n');
Serial.println("reply was:");
Serial.println("==========");
Serial.println(line);
Serial.println("==========");
Serial.println("closing connection");
delay(Delay * 1000);
}
I can't check if it connects to the webhook server as it wont compile and therefore wouldnt upload.
Board Manager URL is http://arduino.esp8266.com/staging/package_esp8266com_index.json.