[RISOLTO] Caricare dalla SD le credenziali ...

Salve come posso caricare queste credenziali direttamente dalla sd ?
sto provando in questo modo non va.

[code]

#define BLYNK_PRINT Serial
#include <SD.h>
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
File myFile;
char auth[] = "jhdshfoiyhfklsuvp<iòlfsd";    // 1)le credenziali da richiamare dalla SD....
char ssid[] = "Vodafon";                              //  2)
char pass[] = "la passw";                                //3)

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    while (myFile.available()) {
      Serial.write(myFile.read());

       Pass = myFile;  // volevo fare una cosa del genere *

    }
    myFile.close();
  } else {
    Serial.println("error opening test.txt");
  }
}
void loop()
{
  Blynk.run();
}

[/code]

e cosa vuol dire "non va"
non si carica, non ti mostra il contenuto del file, sbaglia file, non inizializza la sd?

Scusa ma non ho postato tutto lo sketch completo .

Ti rispondo alle tue domande funziona tutto leggo quello che sta scritto sul sd, ad esempio ho messo la stessa password la leggo uguale sulla seriale ma non riesco a impostarla .

La mia domanda e come faccio a mettere una variabile di tipo char sul sd e impostarla ad ogni riavvio della scheda ?

Quello che vorrei realizzare un programma finito dove l'utente deve mettere le sue credenziali nel sd senza accedere al codice o usare IDE di Arduino.

E allora postalo tutto il programma

Ho modificato il codice postato prima
riesco a richiamare una variabile intera ma non
Char o di tipo string.

Ho letto un po' dei tuoi post vecchi

È un po' che provi a fare questo

E caricare un int lo hai già fatto mesi fa

Metti il programma

Manca una informazione fondamentale, come sono scritte le credenziali nel file, su una riga con separatore, su più righe, in che ordine, hanno un'etichetta, etc
Posta un esempio del file

Federico

Buongiorno a tutti, posto il codice completo con il risultato della seriale, sto provando solo la password .

con un solo file txt s'unica riga.

[code]


#define BLYNK_PRINT Serial
#include <SD.h>
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
File myFile;
char auth[] = "zk3KAFqGCB27GHr";
char ssid[] = "Vodafone-";
char pass[] = "Noemi0805"; //<<

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Serial.print("Initializing SD card...");
  delay(1000);
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");
  myFile = SD.open("pass.txt");
  if (myFile) {
    Serial.println("pass.txt:");
    while (myFile.available()) {
      Serial.write(myFile.read());

      //>>>> pass = myFile;  // volevo fare una cosa del genere *

    }
    myFile.close();
  } else {
    Serial.println("error opening test.txt");
  }
}
void loop()
{
  Blynk.run();
}

[/code]

risultato della seriale.txt (380 Bytes)

Scusa eh ... tu sai ricevere caratteri dalla seriale e metterli in una stringa classica del 'C'? Ecco, la stessa identica cosa fai con i caratteri che leggi da SD (anche se, in realtà, ci sono metodi più veloci, ma intanto comincia a fare così).

Guglielmo

ho letto i vari post dell'autore

ho capito tutto.....

[ correggo ]
ho/abbiamo letto i vari post dell'autore

ho/abbiamo capito tutto.....
[ / correggo ]

senno' mio fratello "il sindaco" salvor mi martella tutto il pomeriggio

Scusa ma con questo input seriale <Serial.write(myFile.read());>

mi stampa correttamente la password sto provando a convertila in stringa o carattere ma stampa caratteri strani .

Boni ... state boni ... :wink:

Guglielmo

WinGamesyun:
Scusa ma con questo input seriale <Serial.write(myFile.read());>

mi stampa correttamente la password sto provando a convertila in stringa o carattere ma stampa caratteri strani .

Ecco, quindi significa che la myFile.read() ti restituisce un carattere per volta ...
Ora, ti ricordi quando devi leggere da seriale che ti da un carattere per volta? Come fai ? :slight_smile:

Guglielmo

Scusa ma mi aveva risposto?
sono appena rientrato

Nulla di importante ... ho dato una ripulita al thread e ... parliamo di questione tecniche SOLAMENTE :wink:

Guglielmo

sarà dalla prima elementare che io e mio fratello ci facciamo da "pacere" l'un con l'altro

oggi tocca a me fare da pacere per lui

basta fare una cosa del genere:

// DDD 
// non significa come sui CD: registrato mixato e masterizzato in digitale
// Significa: 
// Dal Dinamico Duo

#define BLYNK_PRINT Serial
#include <SD.h>
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>

void setup()
{
    char auth[25] = 0;
    char ssid[15] = 0;
    char pass[15] = 0;
    Serial.begin(9600);
    Serial.print("Initializing SD card...");
    delay(1000);

    if (!SD.begin(4))
    {
        Serial.println("initialization failed!");

        while (1);
    }

    Serial.println("initialization done.");
    File myFile;

    if !(myFile = SD.open("pass.txt"))
    {
        Serial.println("error opening test.txt");

        while (1);
    }
    else
    {
        Serial.println("pass.txt: ");
        byte i = 0;

        while (myFile.available() && i < 25)
        {
            char letto = myFile(read());
            Serial.print(letto);
            auth[i++] = letto;
        }

        myFile.close();
        Serial.println();
    }

    Blynk.begin(auth, ssid, pass);
}
void loop()
{
    Blynk.run();
}

naturalmente per ognuna delle tre stringhe
adesso, per calmare l'animo di Fabio, che è ancora un po' stizzito (e l'autore sa perché, io non vado oltre)
sarebbe bella cosa se l'autore desse prova di buona volontà e almeno capisse cosa ho fatto al suo programma per farlo stampare (prima) e per farlo andare bene (dopo)

che se non aggiungevo il commento DDD poi Fabio non me lo scrollavo più...

Grazie per l'aiuto,

ho completato il sketch e ho provato solo leggendo il -auth-

ma da sempre questo errore -Invalid auth token-
impostato in modo normale funziona .

[code]

#define BLYNK_PRINT Serial
#include <SD.h>
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
File myFile;
char auth[32];// visto che e lungo sempre 32 caratteri...
//char ssid[15];
//char pass[15];
char ssid[] = "Vodafone";
char pass[] = "Noemi0805";
//char auth [] = "X3riox4uhgWg3GrJllzcywv3GkOjCfOK";
void setup()
{
    Serial.begin(9600);
    Serial.print("Initializing SD card...");
    delay(1000);

    if (!SD.begin(4))
    {
        Serial.println("initialization failed!");

        while (1);
    }

    Serial.println("initialization done.");
    myFile = SD.open("pass.txt");

    if (myFile)
    {
        Serial.println("pass.txt:");
        byte i = 0;

        while (myFile.available() && i < 32)//modificato  con 32 caratteri 
        {
            char letto = (myFile.read());
            Serial.print(letto);
            auth[i++] = letto;
        }

        myFile.close();
        Blynk.begin(auth, ssid, pass);
    }
    else
    {
        Serial.println("error opening test.txt");

        while (1);
    }
}
void loop()
{
    Blynk.run();
}

[/code]

e sulla seriale cosa esce?

Nulla! infatti stavo provando solo la lettura sd perchè con Blynk se non si connette si blocca

ho copiato tutto su uno sketch vuoto la parte di codice sd ma non appare nulla .

avevo messo una print apposta....

dai, rimettila e dimmi cosa si vede dalla seriale