libreria SIM900 senza SoftwareSerial

salve

avrei bisogno del vostro aiuto perché devo utilizzare il modulo sim900 su un arduino due dove le softwareSerial non funziona quindi avrei la necessita di usare le seriali hardware ad esempio la serial1 (18,19)

la libraria allegata usa le softwareserial come posso fare per usare le hardware?

grazie

GPRS_SIM900-master.zip (21.9 KB)

Fai un po' di ricerche qui sul forum e trovi la soluzione visto che, non più tradi della settimana scorsa, si è discusso esattamente la stessa cosa ... come togliere la SoftwareSerial e usare la Serial1 (o 2 o 3 ... su una MEGA).

Guglielmo

Leggiti QUESTO thread e troverai come fare ...

Guglielmo

grazie ci provo

dovrei modificare solo il sim900.ccp?

grazie

... devi modificare i files dove è coinvolta la SoftwareSerial e la sua istanza. Controlla quindi i vari files che usi.

Guglielmo

ho visto che la include

#include <SoftwareSerial.h>

l’ho trovato solo nel file sim900.cppb e nel file sim900.h

giusto?

scusa ma non sono molto esperto sono un po agli inizi

Ho guardato quei files ... l'implementazione è piuttosto diversa dagli altri e le modifiche sono da studiare ... ... non so per quale motivo ma hanno usato la SoftwareSerial tramite puntatori ... tanto per complicare un po' la vita a chi legge ::)

Guglielmo

P.S.: Comunque io ricordavo librerie per i SIM che già avevano la scelta tra la SoftwareSerial e la MEGA ... ... se le trovi sono molto più facili da sistemare.

infatti ho notato molta differenza della libreria che era nel post che mi avevi suggerito

ne ho trovata un altra che avrebbe la selezione della mega ma non mi funziona nel mio progetto appena includo la libreria sim900.h e verifico il codice senza aggiungere righe mi da vari errori che on riesco a risolvere

se commento l'include del sim900 il mio progetto viene verificato correttamente

ne conosci altre librerie che potrei usare?

birrohgt: ne conosci altre librerie che potrei usare?

no, io i SIM li uso senza librerie, mandando loro direttamente i comandi "AT" ;)

Guglielmo

ok quindi usero una cosa come questa potrebbe andare?

#define gsm Serial1


  gsm.begin(9600);           //apre connessione seriale
  delay(2000);
  gsm.write("AT+CMGF=1\r");           //setta gsm in modalità testo
  delay(1000);
  gsm.print("AT+CMGS=\"32xxxxxxx\"\r");   //numero di telefono
  delay(500);
  gsm.print("messaggio sms");           //SMS
  delay(500); 
  gsm.write(0x1A);           // invia fine messaggio

... volendo ... ::)

Attento però all'uso del metodo write() ... usa il metodo print() o println() (... guarda sul reference della Serial quele è la differenza tra wtite() e print() ;) )

Guglielmo

grazie

ok ho usato println() al posto di write()

#define gsm Serial1


  gsm.begin(9600);           //apre connessione seriale
  delay(2000);
  gsm.println("AT+CMGF=1\r");           //setta gsm in modalità testo
  delay(1000);
  gsm.println("AT+CMGS=\"32xxxxxxx\"\r");   //numero di telefono
  delay(500);
  gsm.println("messaggio sms");           //SMS
  delay(500); 
  gsm.write(0x1A);           // invia fine messaggio

puo andare?

grazie per l'aiuto