[Risolto] Non riesco ad inviare SMS con modulo modulo SIM808

Dopo il testo da inviare invi anche un CR/LF? Perché, se ben ricordo, deve ridarti il carattere'>' ... ... comunque la cosa migliore è che controllo la sintassi esatta nel manuale dei comandi AT del SIM808.

Guglielmo

Dopo il testo do l'invio e mi dovrebbe rispondere con l'ok dopo l'invio del messaggio ma si blocca e devo resettare la scheda perchè non risponde più ai comandi AT, perdonami LF cosa sarebbe??? Ora guardo bene sul manuale comunque. Grazie intanto

kchessa: .... perdonami LF cosa sarebbe???

CR = carriage return = 0x0D LF = line fedd = 0x0A

Comunque controlla perché non credo che nell'invio del testo di un SMS risponda OK, ma risponde sempre con un '>' per indicare che attende nuovo testo sino al CTRL-Z.

Guglielmo

Hai ragione il problema è che rimane come in attesa del ctrl-z visualizzando solo > ma ho provato più volte e non accetta il comando ctrl-z tutto questo al di fuori di uno sketch che da i comandi in automatico solo dal monitor seriale, ho anche provato dallo sketch, ma non funziona e fino a quando non riesco dal monitor seriale e inutile provare in altro modo

Non credo che il monitor seriale ti faccia inviare veramente il codice del CTRL-Z ... ... prova con un vero emulatore di terminale, es. CoolTerm (che è gratuito).

Guglielmo

Hai ragione usando coolterm sono riuscito ad inviare messaggio grazie mille ora proverò con gli sketch

Pensavo di aver risolto invece dopo essere riuscito a inviare SMS usando coolterm, ritenevo che inviarli tramite sketch fosse semplice, invece è giorni che ci provo ma non riesco allego il codice che ho semplificato per capire dove sbaglio, non capisco perchè usando il coolterm la scheda rispode ai vari comandi con OK invece da sketch non risponde e ovviamente non invia SMS

#include 
SoftwareSerial mySerial (2, 3);


void setup()
{

Serial.begin(9600);
Serial.print("Please enter AT command:"); 
delay(100);
}
void loop(){



  Serial.println("AT+CMGF=1 \r\n");    //Sending the SMS in text mode);
  delay(3000);
  Serial.println("AT+CMGS=\"+393355608213\" \r\n");//The target phone number
  delay(3000);
  Serial.print("Prova TXT" "\r\n");
  delay(3000);
  Serial.print((char)0x1D);
  delay(3000);

  

 }

Perché stampi su serial invece che myserial?

Ho visto degli esempi e mi sembrava giusto così proverò a fare come dici tu

Se riesci ricordati un karma

ho provato modificando il codice ma non funziona ancora

#include 
SoftwareSerial mySerial (2, 3);


void setup()
{

Serial.begin(9600);
Serial.print("Please enter AT command:"); 
delay(100);
}
void loop(){



  mySerial.println("AT+CMGF=1 \r\n");    //Sending the SMS in text mode);
  delay(3000);
  mySerial.println("AT+CMGS=\"+393355608213\" \r\n");//The target phone number
  delay(3000);
  mySerial.print("Prova TXT" "\r\n");
  delay(3000);
  mySerial.print((char)0x1D);
  delay(5000);

  

 }

boh! Magari non centra nulla, ma lo vedi che usi una println e in più metti anche un ritorno carrello+avanti riga? non credo servano tutti e due sei sicuro del cablaggio? hai incrociato rx con tx? perchè non fai la myserial.begin? prova a scrivere un programma che legge dalla seriale HW e copia sulla seriale SW, e viceversa così puoi comandare il modulo gsm dal terminale "attraverso" Arduino, e avrai certezza che la parte HW funziona correttamente

L'ho fatto e dando i comandi AT direttamente funziona quando provo con lo sketch non funziona

quindi tu hai collegato il PC (col suo terminale) all'arduino via USB, Arduino via Softserial al modulo, e così funziona? bene, si tratta solo di scoprire quale errore c'è nel programma quindi posta quello che funziona con l'emulatore di terminale e da li si parte

Non ho collegato la scheda via USB ma sui pin 10 e 11 come da SW che allego

#include 
SoftwareSerial mySerial (10, 11);// TX, RX

void setup()
{
mySerial.begin(9600);   
Serial.begin(9600);
Serial.print("Please enter AT command:");   
delay(100);
}
void loop()
{
 if (Serial.available()>0)
 mySerial.write(Serial.read());
 if (mySerial.available()>0)
 Serial.write(mySerial.read());
}

quindi riassumendo: con l'ultimo programma tu riesci a mandare gli SMS dal PC usando arduino come ponte invece dando gli stessi comandi da arduino invece che da PC, con gli stessi collegamenti non ti riesce ho capito giusto? a parte che prima usavi 2 e 3, ma va bene, non cambiare più la configurazione, questa va e questa teniamo aspetta che penso un poco...

si hai capito bene quello che mi succede

Porta pazienza, ma devo fare alcune domande esattamente, ma esattamente esattamente, cosa spedisci dal PC, col programma che va? descrivimi la sequenza delle cose che fai ah, una domanda ma perchè non trasmetti il CTRL-Z finale? non c'è nel tuo listato

quando uso il terminale seriale invio: AT+CMGF = 1 AT+CMGS="+39il mio numero" il testo del messaggio e poi ctrl-Z

sì, ma intendevo quando tenti di scriverlo da Arduino, li non ho trovato traccia del CTRL-Z, metti un CTRL-[