![](https://it.emcelettronica.com/wp-content/uploads/files/node_images/telit_module.jpg)
Come inviare SMS con il modulo Telit GM862. Ecco i comandi AT per inviare gli SMS con il modulo gsm/gprs Telit GM862.
Per inviare SMS (Short_Message_Service) con il modulo TELIT GM862:
(ricordo che < CR> equivale a Carriage Return, ASCII 13 in decimale)
Si ricorda sempre di fare riferimento ai comandi AT presenti nel manuale del GM862 TELIT
AT+CMGF=1< CR> // Per settare il formato degli SMS in TEXT (di piu facile gestione rispetto al PDU)
AT+CSCA?< CR> // Per verificare il numero di telefono del Centro Servizi
AT+CNMI=0,0,0,0,0< CR> // Per disabilitare i rapporti automatici di nuovi messaggi ricevuti (se NON usati)
AT+CPMS="SM","SM","SM"< CR > // Setta dove salvare i messaggi SM=SIM , ME= modulo
Ed ora i comandi di INVIO sms
INVIARE UN SMS SENZA SALVARLO
AT+CMGS=+3933500000 // Inviare il numero di telefono e Attendere la risposta del modulo:
> // risposta del MODULO
questo è il messaggio da inviare< CTRL Z> // Inviare il testo dell'sms e concludere con CTRL Z (ASCII decimale 26)
![Scarica subito una copia gratis](https://it.emcelettronica.com/wp-content/uploads/2020/03/banner-firmware2.0-blog.png)
ciao, volevo chiederti un suggerimento:
sto lavorando su un modem GM862 della telit co interprete Python; il progetto per adesso consiste nel fattoche ilmodem dopo aver ricevuto uo squillo da un telefono abilitato deve estrapolare il numero di telefono ed inviare allo stesso un sms. Al primo avvio il tutto funziona inviandomi il messaggio, ma se riprovo a rifargli lo squillo non riesce piu’ a riconoscermi il RING è come se non uscisse dalla modalità testo dell’invio del sms;
Riporto il codice della procedura di invio sms:
def invia_sms(num,messaggio):
MDM.send(‘AT+CMGF=1\r’,0)
res=MDM.receive(10)
if(res.find(‘OK’)!=-1):
SER.send(‘AT+CMGF OK\r\n’)
Txbuff=”AT+CMGS=\”%s\”\r” %num
SER.send(Txbuff)
res=MDM.send(Txbuff,0)
res=MDM.receive(10)
if(res.find(‘>’)!=-1):
Txbuff=messaggio+chr(26)+’\r’
res=MDM.send(Txbuff,0)
MOD.sleep(40)
pippo=0
res=” ”
while(res.find(‘OK’)==-1):
SER.send(‘attesa ok sms\r\n’)
res=MDM.receive(10)
else:
SER.send(‘Errore AT+CMGF\r\n’)
pippo=-1
MDM.send(‘AT+CMGF=0\r’,0)
return pippo
potresti darmi una mano?
ti ringrazio anticipatamente alfredo
Non ho mai usato il python con i moduli Telit, ho sempre preferito il C o l’assembler di un microcontroller esterno.
Comunque dovresti provare a debuggare e verificare, ad esempio, che il programma sia uscito dal ciclo while finale.
Prova a postare la Tua richiesta anche qui
http://www.roundsolutions.com/forum/
ed a dare un’occhiata qui
http://www.thescripts.com/forum/thread750491.html