Caricare ciò che viene letto dalla seriale in una variabile

Ciao a tutti, ho un modulo sim800L e ho definito una seriale virtuale sui pin 10 e 11, attraverso la quale faccio comunicare il sim800L con arduino. Attraverso il monitor seriale riesco a comunicare con il sim800L inviando comandi e ricevendo le risposte. Vorrei adesso che le risposte che il sim800L invia attraverso la sua seriale all Arduino Uno vengano caricate in una variabile, che poi dovrò splittare o comunque processare. Il mio problema è che non so come associare ogni "carattere" del seriale del sim800L alla mia variabile. Per inviare e ricevere comandi, io adesso uso lo script

if(myserial.available() >0 ) Serial.write(myserial.read());
if(Serial.available() >0 ) myserial.write(Serial.read());

vorrei che quello che io vedo a schermo sulla seriale di arduino venisse caricato in una variabile di testo, oppure non so ad esempio se ci vuole una stringa o cos altro. Grazie a tutti

Scopiazzando, potrei adattare questo:

//definition of pins
//HC-12 messenger send/receive
#include <SoftwareSerial.h>
SoftwareSerial hc12(2, 3); //RX, TX
float received;
float valore;

void setup() {
 Serial.begin(9600);
 hc12.begin(9600);
}


void loop() {

if(hc12.available())
{                     
received=hc12.read(); // --> in questo modo, mi carica ciò che viene letto da hc12 su RECEIVED? 
valore=received/100;             
Serial.println(valore);
}

}

non credo vada bene, dato che il sim800L mi restituisce una stringa e non un valore numerico. mi serve qualcosa, tipo un ciclo while, che mentre la seriale del sim800L manda caratteri, lui carattere per carattere lo inserisca in una stringa. sono caratteri alfanumerici tipo:
+CMG 3, “NEW”, “+39xxxxxxxx”, “testo”.
Dovrei mettere il tutto in una stringa

> konig87: ma proprio non vogliamo ricordarcelo che … che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

Guglielmo

Si, quando io invio un comando AT al modulo sim800L, lui risponde con delle stringhe, attraverso la seriale. Per la precisione, io invio il comando: AT+CMGF=1 e poi AT+CMGR=n dove n è l' indice dell sms che voglio leggere. Ad esempio, se voglio leggere il 1 mess memorizzato digito dalla tastiera del pc sulla seriale:

AT+CMGF=1
AT+CMGR=1

e lui mi risponde sulla seriale con:

+CMGR: "REC READ","+numero di telefono","","dataeora" poi va a capo e mi mette il testo del messaggio sempre in virgolette.

Devo inserire tutti questi caratteri in un QUALCOSA (stringa? array di caratteri? fate voi) in modo che dopo io possa vedere se il numeroditelefono mi coincide con un numero di telefono che gli do io all arduino, costante, in fase di programmazione. Io nelle variabili globali definirò qualcosa di tipo stringa o caratteri[] con il mio numero di telefono, e SE il numero coincide con quello letto dalla seriale e registrato sulla stringa o array, allora va avanti. Ma se non riesco ad inserire la risposta della seriale in un array o stringa, non posso andare avanti. Io a schermo VEDO la risposta, ma non so come INSERIRLA da qualche parte.

no, l esempio era quello seppure "limitato" ai primi caratteri. Al di la del COMMA SEPARED, a me andrebbe bene anche buttare tutto in un vettore di caratteri...ma non so come fare. comunque, ammesso che io abbia questo vettore di carattere riempito con +CMGR: "REC READ","+numero di telefono","","dataeora" esiste una funzione che mi permetta di confrontare una parte della stringa con un' altra contenente il numero di telefono? una specie di strcmp. Esempio: la seriale mi legge dalla scheda sim e trasmette all arduino questo codice: +CMGR: "REC READ","+39xxxxxxxx47","","2017/06/15:22:29","testo"

io con qualche procedura metto tutto in un array. come posso confrontare con un altro array contenente il numero di telefono in modo che lui lo trovi nella stringa? Oppure devo inserire +CMGR: "REC READ","+39xxxxxxxx47","","2017/06/15:22:29","testo" in DIVERSI array di caratteri, e poi confronto solo quello contenente il numero?

Essendo che vuoi lavorare su un numero di telefono puoi dichiarare un long numeroditelefono=numeroditelefono•10+myserial.read-'0'. Dopo che hai utilizzato questo numero per il controllo devi farlo diventare 0. Attento, però, a fare si che contenga solo numeri oppure é tutto sballato e senza senso.