lettura feed

Salve a tutti. purtroppo non ho molta esperienza con la ethernet shield su arduino e vorrei leggere un valore di un feed e inserirlo in una variabile per poi proccessarla. Il feed e https://emoncms.org/feed/value.json?id=218275&apikey=a67faa5c44086007f9d22a9cb27d99e0 mi potete dare una dritta? Grazie mille

Buonasera, essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, [u]NON[/u] necessariamente inerenti alla tua domanda: - serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - pinout delle varie schede by xxxPighi: Pinout - link [u]generali[/u] utili: Link Utili

fatto. mi scuso ma avevo già fatto la presentazione e svariati post negli anni passati ( purtroppo avevo accantonato arduino per un paio di anni ) cmq rifatto tutto senza pensieri

Ciao, premetto che non ho mai usato direttamente la ethernet shield ma ho visto gli esempi della sua libreria.

Penso che il tuo dato è una stringa di testo che rappresenta un numero, quello che secondo me dovresti fare è modificare l'esempio clientweb della libreria in modo che riceva non un singolo carattere ma un intera stringa di testo. Una volta che hai la stringa la converti, se necessario,in un numero con virgola tramite la funzione atof(), atof() funzione con le stringhe stile C, quindi devi salvare la stringa in un array di char.

Per avere un esempio di come operare, puoi cercare esempi qui sul forum come ricevere stringa da seriale, il codice non cambierà molto da quello che devi usar tu, infatti ricevere un carattere da seriale è molto simile a ricevere un carattere da ethernet shield.

ok . grazie mille

Sono riuscito tramite la modifica del webclient a recuperare una stringa contenente il feed , solo che recuper il valore "1234.56" e devo fare due cose : a) eliminare le virgolette iniziali e finali b)convertire la stringa in int

per il punto B trovo esempi , ma per il punto A non so come procedere , mi potete aiutare ?

Penso che innanzi tutto devi avere un array dove mettere il numero senza virgolette, poi se il numero è composto sempre dallo stesso numero di cifre, si potrebbe usare la funzione strncpy(), se invece il numero di cifre varie, si può creare una funzione che tolga le virgolette.

// Esempio con strncpy() su numero con numero di cifre sempre uguali 7

char stringa[10]; //stringa contenente il numero

char risultato[10];

strncpy(risultato,stringa+1,7); // stringa+1 significa che parte dal secondo carattere

risultato[8]='\0'; // terminatore stringa
// Esempio con funzione personalizzata che toglie le virgolette

char stringa[10]; //stringa contenente il numero

char risultato[10];


void eliminaVirgolette(char *stringa, char *risultato){

     int i=0,j=0;
     for(i=0;stringa[i]!='\0';i++){

            if(stringa[i]!='"'){// diverso da virgolette ' " '
           
                 risultato[j++]=stringa[i];
            
            } 

     }
     risultato[j]='\0';// terminatore stringa

}

grazie mille. appena ho 2 secondi provo .