You are on page 1of 19

Inicio

Blog

Ayuda

Buscar

Ingresar

Registrarse

Visual Basic Foro

Programacin

Visual Basic .NET (Moderador: seba123neo)

ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

anterior prximo

Imprimir

Pginas: [1] 2

Autor Tema: ENVIAR Y RECIBIR SMS - MODEM GSM -

COMANDOS AT (Ledo 1780 veces)


0 Usuarios y 1 Visitante estn viendo este tema.
softmania

Bytes

Mensajes: 35

Reputacin: +4/-0

ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

en: Noviembre 19, 2013, 01:46:14 am


Citar
Esto se encuentra en el foro de vb6 y el cdigo es correspondiente a vb.net ...
Moderador mi intencin no es hacer spam ... simplemente trato de ordenar la
informacin, el tema es que no se si debo borrar de vb6 el post ya que fue una respuesta.
Hola, bueno explicar un poco como es el tema de los mdem GSM a travs de USB,
as pueden practicar desde su celular, mdem Claro, mdem Movistar o desde cuales
quiera
Es realmente fcil la manipulacin de los mismos, hay cdigo AT estndar que se aplica
prcticamente en todos los mdem y hay otros que son particulares de cada
dispositivo
Estos cdigos AT nos permiten conversar con el dispositivo, pudiendo ejecutar
intrucciones en el mismo, obtener datos y establecer configuraciones ...
No empec explicando que es un comando AT, porque no pretendo profundizar
conceptos, ni aburrirlos, pero sera bueno que investiguen un poco sobre el tema
Vamos al grano
Explicar con Vb.net, pero es equivalente a VB6
Tratar de hacer el ejemplo lo ms simple que se pueda
Primero hay que tener el driver del mdem el cual permitir interactuar con el puerto
serie a travs del puerto USB este puede venir en forma individual o contenido en el
aplicativo que la empresa haya proporcionado para interactuar con el mismo ok
Una vez que tenemos instalado el driver hay que identificar el puerto COM con el

que acepta los comandos AT, ya que puede haber ms de uno utilizados por el
dispositivo
En algunos casos se puede saber porque esta descripto en el mismo nombre con el que
se encuentra el driver, en administrador de dispositivos (caso Windows), pero otras
veces habr que hacer algunas pruebas
Programacin
Agregamos un Control que nos permite conectar el puerto COM (o puerto serial),
Serialport
Armamos una funcin de conexin
Cdigo: Visual Basic
1. Private Function Conectar() As String
2.

Try

3.

With SerialPort1

4.

If .IsOpen Then

5.

.Close()

6.

End If

7.

.PortName = COM9

8.

.BaudRate = 9600 bits por segundo


(velocidad)

9.

.DataBits = 8 bits de datos

10.

.DtrEnable = False

11.

.StopBits = IO.Ports.StopBits.One

12.

.Parity = IO.Ports.Parity.None

13.
.Handshake =
IO.Ports.Handshake.None
14.
de escritura

.WriteBufferSize = 1024 buffer

15.
lectura

.ReadBufferSize = 2048 buffer de

16.
espera

.WriteTimeout = 500 tiempo de

17.
.Encoding =
System.Text.Encoding.Default
18.

.Open()

19.

End With

20.

Conectar = vbOK

21.

Catch ex As Exception

22.

Conectar = ex.Message

23.
24.

End Try
End Function

Citar
De donde saque los datos de la funcin? De las propiedades del dispositivo, all se
detalla la configuracin del puerto
Bin, ya estamos conectados ahora Cmo enviamos un comando AT?
Haremos otra funcin para que se entienda
Cdigo: Visual Basic
1. Public Function Check_AT() As String
2.

Try

3.

SerialPort1.Write("AT" & Chr(13))

4.

Check_AT = vbOK

5.
6.
7.
8.
Citar

Catch ex As Exception
Check_AT = ex.Message
End Try
End Function

EL chr(13) es necesario para darle ingreso al comando AT

Ahora unos comandos AT para tener en cuenta


ATZ&F = resetea el dispositivo
Cdigo: Visual Basic
1. Private Function Resetear() As String
2.

Try

3.

SerialPort1.Write("ATZ&F" & Chr(13))

4.

Resetear = vbOK

5.

Catch ex As Exception

6.
7.

Resetear = ex.Message
End Try

8. End Function
9.
Para enviar SMS se construira de la siguiente manera: AT+CMGS
Cdigo: Visual Basic
1. Private Function Enviar_mensaje(ByVal Numero_Movil As
String, ByVal Mensaje As String) As String
2.
3.

Try
SerialPort1.Write("APZ&F" & Chr(13))

4.

SerialPort1.Write("AT+CMGF=1" & Chr(13))


este comando establece el modo texto

5.

SerialPort1.Write("AT+CMGS=" & Chr(34) &


(Numero_Movil) & Chr(34) & Chr(13))

6.

SerialPort1.Write(Mensaje & Chr(26))

7.

Enviar_mensaje = vbOK

8.

Catch ex As Exception

9.

Enviar_mensaje = ex.Message

10.
11.

End Try
End Function

Citar
Chr(26) es un carcter especial necesario para poder indicar el envo del mensaje
Para obtener mensajes contenidos en el dispositivo sera algo as: AT+CMGL
Cdigo: Visual Basic
1. Private Function Recibir_mensaje(ByVal Tipo As Tipo)
As String
2.

Try

3.
4.

SerialPort1.Write("ATZ&F" & Chr(13))


SerialPort1.Write("AT+CMGF=1" & Chr(13))
este comando establece el modo texto

5.
6.

Select Case Tipo

7.
8.

Case 0
SerialPort1.Write("AT+CMGL=" &
Chr(34) & "REC UNREAD" & Chr(34) & Chr(13)) solo
recibiremos los sms no leidos

9.

Case 1

10.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "REC READ" & Chr(34) & Chr(13)) solo
recibiremos los sms leidos
11.

Case 2

12.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "STO UNSENT" & Chr(34) & Chr(13)) solo
recibiremos los sms no enviados
13.

Case 3

14.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "STO SENT" & Chr(34) & Chr(13)) solo
recibiremos los sms enviados
15.

Case 4

16.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "ALL" & Chr(34) & Chr(13)) Recibiremos
todos los sms
17.
18.

End Select

19.

Recibir_mensaje = vbOK

20.

Catch ex As Exception

21.

Recibir_mensaje = ex.Message

22.
23.

End Try
End Function

Para recibir en forma automtica mensajes que vaya recibiendo el dispositivo


sera:
Cdigo: Visual Basic
1. Private Function Auto_Recibir() As String
2.

Try

3.

SerialPort1.Write("ATZ&F" & Chr(13))


reseteamos

4.

SerialPort1.Write("AT+CMGF=1" & Chr(13))


establecemos el modo texto

5.

SerialPort1.Write("AT+CNMI=" & Chr(34) &


"1,2,0,0,0" & Chr(34) & Chr(13)) esto es ms largo de
explicar, recomiendo lo investiguen

6.
7.
8.

Auto_Recibir = vbOK
Catch ex As Exception

9.

Auto_Recibir = ex.Message

10.

End Try

11.
12.

End Function

Bueno hay muchos comandos mas, como saber la seal del dispositivo, nivel de carga
de la batera, fabricante, se pueden hacer llamadas, colgar llamadas, etc y algo
interesante para que investiguen, se pueden redireccionar llamadas ... mnmnm
Bueno salu2
ltima modificacin: Noviembre 19, 2013, 01:47:55 am por softmania
En lnea
Solo se que no se nada!!! By Scrates
ENTER

Terabyte

Mensajes: 963

Reputacin: +54/-13

www.enterpy.com

o
o

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #1 en: Noviembre 19, 2013, 10:19:03 am


Yo era que prepare tambin algo similar pero nunca me funciono para recibir el
mensaje.
La funcion que pasaste aca me dice un error en As Tipo no esta definido.
Cdigo: Visual Basic
1. Private Function Recibir_mensaje(ByVal Tipo As Tipo)
As String
Yo tengo un Galaxy S2 como se en que puerto esta conectado.
En lnea
CIBER GOOGLE - CONCEPCIN PARAGUAY
www.enterpy.com
Waldo

Megabyte

Mensajes: 195

Reputacin: +17/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #2 en: Noviembre 19, 2013, 02:52:54 pm


Mira vos, yo siempre trabaje directamente con los modulos motorola G20/G24, pensaba
que esos comandos eran especificos de motorola, no sabia que era un std gsm
En lnea
Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #3 en: Noviembre 19, 2013, 03:54:57 pm


Qu bueno!
Me gustara implementar esto. Alguien podra decirme qu se necesita para ello? No s
nada al respecto, por lo que no s si se necesita un modem especial (y si se debe
comprar a las empresas prestadoras del servicio de telefona celular), alguna
autorizacin o registracin, etctera.
Muchas gracias.
Jernimo
En lnea
Waldo

Megabyte

Mensajes: 195

Reputacin: +17/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #4 en: Noviembre 19, 2013, 04:05:08 pm


yo siempre use un modem,
pero por lo que comenta el amigo "softmania" con cualquier telefono conectado x USB
con los drivers correspondientes a una pc, seguramente aparezca como un puerto COM
en la PC, una vez que identificas el puerto, lo abris como un puerto serie comun y le
envias los comandos AT.
No la telefonica, no tiene idea, el SMS lo envia siempre el telefono, ya sea escribiendolo
en el tel o por el comando AT, pero en definitiva siempre sale un SMS
En lnea
Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #5 en: Noviembre 19, 2013, 05:24:06 pm


Gracias, Waldo.
El modem qu tipo de modem es? La ltima vez que us uno era para dial-up
Imagino que siempre ser ms cmodo poner un modem y no estar conectando y
desconectando un telfono, no?
Muchas gracias.
Jernimo
En lnea
Waldo

Megabyte

Mensajes: 195

Reputacin: +17/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #6 en: Noviembre 19, 2013, 05:36:51 pm


Con los unicos que yo trabaje son Motorola modelos G20 o G24, pero no es un modem
externo con gabinete, es mas bien un OEM para algun proyecto electronico, necesita
fuente y la interfaz es serial RS-232

En lnea
Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #7 en: Noviembre 19, 2013, 05:50:12 pm


Perdn por la ignorancia.
A ese modem se le pone un chip de telefona celular para que pueda enviar mensajes?
Muchas gracias.
Jernimo
En lnea
Waldo

Megabyte

Mensajes: 195

Reputacin: +17/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #8 en: Noviembre 19, 2013, 05:55:20 pm


Si, si un simcard comun y silvestre como el de cualquier telefono

En lnea
Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #9 en: Noviembre 19, 2013, 05:58:52 pm


Excelente.
Muchas gracias, Waldo, por tus respuestas y por tu tiempo.
Jernimo
En lnea
softmania

Bytes

Mensajes: 35

Reputacin: +4/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #10 en: Noviembre 20, 2013, 12:20:01 am


Hola Enter ... te defino a funcin que pides ...
Citar
Private Function Recibir_mensaje(ByVal Tipo As Tipo) As String
Cdigo: Visual Basic
1. Enum Tipo
2.

SMS_NO_LEIDOS

3.

SMS_LEIDOS

4.

SMS_NO_ENVIADOS

5.

SMS_ENVIADOS

6.

SMS_TODOS

7.

End Enum

Cdigo: Visual Basic


1.
2.
3.
4.

Private Function Recibir_mensaje(ByVal Tipo As Tipo)


As String
Try
SerialPort1.Write("ATZ&F" & Chr(13))
SerialPort1.Write("AT+CMGF=1" & Chr(13))
'este comando establece el modo texto

5.
6.
7.

Select Case Tipo


Case Form1.Tipo.SMS_NO_LEIDOS

8.

SerialPort1.Write("AT+CMGL=" &
Chr(34) & "REC UNREAD" & Chr(34) & Chr(13)) 'solo
recibiremos los sms no leidos

9.

Case Form1.Tipo.SMS_LEIDOS

10.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "REC READ" & Chr(34) & Chr(13)) 'solo
recibiremos los sms leidos
11.

Case Form1.Tipo.SMS_NO_ENVIADOS

12.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "STO UNSENT" & Chr(34) & Chr(13)) 'solo
recibiremos los sms no enviados
13.

Case Form1.Tipo.SMS_ENVIADOS

14.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "STO SENT" & Chr(34) & Chr(13)) 'solo
recibiremos los sms enviados
15.

Case Form1.Tipo.SMS_TODOS

16.
SerialPort1.Write("AT+CMGL="
& Chr(34) & "ALL" & Chr(34) & Chr(13)) 'Recibiremos
todos los sms
17.
18.

End Select

19.

Recibir_mensaje = vbOK

20.
21.
22.
23.

Catch ex As Exception
Recibir_mensaje = ex.Message
End Try
End Function

Hola Jernimo
Citar
no s si se necesita un modem especial
Puedes usar cualquier mdem gsm ... (puede que tengas un mdem gsm a mano como

son los mdem claro y movistar que se usan para conectividad de internet o
simplemente tu celular ... con el tema del celular puedes tener algunos inconveniente
dependiendo de la marca y modelo ... )
Y como dice el colega Waldo
Citar
Si, si un simcard comun y silvestre como el de cualquier telefono

Esto tiene muchas aplicaciones. Se puede implementar en Desarrollos en donde


automticamente se enven mensajes individuales o masivos para diferentes
propsitos ....
Publicidades, estados de deudas, etc ...
Pero esto es potenciado con la capacidad de recibir y procesar los mensajes recibidos ...
ya que mediante ellos se puede tener una conversacin automatizada con el emisor ...
ejemplo ... ampliaciones de servicios, seleccin de opciones, cdigos de alertas,etc
Creo que ampliar un poco mas con un ejemplo, consigan un mdem claro, este
tipo mdem trae los driver contenidos en el mismo ... ya estar subiendo un
ejemplo ... salu2 colegas
En lnea
Solo se que no se nada!!!

By Scrates

Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #11 en: Noviembre 20, 2013, 12:50:45 am


Excelente, softmania.
Muchas gracias.

Jernimo
En lnea
softmania

Bytes

Mensajes: 35

Reputacin: +4/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #12 en: Noviembre 20, 2013, 02:04:22 am


Hola nuevamente Colegas ...
Bueno ac les dejo el Link de un ejemplo en vb2010.
Hay una clase que les permitir utilizar un mdem GSM ... y un plus ... que es una
funcin que fue echa a medida del mdem claro, separando la cadena de datos obtenidas
y presentada en el listview ...
http://www.mediafire.com/download/9ijg2kwnpmkbbf8/Modem_SMS.rar
pass: softmania
Salu2 Colegas
En lnea
Solo se que no se nada!!!
Waldo

By Scrates

Megabyte

Mensajes: 195

Reputacin: +17/-0

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #13 en: Noviembre 20, 2013, 09:49:30 am


Gracias por compartir.
Un dato para tener en cuenta que me paso en algunas ocasiones.
Para enviar un sms luego de ingresar el texto del mensaje se termina con un ctrl+z , o
chr 26.
Bueno tenia hecho mi codigo similar al tuyo, y luego del ctrl+z, el modem devolvia
error, no siempre.
Una vez, mientras devolvia error continuamente, pare el programa, abrir un
hyperterminal y ejecute todo a mano, y perfecto sin error, me puse a pensar cual era la
diferencia, y se me ocurrio que al hacerlo a mano, existe un delay entre que termino de
escribir el texto y luego ingreso el ctrl+z, asi que se me ocurrio en mi codigo poner un
delay antes del ctrl+z, y nunca mas fallo.
En lnea
Jeronimo

Gigabyte

Mensajes: 297

Reputacin: +29/-2

Re:ENVIAR Y RECIBIR SMS - MODEM GSM - COMANDOS AT

Respuesta #14 en: Noviembre 20, 2013, 10:13:18 am


Excelente informacin. Gracias a ambos por compartirla.
Voy a ver si me consigo un modem para empezar a probar.
Saludos.
Jernimo
En lnea

Imprimir

Pginas: [1] 2

You might also like