¿Cómo estar seguro de que el módem SIM900 siempre me dará + PSSUTTZ string?

0

Estoy utilizando el módem SIM 900 para habilitar la conexión GSM con mi producto. El microcontrolador se comunica con el módem SIM900 a través de los comandos SET AT a través de UART. Mi producto es crítico en el tiempo y debo actualizarlo incluso después de un corte de energía. Para lograr esto, estoy usando RTC incorporado del módem SIM900. Después de cada encendido, envío la siguiente secuencia al módem:

  • AT + CFUN = 0
  • AT + CFUN = 1

Después de esto, se supone que debo obtener la cadena + PSUTTZ del módem que tiene la marca de tiempo e indicó que el módem ha sincronizado su tiempo con la red. Después de esto, ¿envío AT + CCLK? ordena periódicamente al módem que lea su RTC.

El problema es que a veces recibo la cadena + PSUTTZ del módem con algunos proveedores de servicios. Con el proveedor de servicios BSNL (en India) nunca pude obtener esta cadena.

¿Alguien tiene una idea de cómo asegurarse de que + PSUTTZ siempre reciba sin falta? (¿Pueden ser algunos comandos AT diferentes o algo así?)

    
pregunta Vagish

4 respuestas

2

Una forma de obtener la hora actual es enviándose un mensaje a sí mismo. A continuación se muestra un ejemplo:

AT + CMGF = 1
AT + CSCS="GSM"
AT + CMGS="0123456789" su número de teléfono
ESTE ES TEST mensaje de prueba
...
...
+ CMTI: "SM", 1 recibió un mensaje en el índice: 1
...
...
AT + CMGR = 1
+ CMGR: "REC UNREAD", "0123456789", "", "14/11 / 15,15: 03: 13 + 22" tiene la hora actual
ESTE ES PRUEBA

Sincroniza tu SIM900 con la hora actual por
AT + CCLK = "14/11 / 15,15: 06: 45 + 22"

Para los comandos, consulte la hoja de datos.

    
respondido por el anishkumar
1

Lo investigué hace un tiempo; solo recibe el mensaje si su proveedor de red elige enviarlo, y muchos no lo hacen.

La única manera de calcular el tiempo es usar la conexión de datos para buscar el tiempo en un servidor de tiempo, y esto es mucho más complicado que un comando AT.

    
respondido por el pjc50
0

He estado viendo esto en los últimos días.

Lo que he podido hacer es leer la hora en una serie de cadenas, año, mes, día, hora, minuto y segundos. También tengo uno llamado Nu para la zona horaria pero no lo uso.

No es perfecto en este momento, pero es lo mejor que he logrado hasta ahora.

No tengo el código a mano pero es básicamente

Envía el comando at + cclk? \ r al sim900 (la mayúscula no parece funcionar)

Luego lea los datos en serie en las cadenas usando el comando parseInt en un bucle while.

Recibo dos buenas lecturas, una demora y luego obtengo todos los 0, esto continúa. Aún no he logrado resolver lo que está sucediendo, pero es lo más cerca que he estado en mucho tiempo.

    
respondido por el Sydknee
0

Como han mencionado otros, +PSUTTZ viene a opción de la red. Otra opción para obtener la hora actual es a través del comando Ubicación y hora de GSM AT+CIPGSMLOC . Necesitará configurar una conexión GPRS, pero no estoy seguro de que utilice datos.

AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","your.apn.net"

OK
AT+SAPBR=1,1

OK
AT+SAPBR=2,1

+SAPBR: 1,1,"12.345.67.890"

OK
AT+CIPGSMLOC=2,1

+CIPGSMLOC: 0,2018/03/07,22:37:09

OK

Esto devuelve la hora UTC en la torre a la que está conectado. Hay algo más de información en la página 5 de SIM900_GSM Ubicación AT Command Manual

    
respondido por el skot9000

Lea otras preguntas en las etiquetas