Durante la compilazione ho un errore con la libreria ArduinoJson

Buonasera a tutti, sto scrivendo uno sketch per ESP32 dove dovrei includere la libreria ArduinoJson.h
Purtroppo durante la compilazione mi continuo a ritrovare sempre lo stesso errore:

Ho provato a disinstallare e installare nuovamente la libreria, la libreria è installata nella stessa directory delle altre (di terze parti) ma purtroppo non riesco a risolvere.
Qualcuno ha qualche consiglio da darmi ?

Grazie a tutti
Alessandro

Che sistema operativo stai usando?

Se si tratta di Windows, le librerie devono trovarsi all'interno della cartella Documenti->Arduino>Libraries

Ciao, uso macOS 12.6.5

Allora dovresti avere le librerie nella tua /home

1 Like

Che versione dell'IDE? Come hai installato la libreria?

Guglielmo

P.S.: io lavoro su macOS 10.14.6

Ciao, uso la versione 2.1.0.
Ho installato la libreria dal solito file .zip

ERRORE ... NON si installano MAI le librerie ufficiali in questo modo, ma si DEVE usare il "library manager" dell'IDE che si fa carico delle dipendenze e di mettere tutto al posto giusto.

Cancella l'installazione manuale e fai l'installazione dal "library manager", vedrai che non avrai problemi.

Guglielmo

1 Like

TUTTE le migliaia di librerie ufficiali che sono elencate QUI si DEVONO installare dal "library manager" che si occupa di tutto :wink:

Non per nulla chi scrive una libreria ufficiale deve ripettare precise regole e aggiungere una serie di files proprio per la loro corretta gestione.

Guglielmo

1 Like

Perfetto e grazie.
Domani proverò nuovamente.

Ciao @gpb01 ho provato a fare come mi ha consigliato ma il compilatore mi ridà sempre l'errore.

Libreria ArduinoJson.h l'ho cercata e installata dalla gestione librerie

Libreria WiFi.h l'ho installata dal file .zip
Libreria UniversalTelegramBot.h installata dal file .zip

Nello sketch sono così inizializzate:

#include <Arduino_JSON.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>

Le ultime due librerie sono allocare nelle directory sotto menzionate, e ho fatto un copia/incolla degli errori.

Grazie per l'eventuale supporto.

In file included from /Users/xxxxx/Documents/PROGETTI/SOFTWARE/ESP32/xxxxx/xxxxxx.ino:5:
/Users/xxxxx/Documents/PROGETTI/SOFTWARE/ESP32/xxxxx/libraries/UniversalTelegramBot/src/UniversalTelegramBot.h:29:10: fatal error: ArduinoJson.h: No such file or directory
#include <ArduinoJson.h>
^~~~~~~~~~~~~~~
compilation terminated.
Più di una libreria trovata per "WiFi.h"
Usata: /Users/xxxxx/Library/Arduino15/packages/esp32/hardware/esp32/2.0.8/libraries/WiFi
Non usata: /Users/xxxxx/Documents/PROGETTI/SOFTWARE/ESP32/xxxxx/libraries/WiFi
exit status 1

Compilation error: ArduinoJson.h: No such file or directory

Modificato:

Ho risolto, ho sostituito la libreria Arduino_JSON da Arduino con quella ArduinoJson da Benoit Blanchon

Grazie

Mmm ... c'è qualche cosa che NON capisco ... tu nel codice hai:

#include <Arduino_JSON.h>

e quindi è evidente che hai installato e cerchi di usare la libreria Arduino, ma, come ben visibile dall'errore che riporti NON è nel tuo include il problema ma ...

UniversalTelegramBot.h:29:10: fatal error: ArduinoJson.h: No such file or directory
#include <ArduinoJson.h>

... se leggi BENE si vede che la libreria UniversalTelegramBot, a sua volta, include un altra libreria:

#include <ArduinoJson.h>

che è proprio quella che si trova nel reference che ti ho già indicato nella sottocategoria "Data Processing" e, guarda caso, è quella di Benoit Blanchon.

Ora, se le librerie che usi cercano una libreria (e l'errore te lo indica) e tu ne installi un'altra ... mi sembra ovvio che poi hai problemi !

Guglielmo

Credo che il mio errore sia partito dallo scaricare la libreria ArduinoJsun da Github, e non aver usato quella di Benoit Blanchon.
Una delle cose che non capivo era anche il perché la libreria UniversalTelegramBot cercasse un'altra libreria.

Ora credo di aver risolto, sto ottimizzando le ultime cose e il tutto sembra funzionare

Grazie

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.