finalmente mi è arrivata a casa la tanto attesa GPRS SHIELD della seeedstudio..
vorrei qualche piccolo chiarimento prima di combinare casini...
ho dato una bella occhiata sul sito seedstudio wiki, ma sinceramente non ci ho capito nulla perché gli esempi per me non erano chiarissimi....
1 la pagina parlava di caricamenti di driver serial... non ho capito ma li devo caricare ad ogni nuovo progetto?
2 fa differenze tra arduino e arduino 1.0.... per caso il secondo equivale ad "arduino uno"?
3 tutti gli esempi comunque si riferiscono all'utilizzo di un programma esterno, io non ho trovato traccia delle librerie di arduino in modo da poterle studiare e vedere quali comandi interessano al mio progetto e quali no...
4 a che serve il vano batteria?
potreste fornirmi una guida più semplice ed un po' più completa?
grazie per le risposte ragazzi scusate la mia ignoranza ma ce la sto mettendo tutta per imparare.... sn confuso
Ora lo shield è inizializzato..si aggancia da solo alla rete, e potrai dialogare con lo shield coi classici comandi della seriale(println,available,read..),dopo aver ovviamente inizializzato la connessione
se vuoi telefonare a un numero,usi
nomeSerial.println("ATD + +86138xxxxx615;");//dial the number
per abbassare la telefonata usi:
nomeSeriale.println("ATH");
per mandare i mex,basta che ti leggi sul wiki
altra strada: usi la libreria gsm di openElectronics,e modifichi SOLO il metodo di inizialzzazione..
cmq,sulla situazione wiki,puoi ignorare la schermata del programma Terminal..i codici che vedi x il resto della pagina si riferiscono a Arduino..
dimenticavo,inizialmente imposta la velocità della connessione seriale allo shield a 19200 bps..
se vuoi fare cose più avanzate guardati un manuale di comandi AT..
cmq ti consiglio,di usare all'inizio il seguente sketch
nomeSerial.println("ATD + +86138xxxxx615;");//dial the number
questo lo devo inserire ogni volta che faccio un nuovo progetto vero?
i comandi AT non cecessitano di librerie da inserire?
se non sbaglio il nomeserial lo prendo dalle impostazioni del sw di arduino vero? cioè in teoria invece di mySerial.println da me dovrebbe essere cu.usbmodem411 ?
attiva il modulo se era disattivato e viceversa..attenzione,se lo fai eseguire in ogni setup SEMPRE,hai il seguente problema:
quando resetti l'arduino,lui incontra di nuovo questo codice e questa volta stacca lo shield..perciò ti conviene prima controllare se lo shield è già attivo con il seguente codice:
while(_SERIAL.available()){_SERIAL.read();}//svuoto il buffer di ricezione
_SERIAL.print("AT");_SERIAL.print("/r");// il /r termina il comando,poichè il gprs non usa l'invio a capo come terminatore
delay(200);
bool daInizializzare=true;//le righe seguenti guardano se lo shield m'ha risposto OK
if(_SERIAL.read()=='O')
if(_SERIAL.read()=='K')
daInizializzare=false;
x le librerie fai come vuoi:usi di quelle già fatte(modificando però il turnon),ti scrivi il codice direttamente nello sketch o te la crei(come ho fatto io,dato che i delay mi davano parecchio fastidio..)..
come l'hai dchiarato cu.usbmodem411?
comunque x nomeSeriale(o _SERIAL) intendo il nome della seriale hardware(Serial,Serial1..) o software..
inoltre dopo aver inizializzato lo shield,ti conviene laciare sti comandi
inviaComando("AT+CLIP=1");//visualizza numero chiamata entrante
inviaComando("AT+CMEE=0");
inviaComando("AT+CMGF=1");//mandi sms in modalità testuale
quando qlkn ti chiama,lo shield ti manda "RING"..ma ti conviene fare le prove con lo sketch che t'avevo dato prima,che ti consente il dialogo diretto pc-shield(sul serial monitor,imosta la velocità opportuna e il carriage return)
cu.usbmodem411 è quello di fefoult del mio mac... quando inserisco arduino e devo scegliere la seriale scelgo questo.... sinceramente è l'unico nome della seriale hardware che conosco..... devo controllare meglio...
ricapitolando......
per la prima volta eseguo il codice piccolo..... avendolo fatto mi si sono accese 2 lucine... una verde e una rossa che lampeggiavano... dopo qualche secondo la rossa è diventata fissa...... penso perché non ho inserito ne scheda sim ne antenna....
ora tolgo questo codice dal firmware dato che la shield è già attiva e da ora posso iniziare ad usare i comandi per lo scopo del mio programma giusto??
il controllo ancora non posso farlo perché devo capire bene il nome della seriale del mio mac
grazie mille M_RI del tuo preziosissimo aiuto... e della tua pazienza.....
ti chiedo solo un ultima cosa....
potresti farmi un esempio????
un codice semplicissimo...... al verificarsi di un evento qualsiasi(pulsante, sensore ecc...) parte una chiamata al numero x.....
mi serve solo un piccolissimo esempio per fissare in mente i concetti che mi hai spiegato nel post.... grazie....
#define _SERIAL Serial
void inviaComando(char mex[],bool cr=true){
_SERIAL.print(mex);if(cr)_SERIAL.print("/r");
}
void GSMCall(char num[]){
char com[30];
strcpy(com,"ATD");
strcat(com,num);
strcat(com,";");
inviaComando(com);
}
void GSMAppendi(){
inviaComando("ATH");
}
setup(){
_SERIAL.begin(19200);
inviaComando("AT+CLIP=1");//visualizza numero chiamata entrante
inviaComando("AT+CMEE=0");
inviaComando("AT+CMGF=1");//mandi sms in modalità testuale
}
loop(){
if(digitalRead(10)==HIGH){//se il pin è alto,telefono..riappendo quando torna basso
GSMCall("+393462356890");
while(digitalRead(10)==HIGH);//ciclo a vuoto finchè il pin è alto
GSMAppendi();//ora il pin è basso,quindi riappendo;
}
}
ho supposto che lo shield comunicasse con l'arduino sulla Serial(pin 0 e 1)
non capisco perché non va... molto probabilmente ho qualche problema con SERIAL...
guarda cosa ho provato io a fare.....
ho tolto la condizione if tanto per testare......... ho letto un po' in giro e ho notato che dovevo per forza mettere la libreria SoftwareSerial.h
che ne dici? dove è l'errore? compila perfettamente ma la chiamata non parte......... ho solo una luce rossa accesa... quella verde non lampeggia è spenta...
come adesso stai cercando di chiamare il cellulare un MIGLIAIO di volte al secondo ]
qnd probab hai impallinato il tutto..piuttosto metti il GSMCall nel setup..quindi togli e rimetti la corrente a tutto(arduino e shield),schiaccia il tasto sullo shield e poi carica lo sketch..ok?
inoltre come adesso sullo shield ci sono i ponticelli sulla seriale hardware o software?
cmq non va neanche così penso il problema sia di librerie.... seriale e macosx.... anche perché la scorsa volta mi dava problemi sul caricamento di librerie aggiuntive.......... provo il tutto su windows e ti faccio sapere