Salve a tutti,
mi trovo di fronte ad un problema, ovvero quello di dover estrapolare il numero di telefono di un chiamante o del mittente di un sms.
Mi spiego meglio: la mia applicazione (domotica remota) prevede l'attuazione di determinate azioni in seguito alla ricezione di un sms o di una chiamata. Sto utilizzando un ATMEGA8535 e un modulo GSM SIMCOM SIM900.
Arrivato al punto di riuscire a gestire il flusso di sms in entrata e in uscita, così come per le chiamate, mi trovo però in difficoltà di fronte alla necessità di dover consentire i comandi (naturalmente) soltanto ad un determinato numero "master" abilitato.
Spulciando il datasheet del modulo non sono riuscito a trovare niente che possa aiutarmi.
Visto che non è consigliabile lasciare l'applicazione libera di ricevere sms e chiamate da chiunque (se si vuole ritrovare integra la propria casa al ritorno XD) chiedo gentilmente a chi ha più esperienza di me nel settore un aiuto per la risoluzione del problema.
Come ultima spiaggia avevo pensato all'implementazione di una sorta di codice PIN da inserire direttamente come testo nell'sms ma sarebbe una soluzione scomoda e molto meno intuitiva ed elegante seppur attuabile con le mie attuali conoscenze.
Link del datasheet dei comandi AT relativi al modulo in questione: http://garden.seeedstudio.com/images/a/ ... _V1.03.pdf
p.s. So che tramite la codifica PDU degli sms è possibile estrapolare il numero di telefono ma per la mia applicazione ho previsto una codifica "plain text" e la maggior parte del codice l'ho già scritto per lavorare con quest'ultima.
Comando AT per estrapolare numero di telefono
Moderatore:
Paolino
15 messaggi
• Pagina 1 di 2 • 1, 2
-1
voti
phylum ha scritto:AT+CMGR=1
dovrebbe darti il mittente come secondo argomento
Questo comando mi restituisce soltanto il contenuto dell'sms relativo alla locazione di memoria 1.
1
voti
non vedo il problema puoi cancellare ogni sms ricevuto dopo l'elaborazione o ascoltare i messaggi CMTI in quel senso o comunque ottenerlo dalla lista di CMGL e pescare quelli con REC_UNREAD; mentre riguardo alla funzione, la specifica che hai allegato dice che restituisce:
+CMGR: "REC UNREAD","+numero_mittente","","02","data_ora",<corpo> \n\nOK
mentre per le chiamate ricevi RING\n+CCWA con il numero a quel punto puoi dare ATH per ignorarla
+CMGR: "REC UNREAD","+numero_mittente","","02","data_ora",<corpo> \n\nOK
mentre per le chiamate ricevi RING\n+CCWA con il numero a quel punto puoi dare ATH per ignorarla
0
voti
phylum ha scritto:non vedo il problema puoi cancellare ogni sms ricevuto dopo l'elaborazione o ascoltare i messaggi CMTI in quel senso o comunque ottenerlo dalla lista di CMGL e pescare quelli con REC_UNREAD
Infatti non c'è nessun problema, il contenuto dell'sms mi serve anzi. Il problema è che questo comando che dici tu mi restituisce solo il contenuto dell'sms.
phylum ha scritto:+CMGR: "REG UNREAD","+numero_mittente","","02","data_ora",<corpo> \n\nOK
Ho letto anche io questa stringa ma ti posso assicurare che il comando che hai scritto tu mi restituisce soltanto il contenuto dell'sms.
1
voti
phylum ha scritto:prova ad inviare AT+CSDH=1 prima di CMGR
Grazie mille :)
Non avevo visto questo comando, praticamente, anche in modalità text, mi mostra i vari parametri dell'sms, era proprio quello che cercavo!
Non posso darti rep+ perché non ho il minimo di rep per farlo XD
2
voti
non preoccuparti, qui gli unici che si preoccupano del punteggio di rep# sono quelli che toccano lo zero assoluto :)
tutto quello che ci aspettiamo come ricompensa è una conversazione educata, senza litigi, insulti etc. ed il rispetto delle semplici regole che abbiamo stabilito.

tutto quello che ci aspettiamo come ricompensa è una conversazione educata, senza litigi, insulti etc. ed il rispetto delle semplici regole che abbiamo stabilito.

0
voti
mentre per le chiamate ricevi RING\n+CCWA con il numero a quel punto puoi dare ATH per ignorarla
Ti disturbo di nuovo.
Ho risolto per quanto riguarda gli sms ma non riesco ad uscirne invece con le chiamate. Anche settando AT+CCWA=1 (che dovrebbe essere l'equivalente di AT+CSDH=1 per gli sms), al momento della ricezione di una chiamata, l'unico messaggio che vedo è RING, senza +CCWA numero.
15 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


