I am trying to compile this project. It compiles fine when the ESPWebServer.h include (and all its references such as “server.” functions) are removed. But when I add them in I think I am getting functions being defined multiple times but I cant locate them as the error message isnt the most easy to read.
#include <Arduino.h>
#include <FastLED.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <EasyNTPClient.h>
#include <WiFiUdp.h>
#include <Time.h>
#include <TimeLib.h>
#include "index.h"
#define NUM_LEDS 79
#define DATA_PIN D3
CRGBArray<NUM_LEDS> leds;
// Initialize changeable global variables.
uint8_t max_bright = 128; // Overall brightness definition. It can be changed on the fly.
uint8_t brightness = 128;
uint8_t hue = 160;
uint8_t sat = 255;
//LED Positions
const int ledWords = 23;
int ledPos[ledWords][2] = {
{0,1}, //IT 0
{2,2}, //IS 1
{3,4}, //TEN 2
{5,7}, //HALF 3
{8,12}, //TWENTY 4
{13,18}, //QUARTER 5
{19,21}, //FIVE 6
{22,27}, //MINUTES 7
{36,37}, //TO 8
{33,35}, //PAST 9
{74,78}, //TWELVE 10
{31,32}, //ONE 11
{28,30}, //TWO 12
{38,41}, //THREE 13
{42,44}, //FOUR 14
{45,47}, //FIVE 15
{56,58}, //SIX 16
{52,55}, //SEVEN 17
{48,51}, //EIGHT 18
{59,61}, //NINE 19
{62,63}, //TEN 20
{64,68}, //ELEVEN 21
{69,73} //OCLOCK 22
};
//Time Handling
time_t unix_time;
int hour_t = 12;
int minute_t = 40;
int second_t;
int hour_12;
int NTP_fail_cnt = 0;
bool NTP_failure = false;
bool daylight_saving = true; //daylight savings is in summer, add 1hr in summer.
//WiFi Settings
const char *ssid = "my-network";
const char *password = "mypassword";
const IPAddress ip(192,168,178,50);
const IPAddress gateway(192,168,178,1);
const IPAddress subnet(255,255,255,0);
//For NTP
WiFiUDP udp;
EasyNTPClient ntpClient(udp, "uk.pool.ntp.org", (0*60*60));
//Setup WebServer on port 80
ESP8266WebServer server(80);
//Functions
void displayRange(int ledPosArray[2]) {
for(int i = ledPosArray[0]; i <= ledPosArray[1]; i++){
leds[i] = CHSV(hue, sat, 255);
//Serial.print("Set led: ");
//Serial.println(i);
}
//FastLED.show();
return;
}
void clearRange(int ledPosArray[2]) {
for(int i = ledPosArray[0]; i <= ledPosArray[1]; i++){
leds[i] = CHSV(hue, sat, 0);
}
//FastLED.show();
return;
}
void clearAll() {
for(int i = 0; i < NUM_LEDS; i++){
leds[i] = CHSV(hue, sat, 0);
}
displayRange(ledPos[0]);//Turn on it
displayRange(ledPos[1]); //Turn on is
displayRange(ledPos[22]); //Turn on oclock
Serial.print("Clearing all...");
FastLED.show();
Serial.println("Cleared");
return;
}
void testLEDs() {
//Code for incremenetally turning on leds
for(int cnt = 0; cnt < NUM_LEDS; cnt++) {
leds[cnt] = CHSV(hue, sat, 255);
FastLED.show();
Serial.print("Set led: ");
Serial.println(cnt);
}
}
void testWords() {
//Code for incrementally turning on words
for(int i = 0; i < ledWords; i++){
//clearAll();
displayRange(ledPos[i]);
delay(750);
}
}
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
void handleDlsOn() {
daylight_saving = true;
}
void handleDlsOff() {
daylight_saving = false;
}
void setup() {
//Setup serial
Serial.begin(115200);
//Setup LEDs
FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.setBrightness(max_bright);
FastLED.setMaxPowerInVoltsAndMilliamps(5, 1000); // FastLED power management set at 5V, 500mA
//Start WiFi
//WiFi.config(ip, gateway, subnet);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(WiFi.localIP());
//WebServer starting
server.on("/", handleRoot); //Which routine to handle at root location
server.on("/dlsOn", handleDlsOn);
server.on("/dlsOff", handleDlsOff);
server.begin();
Serial.println("HTTP server started");
//Turn on the basics
displayRange(ledPos[0]);//Turn on it
displayRange(ledPos[1]); //Turn on is
displayRange(ledPos[22]); //Turn on oclock
unix_time = ntpClient.getUnixTime();
setTime(unix_time);
Serial.println("Set time on startup");
}
void loop() {
//Handle WebServer requests
server.handleClient();
//Get time from EasyNTPClient and format using Time
unix_time = ntpClient.getUnixTime();
Serial.println(unix_time);
//Only update if the ntp is correct
if(unix_time != 0){
Serial.println("Time updated");
if(daylight_saving == false){
setTime(unix_time);
}
else{
setTime(unix_time + 3600);
}
NTP_fail_cnt = 0;
}
else {
Serial.print("Time failed to update cnt: ");
NTP_fail_cnt++;
Serial.println(NTP_fail_cnt);
}
//If it fails more than 360 times/60 minutes flag failure
if(NTP_fail_cnt >= 360) {
NTP_failure = true;
clearRange(ledPos[0]);//Turn on it
clearRange(ledPos[1]); //Turn on is
clearRange(ledPos[22]); //Turn on oclock
}
else {
if(NTP_failure == true){
displayRange(ledPos[0]);//Turn on it
displayRange(ledPos[1]); //Turn on is
displayRange(ledPos[22]); //Turn on oclock
NTP_failure = false;
}
}
//Print for debug
Serial.print("The date is: ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.println(year());
//Function to get hour and minute
hour_t = hour();
minute_t = minute();
//Print time for debug
Serial.print("The time is: ");
Serial.print(hour_t);
Serial.print(" ");
Serial.println(minute_t);
//Set the correct hour
//If past half past (to) add an hour
if(minute_t >= 33){
hour_t = hour_t + 1;
//When past 23:30, hour will go to 24, correct back to 12
if(hour_t == 24){
hour_t -= 12;
}
}
// Convert hours from 24h to 12h
if(hour_t >= 12) {
hour_12 = hour_t - 12;
}
else {
hour_12 = hour_t;
}
Serial.print("hour_12 is: ");
Serial.println(hour_12);
//Clear hours
for(int i = 10; i <= 21; i++) {
clearRange(ledPos[i]);
}
//Display the hour, taking a 0 register (9) and adding the hour
displayRange(ledPos[(10 + hour_12)]);
Serial.print("Setting hour range: ");
Serial.println(10 + hour_12);
//Clear minutes
for(int i = ledPos[2][0]; i <= ledPos[7][1]; i++){
leds[i] = CHSV(hue, 255, 0);
}
//Set the correct minutes
if((minute_t >= 3 and minute_t < 8) or (minute_t >= 53 and minute_t < 58)){
displayRange(ledPos[6]);
displayRange(ledPos[7]); //Set minutes text
}
else if((minute_t >= 8 and minute_t < 13) or (minute_t >= 48 and minute_t < 53)){
displayRange(ledPos[2]);
displayRange(ledPos[7]); //Set minutes text
}
else if((minute_t >= 13 and minute_t < 18) or (minute_t >= 43 and minute_t < 48)){
displayRange(ledPos[5]);
clearRange(ledPos[7]); //Clear minutes text
}
else if((minute_t >= 18 and minute_t < 23) or (minute_t >= 38 and minute_t < 43)){
displayRange(ledPos[4]);
displayRange(ledPos[7]); //Set minutes text
}
else if((minute_t >= 23 and minute_t < 28) or (minute_t >= 33 and minute_t < 38)){
displayRange(ledPos[4]);
displayRange(ledPos[6]);
displayRange(ledPos[7]); //Set minutes text
}
else if(minute_t >= 28 and minute_t < 33){
displayRange(ledPos[3]);
clearRange(ledPos[7]); //Clear minutes text
}
//Set to and past
if(minute_t < 33 and minute_t >= 3) {
//Clear to and display past
clearRange(ledPos[8]);
displayRange(ledPos[9]);
}
else if(minute_t >= 33 and minute_t < 58) {
//Clear past and display to
clearRange(ledPos[9]);
displayRange(ledPos[8]);
}
else {
//Clear past and to
clearRange(ledPos[8]);
clearRange(ledPos[9]);
}
FastLED.show(); //Show all the information
delay(10000);
Serial.println("End of tasks");
}
The error message produced on build attempt looks like this:
> Executing task in folder WordClock: C:\Users\danny\.platformio\penv\Scripts\platformio.exe run <
Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 (2.6.3) > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20704.0 (2.7.4)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 35 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <WiFi> 1.2.7
| |-- <SPI> 1.0
|-- <FastLED> 3.3.3
| |-- <SPI> 1.0
| |-- <EspSoftwareSerial> 6.8.5
|-- <EasyNTPClient> 1.1.0
|-- <Time> 1.6.0
|-- <ESP8266WebServer> 1.0
| |-- <WiFi> 1.2.7
| | |-- <SPI> 1.0
| |-- <ESP8266WiFi> 1.0
Building in release mode
Compiling .pio\build\d1_mini\src\main.cpp.o
In file included from src\main.cpp:2:0:
.pio\libdeps\d1_mini\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.003
# pragma message "FastLED version 3.003.003"
^
In file included from .pio\libdeps\d1_mini\FastLED/FastLED.h:65:0,
from src\main.cpp:2:
.pio\libdeps\d1_mini\FastLED/fastspi.h:130:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
^
Linking .pio\build\d1_mini\firmware.elf
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::write(unsigned char)':
WiFiClient.cpp:(.text._ZN10WiFiClient5writeEh+0x0): multiple definition of `WiFiClient::write(unsigned char)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient5writeEh+0x0): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::peek()':
WiFiClient.cpp:(.text._ZN10WiFiClient4peekEv+0x0): multiple definition of `WiFiClient::peek()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4peekEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connect(char const*, unsigned short)':
WiFiClient.cpp:(.text._ZN10WiFiClient7connectEPKct+0x10): multiple definition of `WiFiClient::connect(char const*, unsigned short)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient7connectEPKct+0x10): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::available()':
WiFiClient.cpp:(.text._ZN10WiFiClient9availableEv+0x4): multiple definition of `WiFiClient::available()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient9availableEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::operator bool()':
WiFiClient.cpp:(.text._ZN10WiFiClientcvbEv+0x0): multiple definition of `WiFiClient::operator bool()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientcvbEv+0x0): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connected()':
WiFiClient.cpp:(.text._ZN10WiFiClient9connectedEv+0x4): multiple definition of `WiFiClient::connected()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient9connectedEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::write(unsigned char const*, unsigned int)':
WiFiClient.cpp:(.text._ZN10WiFiClient5writeEPKhj+0xc): multiple definition of `WiFiClient::write(unsigned char const*, unsigned int)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient5writeEPKhj+0x8): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::read()':
WiFiClient.cpp:(.text._ZN10WiFiClient4readEv+0x4): multiple definition of `WiFiClient::read()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4readEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::read(unsigned char*, unsigned int)':
WiFiClient.cpp:(.text._ZN10WiFiClient4readEPhj+0x8): multiple definition of `WiFiClient::read(unsigned char*, unsigned int)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4readEPhj+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::WiFiClient()':
WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0xc): multiple definition of `WiFiClient::WiFiClient()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::WiFiClient()':
WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0xc): multiple definition of `WiFiClient::WiFiClient()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connect(IPAddress, unsigned short)':
WiFiClient.cpp:(.text._ZN10WiFiClient7connectE9IPAddresst+0x68): multiple definition of `WiFiClient::connect(IPAddress, unsigned short)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient7connectE9IPAddresst+0x28): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::status()':
WiFiClient.cpp:(.text._ZN10WiFiClient6statusEv+0x4): multiple definition of `WiFiClient::status()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient6statusEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::write(unsigned char)':
WiFiServer.cpp:(.text._ZN10WiFiServer5writeEh+0x0): multiple definition of `WiFiServer::write(unsigned char)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5writeEh+0x0): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::write(unsigned char const*, unsigned int)':
WiFiServer.cpp:(.text._ZN10WiFiServer5writeEPKhj+0x0): multiple definition of `WiFiServer::write(unsigned char const*, unsigned int)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5writeEPKhj+0x10): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::WiFiServer(unsigned short)':
WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0xc): multiple definition of `WiFiServer::WiFiServer(unsigned short)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::WiFiServer(unsigned short)':
WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0xc): multiple definition of `WiFiServer::WiFiServer(unsigned short)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::status()':
WiFiServer.cpp:(.text._ZN10WiFiServer6statusEv+0x0): multiple definition of `WiFiServer::status()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer6statusEv+0x4): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::begin()':
WiFiServer.cpp:(.text._ZN10WiFiServer5beginEv+0x4): multiple definition of `WiFiServer::begin()'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5beginEv+0x10): first defined here
c:/users/danny/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib0b1\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::available(unsigned char*)':
WiFiServer.cpp:(.text._ZN10WiFiServer9availableEPh+0x20): multiple definition of `WiFiServer::available(unsigned char*)'; .pio\build\d1_mini\lib6a2\libWiFi.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer9availableEPh+0x20): first defined here
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\d1_mini\firmware.elf] Error 1
==================================================================================================================================== [FAILED] Took 3.05 seconds ====================================================================================================================================
The terminal process "C:\Users\danny\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1
All my files are in the src fodler where required and any libraries have been installed in the platformio.ini file not the lib folder as seen below.
Any help to point me in the right direction would be massively appreciated. Thanks in advance.