Sobre IDE arduino y librerías duplicadas

Hola, he estado buscando y he encontrado alguna cosa medio parecida, pero nada de lo que me está sucediendo, y es una locura.

Resulta que me estaba empezando a fallar el IDE de arduino, así que decidí instalarlo de nuevo. Para ello lo eliminé del sistema (windows), lo desinstalé. Borré la carpeta de users/documentos/arduino, borré la carpeta de c://windowsx86/arduino, eliminé también la carpeta local15 que está dentro de appData.

Y nada, reinstalo el IDE en el ordenador y me sigue diciendo que hay librerías duplicadas, en el momento que instalo SOLO UNA.

Y para colmo no me carga correctamente el código en el NODEMCU. Esto es lo que me reporta.

¿Alguien que haya pasado por esta situación?

Muchas gracias por todo.

In file included from C:\Users\Julio y Marina\Desktop\calefaccion\PRUEBAS_V_1\PRUEBAS_V_1.ino:3:0:

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:71:33: error: expected identifier before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:71:33: error: expected '}' before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:71:33: error: expected unqualified-id before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

In file included from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/pbuf.h:42:0,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/udp.h:45,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266mDNS\src/LEAmDNS.h:107,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266mDNS\src/ESP8266mDNS.h:46,

                 from C:\Users\Julio y Marina\Desktop\calefaccion\PRUEBAS_V_1\PRUEBAS_V_1.ino:7:

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:89:3: error: 'err_enum_t' does not name a type

 } err_enum_t;

   ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:114:1: error: expected declaration before '}' token

 }

 ^

Se encontraron varias bibliotecas para "Wire.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "Adafruit_Sensor.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DHT.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DoubleResetDetector.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "LiquidCrystal_I2C.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266WebServer.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DNSServer.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ArduinoJson.h"
Usado: C:\Users\Julio
 No usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266mDNS.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266WiFi.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ThingSpeak.h"
Usado: C:\Users\Julio
 No usado: C:\Users\Julio
Se encontraron varias bibliotecas para "WiFiManager.h"
Usado: C:\Users\Julio
exit status 1
Error compilando para la tarjeta NodeMCU 1.0 (ESP-12E Module).

Si, me a pasado, pero generalmente es el compilador que tira fruta y el error se encontraba en otro lado. Por ejemplo me olvidaba cerrar una llave en una pestaña.

PeterKantTropus:
Si, me a pasado, pero generalmente es el compilador que tira fruta y el error se encontraba en otro lado. Por ejemplo me olvidaba cerrar una llave en una pestaña.

Disculpa, pero no entiendo a que te refieres cuando dices lo de que tira fruta, y tampoco lo de la llave de la pestaña...........

Tenia un error de sintaxis y el compilador tiraba un error no relacionado.

Obviamente no ves la repeticion de librerías no?
Y porque no compienzas por esto antes de borrar todo. Lo tienes repetido en muchos lados.

Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "Adafruit_Sensor.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DHT.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DoubleResetDetector.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "LiquidCrystal_I2C.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266WebServer.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "DNSServer.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ArduinoJson.h"
Usado: C:\Users\Julio
 No usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266mDNS.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ESP8266WiFi.h"
Usado: C:\Users\Julio
Se encontraron varias bibliotecas para "ThingSpeak.h"
Usado: C:\Users\Julio
 No usado: C:\Users\Julio
Se encontraron varias bibliotecas para "WiFiManager.h"
Usado: C:\Users\Julio

Tienes un Usuario Julio y otro usuario Julio y Marina

Entonces ahi esta la repetición que no ves.

Por eso me estoy volviendo loco, llevo usando el ide de arduino bastante tiempo y nunca me había pasado esto. Lo he borrado todo, arduino15 en appdata, arduino en documentos, arduino en raíz.....reinstalo, y me dice que están duplicadas, abro las carpetas y no existen...

En cuanto al usuario, solo existe julio y marina

Ahora me dice esto.

In file included from C:\Users\Julio y Marina\Desktop\calefaccion\PRUEBAS_V_1.1\PRUEBAS_V_1.1.ino:5:0:

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:108:33: error: expected identifier before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:108:33: error: expected '}' before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

C:\Users\Julio y Marina\Documents\Arduino\libraries\ThingSpeak\src/ThingSpeak.h:108:33: error: expected unqualified-id before '-' token

 #define ERR_TIMEOUT             -304    // Timeout waiting for server to respond

                                 ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:61:3: note: in expansion of macro 'ERR_TIMEOUT'

   ERR_TIMEOUT    = -3,

   ^

In file included from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/pbuf.h:42:0,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/udp.h:45,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266mDNS\src/LEAmDNS.h:107,

                 from C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266mDNS\src/ESP8266mDNS.h:46,

                 from C:\Users\Julio y Marina\Desktop\calefaccion\PRUEBAS_V_1.1\PRUEBAS_V_1.1.ino:9:

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:89:3: error: 'err_enum_t' does not name a type

 } err_enum_t;

   ^

C:\Users\Julio y Marina\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/lwip2/include/lwip/err.h:114:1: error: expected declaration before '}' token

 }

 ^

exit status 1
Error compilando para la tarjeta NodeMCU 1.0 (ESP-12E Module).

Revisa que todas las llaves {} estén correctamente cerradas.

No es un problema del código, me estaba funcionando a la perfección antes de reinstalar el IDE de arduino.....

¿El error te da también compilando un programa simple? como el blink

No, y de hecho estamos probando ejemplos con cada una de las librerías y va bien, creo que hay un conflicto con la libreria Thingspeak y no sé cual es la otra.

Hasta hace nada estaba con el IDE 1.6.8 y las librerías, pues ni idea de las versiones, pero ha sido instalar nuevo ide y actualizar las librerías y se ha ido al trastre. Me va a tocar hacer downgrade a todas e ir descartando............qué locura...

Gracias por tus aportes, seguimos aquí buscando el problema...

Bueno, estuve conversando con nakuadac y llegamos a la conclusión que no era el IDE sino las versiones de las librerías.
El tiene un programa que funcionaba bien en su momento pero ahora no. Asi que me compartió el programa completo y yo he estado probando hasta dar con la solución:

WifiManager en 0.14. Me dio problemas pero fui cambiando hasta dar con la mejor
Thingspeak 1.4.3 lo mismo.. fallos hasta una version que no falló
ArduinoJson 5.13.5 esta es la mas crítica

Cambie la ubicación de las librerías a este formato

#include <FS.h>
#include <ESP8266WiFi.h> 
#include <ESP8266mDNS.h>
#include <ESP8266WebServer.h>
#include <DNSServer.h>
#include "ThingSpeak.h" 
#include <WiFiManager.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <DoubleResetDetector.h>
#include <ArduinoJson.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

y obtuve esto

El Sketch usa 337620 bytes (32%) del espacio de almacenamiento de programa. El máximo es 1044464 bytes.
Las variables Globales usan 32092 bytes (39%) de la memoria dinámica, dejando 49828 bytes para las variables locales. El máximo e

coloca el código y probare compilarlo

@surbyte

Profundamente agradecido, toda una lección aprendida, GRACIAS.

@PeterKantTropus

Como bien dice surbyte, el problema lo hemos ido acotando hasta dar con lo que pensábamos que podía ser, y por ahí le ha saltado la libre al Admin.

El tema es que yo estaba trabajando con el IDE versión 1.6.8 y las librerías, pues ni idea (ahora mismo me apunto todas las versiones que me van con el programa). Pero lo que mas loco me ha dejado ha sido el tema de colocar las librerías en un orden. Al menos en mi caso he usado las mismas librerías que me ha dicho surbyte, he compilado, y no me funcionaba. Sin embargo con esas librerías y el orden que indica arriba, me ha compilado a la primera.

Así que amigos, la electrónica y la informática está demostrado que es para locos :slight_smile:

Gracias por los aportes, el tiempo dedicado y las ayuda....

Seguimos para bingo.....

Cuando creía que estaba ya solucionado, como ayer ya se me hizo tarde, y el problema principal, que era que no se compilaba el código, pues una vez conseguido me fui a la cama muy contento. Esta mañana pruebo, me compila de maravilla, pero cuando le hago un DOBLE RESET para lo cual uso la librería:

https://github.com/datacute/DoubleResetDetector/blob/master/examples/minimal/minimal.ino

pues resulta que el programa no se ejecuta de forma correcta y no me reconoce el doble reset. Decir que antes de instalar el nuevo IDE y de tener las librerías sin actualizar, SÍ me iba.

He probado con las tres versiones de la librería datacute/DoubleResetDetector y nada, no consigo hacer que me lo reconozca.

Adjunto el código, que SÍ compila.

Muchas gracias por vuestro tiempo.

PRUEBAS_V_1.ino (16 KB)

Señores, al final he hecho un downgrade del core de arduino, estaba con la última versión, la 2.5.2 y la he dejado en la 2.4.0. Todos los fallos y errores que estaba teniendo, de repente se han solucionado. Aunque lo de ayer fue un logro, ya que conseguimos adaptar el código a la nueva versión del core de arduino. De momento lo voy a dejar así, en la 2.4.0 porque el proyecto tiene tiempo y así es como se me adapta bien. Lo único es que ahora no me hace las lecturas de los sensores DHT22, pero bueno, seguramente sea una cosa más simple, en cuanto tenga todo el proyecto final en marcha lo colgaré para el que lo quiera usar.

En cuanto al downgrade del CORE de arduini, es fácil. Tan sólo entráis en el gestor de tarjetas del IDE de arduino, ahí hacéis scroll hasta abajo y os aparecen todas las ESP8266 y aparece el número de versión, de normal la última, yo la he dejado en 2.4.0.

Para cualquier cosa, no dudéis en consultar.

Muchas gracias por todo.

Muy interesante la conclusión final del downgrade del CORE de nodemcu. Creo que eso ha sido muy constructivo para muchos casos.