Can't compile examples prototyping with sonar proximity sensor on ESP32

2 views (last 30 days)
Wanted to try this example https://au.mathworks.com/help/thingspeak/prototyping-with-sonar-proximity-sensor.html on an ESP32. I'm building this in PlatformIO (VSC) and get various error messages. When I first imported the code to VSC it complained that it couldn't find WiFi.h so I included it in platformio.ini as follows. NOTE: I have not compiled this in the Arduino IDE before so don't know whether this code compiles or it's an issue with my PlatformIO install/setup
How can I fix this?
lib_deps =
arduino-libraries/WiFi101 @ 0.16.1
Building in release mode
Compiling .pio\build\nodemcu-32s\src\watertanksensor.ino.cpp.o
Generating partitions .pio\build\nodemcu-32s\partitions.bin
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFi.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFiClient.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFiMDNSResponder.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFiSSLClient.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFiServer.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\WiFiUdp.cpp.o
Compiling .pio\build\nodemcu-32s\lib375\WiFi101\bsp\source\nm_bsp_arduino.c.o
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/stdio.h:29:0,
from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\cores\esp32/Arduino.h:27,
from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:28,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiClient.cpp:20:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: error: conflicting declaration of C function 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:24:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiClient.cpp:20:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/time.h:10:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:28:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: error: conflicting declaration of C function 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:24:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:36:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src/WiFiClient.h:28:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src/WiFi101.h:35,
from C:/Users/tfmei/OneDrive/Documents/PlatformIO/Projects/210903-000154-nodemcu-32s/src/watertanksensor.ino:4:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1839:32: error: conflicting declaration of C function 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/stdio.h:29:0,
from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\cores\esp32/Arduino.h:27,
from C:\Users\tfmei\AppData\Local\Temp\tmp5ukpniga:1:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: note: previous declaration 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
C:/Users/tfmei/OneDrive/Documents/PlatformIO/Projects/210903-000154-nodemcu-32s/src/watertanksensor.ino:17:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
char* writeAPIKey = "T3G1AGMZ7E70FLTX";
^
C:/Users/tfmei/OneDrive/Documents/PlatformIO/Projects/210903-000154-nodemcu-32s/src/watertanksensor.ino:18:20: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
char* readAPIKey = "8GN3TDS2B6OLS646";
^
C:/Users/tfmei/OneDrive/Documents/PlatformIO/Projects/210903-000154-nodemcu-32s/src/watertanksensor.ino: In function 'int connectWifi()':
C:/Users/tfmei/OneDrive/Documents/PlatformIO/Projects/210903-000154-nodemcu-32s/src/watertanksensor.ino:170:3: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
*** [.pio\build\nodemcu-32s\src\watertanksensor.ino.cpp.o] Error 1
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/stdio.h:29:0,
from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\cores\esp32/Arduino.h:27,
from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:28,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiServer.cpp:20:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: error: conflicting declaration of C function 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:24:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiServer.cpp:20:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/string.h:10:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiUdp.cpp:20:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: error: conflicting declaration of C function 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:24:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiUdp.cpp:22:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFiClient.cpp.o] Error 1
.pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp: In member function 'int WiFiClass::init()':
.pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:303:46: error: invalid conversion from 'void (*)(uint8_t*, uint32_t) {aka void (*)(unsigned char*, unsigned int)}' to 'tpfAppResolveCb {aka void (*)(unsigned char*, long unsigned int)}' [-fpermissive]
registerSocketCallback(socket_cb, resolve_cb);
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\utility/WiFiSocket.h:24:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:36:
.pio\libdeps\nodemcu-32s\WiFi101\src/socket/include/socket.h:1047:14: note: initializing argument 2 of 'void registerSocketCallback(tpfAppSocketCb, tpfAppResolveCb)'
NMI_API void registerSocketCallback(tpfAppSocketCb socket_cb, tpfAppResolveCb resolve_cb);
^
.pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp: At global scope:
.pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:1133:10: error: prototype for 'uint32_t WiFiClass::getTime()' does not match any in class 'WiFiClass'
uint32_t WiFiClass::getTime()
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFi.cpp:38:0:
.pio\libdeps\nodemcu-32s\WiFi101\src\WiFi101.h:157:16: error: candidate is: long unsigned int WiFiClass::getTime()
unsigned long getTime();
^
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiClient.h:28:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiSSLClient.h:23,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiSSLClient.cpp:20:
.pio\libdeps\nodemcu-32s\WiFi101\src\socket/include/socket.h:1839:32: error: conflicting declaration of C function 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/stdio.h:29:0,
from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\cores\esp32/Arduino.h:27,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiClient.h:23,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiSSLClient.h:23,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiSSLClient.cpp:20:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: note: previous declaration 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFi.cpp.o] Error 1
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFiSSLClient.cpp.o] Error 1
In file included from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiClient.h:28:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFi101.h:35,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiMDNSResponder.h:27,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiMDNSResponder.cpp:32:
.pio\libdeps\nodemcu-32s\WiFi101\src\socket/include/socket.h:1839:32: error: conflicting declaration of C function 'sint8 close(SOCKET)'
NMI_API sint8 close(SOCKET sock);
^
In file included from C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/strings.h:10:0,
from .pio\libdeps\nodemcu-32s\WiFi101\src\WiFiMDNSResponder.cpp:28:
C:\Users\tfmei\.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib/sys/unistd.h:30:9: note: previous declaration 'int close(int)'
int _EXFUN(close, (int __fildes ));
^
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFiMDNSResponder.cpp.o] Error 1
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFiServer.cpp.o] Error 1
*** [.pio\build\nodemcu-32s\lib375\WiFi101\WiFiUdp.cpp.o] Error 1
========================================================================================== [FAILED] Took 7.40 seconds

Answers (0)

Categories

Find more on Read Data from Channel in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!