ciao, penso di avere un problema. ho cambiato pc, reinstallato arduino ide, ma ora mi si presenta il problema che quando provo a caricare sulle schede un file .ino mi dice "librerie mancanti".
ma come posso recuperare esattamente quelle che utilizzavo? ce ne sono moltissime di simili e magari qualcuna pescata su qualche sito ![]()
...e allora installa le librerie mancanti... (o le definizioni di altre schede Arduino) ![]()
(posta il messaggio di errore esatto e più informazioni sulla tua scheda ecc.)
tipo in una scheda esp01s mi dà questo errore, sembra perchè ho installato più librerie uguali (prese dallo "store" dell'ide)
però mi ricordo che ai tempi non tutte funzionavano ma risalire a quella giusta non so come fare
c:/users/christian/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_175422\libraries\arduino_212739\AntaresESP8266MQTT.cpp.o:C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_212739\src/AntaresESP8266MQTT.cpp:4: multiple definition of `client'; C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_175422\sketch\v5.4_assistant_ok.ino.cpp.o:C:\Users\Christian\Dropbox\PC (3)\Documents\Domotica\Arduino\progetto livello acqua piante carnivore\v5.4_assistant_ok/v5.4_assistant_ok.ino:13: first defined here
c:/users/christian/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_175422\libraries\arduino_212739\AntaresESP8266MQTT.cpp.o:C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_212739\src/AntaresESP8266MQTT.cpp:3: multiple definition of `espClient'; C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_175422\sketch\v5.4_assistant_ok.ino.cpp.o:C:\Users\Christian\Dropbox\PC (3)\Documents\Domotica\Arduino\progetto livello acqua piante carnivore\v5.4_assistant_ok/v5.4_assistant_ok.ino:12: first defined here
collect2.exe: error: ld returned 1 exit status
Più di una libreria trovata per "PubSubClient.h"
Usata: C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_212739
Non usata: C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_256472
Uso la libreria ESP8266WiFi alla versione 1.0 nella cartella: C:\Users\Christian\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi
Uso la libreria arduino_212739 alla versione 0.9.2 nella cartella: C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_212739
exit status 1
Errore durante la compilazione per la scheda Generic ESP8266 Module.
➜ Il problema nasce dal fatto che dichiarate due volte le stesse variabili globali.
quindi intendi un errore nel codice?
mi chiedo come ho fatto a caricarlo le altre volte allora ![]()
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define sensore 3 //sensore controllo acqua
const char* ssid = "*****";
const char* password = "*****";
const char* mqtt_server = "*****";
#define mqtt_user "*****"
#define mqtt_password "*****"
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
randomSeed(micros());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
// Attempt to connect
// If you do not want to use a username and password, change next line to
// if (client.connect("ESP8266Client")) {
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
} else {
delay(5000);
}
}
}
void setup() {
setup_wifi();
client.setServer(mqtt_server, 1883);
pinMode(sensore, INPUT_PULLUP);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
//-----------------------------------codice controllo acqua
if ((digitalRead(sensore) == LOW) ) //mancanza acqua
{
client.publish("livello_acqua_piante", "Manca Acqua");
delay (1500);
ESP.deepSleep (39e8); //riposo per 65 minuti
delay (10);
}
if ((digitalRead(sensore) == HIGH) ) //presenza acqua
{
client.publish("livello_acqua_piante", "Acqua OK");
delay (1500);
ESP.deepSleep (39e8); //riposo per 65 minuti
delay (10);
}
//------------------------------------------
}
Il problema è qui ... hai installato, probabilmente sia a mano che tramite l'IDE la stessa libreria, l'hai aggiornata e ... si è creata un po' di confusione.
Elimina a mano le cartelle:
C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_256472
C:\Users\Christian\Dropbox\PC (3)\Documents\Arduino\libraries\arduino_212739
prova a ricompilare e, se ti manca la libreria PubSubClient, installala dal "gestore librerie" dell'IDE e NON installare librerie TU a mano!
Guglielmo
ho cancellato le due cartelle ed ora mi dà questo errore:
Alternatives for PubSubClient.h: []
ResolveLibrary(PubSubClient.h)
v5.4_assistant_ok:2:10: fatal error: PubSubClient.h: No such file or directory -> candidates: []
2 | #include <PubSubClient.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
Uso la libreria ESP8266WiFi alla versione 1.0 nella cartella: C:\Users\Christian\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi
exit status 1
PubSubClient.h: No such file or directory
vado ne gestore librerie e se cerco PubSubClient me ne escono tantissime, come faccio a scegiere quella che usavo ed ero sicuro che funzionasse?
Non puoi se non ti sei salvato nulla ...
Vedo che tra le librerie di Arduino è indicata QUESTA ... è piuttosto vecchiotta ![]()
Guglielmo
mannaggia
si, è un progetto del 2022 ma funziona ![]()
di recuperare le librerie dal pc vecchio non mi era neanche passato per la testa ![]()
quindi l'unica soluzione è andare a tentativi...
ma in caso nel momento della compilazione mi dà errore o devo provare se "effettivamente" funziona? per capire se è quella giusta intendo
Installa la prima che esce ... che poi non è che ce ne sono molto ... saranno tre o quattro e alcune sono un fork di questa ... ![]()
Guglielmo
molto bene grazie!
quindi anche per un altro progetto che avevo trovato la libreria su un sito son fregato. era per muovere uno stepper motor
... che libreria era? Guarda il .h che includevi ...
Guglielmo
Più che altro recupera la lista delle lib dal vecchio pc. Dove hai gli sketch, sottocartella Libraries. Ti fai un file con almeno i nomi delle librerie.
Prompt cmd
Vai su cartella con cd, esempio cd \arduino\sketch\libraries
Dir >listalib.txt
Poi nelle varie cartelle delle librerie di solito c è la versione e chi l'ha scritta.
... per l'esattezza, le librerie che sono conformi allo standard dettato da Arduino, hanno un file di nome "library.properties" che contiene tutte le informazioni necessarie ![]()
Guglielmo
Scusate l'OT...
Erano anni che non vedevo un reindirizzamento dell'output su file fatto in dos... Per un attimo sono tornato ai tempi della scuola...
Fine OT
la libreria si chiama StepperMotor.h
accedere al vecchio pc è impossibile, non funziona più.
l'unica sarebbe provare a togliere l'hdd dal portatile e provare a collegarlo su quello nuovo ma se è proprio l'hhd ad essere saltato la vedo dura.
Di librerie Arduino con quel nome del file sono riuscito a trovare soltanto questa.
Controlla se i metodi della libreria corrispondono con quelli presenti nel tuo sketch e se coincidono dovresti essere ragionevolmente sicuro che sia quella corretta.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
