Sovralimentazione?

Buongiorno a tutti,
sto costruendo una rete di device Arduino che comunichino tra loro e con me via Blynk.
La scheda Arduino utilizzata è la MKR WiFi 1010.

Ho un problema di frequenti disconnessioni che non riesco a interrompere finché la scheda non si connette più del tutto. Nella libreria di Blynk ho trovato l’esempio Handle Disconnect che fornisce una dozzina di righe di codice per controllare lo stato della connessione a un intervallo predefinito e, eventualmente, ripete il tentativo di connessione. Ve lo allego qui

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";


int lastConnectionAttempt = millis();
int connectionDelay = 5000; // try to reconnect every 5 seconds

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  // check WiFi connection:
  if (WiFi.status() != WL_CONNECTED){
    // check delay:
    if (millis() - lastConnectionAttempt >= connectionDelay){
      lastConnectionAttempt = millis();
      // attempt to connect to Wifi network:
      if (pass && strlen(pass)){
        WiFi.begin((char*)ssid, (char*)pass);
      }
      else{
        WiFi.begin((char*)ssid);
      }
    }
  }
  else{
    Blynk.run();
  }
}

Purtroppo nemmeno in questo modo riesco a evitare il problema e di fatto ho comunicazione con la MKR per un massimo di 20h (non consecutive, le disconnessioni vanno da 3 ogni minuto a 1 ogni X ore senza una logica apparente). Mi è parso che all’inizio le disconnessioni siano molto più brevi e subito risolte, per poi diventare più frequenti e, infine, poche ma molto lunghe.

Attualmente sto facendo delle prove in case con una connessione Wifi stabile e mi capita di collegare l’Arduino a un alimentatore USB per liberare il computer. Ho notato che la potenza dell’alimentatore influisce sul problema.
Mi spiego meglio: il record personale di 20h di operatività l’ho ottenuto alimentando la MKR1010 con la porta USB del computer (0,5A), mentre collegandola a un caricabatterie iPhone (1A) la connessione diventa molto più instabile e la fine delle trasmissioni arriva molto prima (non più di 8h totali). La cosa peggiora usando un alimentatore USB da 2,1A (quello per tablet).

Pensando a un problema di alimentazione, mi sono procurato una piccola batteria LiPo 3,7V 750mAh per vedere di “tamponare” l’eccessiva alimentazione. Una volta carica la batteria, il problema ricomincia a farsi vivo, ma alimentando solo a batteria la connessione è stabile da ben 10h senza interruzioni (da ieri alle 22.32 fino ad ora 8.35 circa). Ho appena riconnesso il tutto al caricabatterie iPhone per una ricarica.

Escluderei assolutamente problemi di cablaggio perché attualmente non ho nulla connesso all’Arduino se non batteria e alimentazione. Nei momenti di connessione, tutto funzionava tant’è che ho già configurato in Blynk il passaggio di informazioni per far comunicare i 6 devices che andranno a comporre la rete.

È corretto pensare a una sovralimentazione? C’è un modo per risolvere? Purtroppo alimentatori sotto i 500mA non se ne trovano quindi la mia prima pensata è di montare un relè sulla linea di alimentazione per interromperla automaticamente a intervalli stabiliti di circa 30 minuti, ma se ci fosse un sistema più pulito non sarebbe male…

Aggiornamento: ho connesso il cavo USB alle 8.28 per ricaricare la batteria. Prima disconnessione dopo 10h alle 8.46

>koten90: in conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa/simile domanda QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco carino abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre la stessa domanda … ::slight_smile:

In conformità al regolamento e per rispetto verso chi ti stava già aiutando nell'altro thread, questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato. Grazie.

Guglielmo