Estoy usando SIM800E . ¿Quiero saber qué comando AT se debe enviar al módem para obtener tiempo? Este módem tiene un RTC. Pero necesito configurarlo automáticamente a través de la torre celular. La torre puede enviar la hora al módem cuando se solicita mediante un comando AT. He visto en muchos teléfonos que el tiempo se actualiza durante las transferencias.
El manual no tiene esta información.
gsm
at-commands
gpuguy
fuente
fuente
Respuestas:
He usado el siguiente comando:
que devuelve la fecha y la hora, como:
exitosamente en productos que usan tres módulos de celdas diferentes: Enfora, Telit y Sierra. El hecho de que use un carácter + después del AT implica que es un comando común (a diferencia del propietario), y debería estar disponible en la mayoría, si no en todos, los módulos de celda. (Los comandos propietarios usan un carácter específico del proveedor después del AT, como AT $, AT%, AT! Etc.)
Como mencioné en un comentario, si no puede obtener el tiempo usando este comando (por ejemplo, devuelve todos los 0), entonces otra forma es conectarse a la red y obtener el tiempo libre de un servidor usando un comando HTTP.
donde somehost es su propio servidor o Google.com, etc. Esto también supone que index.html es la página principal del sitio (no es el caso de Google).
Devolverá un encabezado como:
Hasta donde yo sé, todos los servidores están obligados a devolver el tiempo GMT en sus encabezados.
fuente
HEAD / HTTP/1.0\r\nHost: example.com\r\n\r\n
que creo que/
es menos propenso a los 404 y que HTTP 1.0 representa mejor nuestra ignorancia (en cuanto a dispositivos) de HTTP. Además, el punto y coma parece un error tipográfico. Aparte de eso, la fecha es GMT / UTC por especificación ( ver también ).Primero que nada, NITZ es pobremente soportado en muchas redes (puede decir COST-CUTTING). No confiaría en él en absoluto, ya que 1 de cada 10 redes lo usa, especialmente en lugares remotos.
En segundo lugar, el comando + CCLK es para el RTC interno del módem. Algunos módems tienen facilidades para actualizar este reloj desde la red. Confiar en esto es arriesgado.
La solicitud HTTP anterior está incompleta, es decir, no funciona. Solía saber cómo hacer esto, así que volveré cuando funcione.
Esto no es enteramente verdad. Hay comandos de módem patentados que siguen la convención AT +. Por ejemplo, AT + WOPEN es un comando propietario de Sierra.
Hay un cierto conjunto de comandos que son iguales independientemente del módem. Estos se definen en los documentos 3GPP. Los comandos propietarios generalmente se definen en los manuales de usuario del proveedor y se marcan claramente como propietarios.
fuente
AT + CLTS = 1 (Obtener sello de hora local) AT&W (Guardar configuración)
Apague el módem y encienda el módem (reinicie para obtener la hora local desde la red)
La próxima vez que se inicie el módem, debería poder obtener la hora local por red y se puede leer enviando
AT + CCLK?
Esto funcionó para mí, estoy usando el módem GSM SIM800, lea las descripciones de los comandos AT para obtener más información
fuente
Masilla:
Funciona perfectamente, después de eso, debe analizar el resultado y colocarlo en clk porque esto no sucede automáticamente. (al menos en mi Cinterion)
fuente
Utilice el comando AT + CIPGSMLOC. Funciona bien en módulos SIMCOM.
Este comando necesita el servicio GPRS adjunto antes de usarlo. Entonces, primero conecte el servicio GPRS usando la secuencia de comandos apropiada y luego use este comando para obtener la fecha y hora de la red GSM.
Para adjuntar el servicio GPRS:
CMD:AT+CGATT=1 CMD:AT+SAPBR=3,1,"Contype","GPRS" CMD:AT+SAPBR=3,1,"APN","" CMD:AT+SAPBR=3,1,"USER","" CMD:AT+SAPBR=3,1,"PWD","" CMD:AT+SAPBR=1,1 CMD:AT+SAPBR=2,1 /* to confirm that GPRS is attached. will show IP if attached */
Luego use el comando de ubicación GSM:
AT+CIPGSMLOC=1,1
Este comando necesita un tiempo considerable (unos segundos) para obtener la información de la red, por lo que debe agotar el tiempo de espera de la función de ejecución del comando.
Este comando también devuelve la ubicación BTS a la que está conectado el módulo. Por lo tanto, también puede obtener una ubicación más o menos precisa del módulo GSM.
Consulte este manual para obtener más información: (funciona de la misma manera para SIM800)
SIM900_GSM Location AT Command Manual_V1.00
También tenga en cuenta que el comando AT + CLBS no es el mismo que este comando. Es posible que no funcione en algunas regiones. (¡No he podido usarlo!). Pero el AT + CIPGSMLOC siempre funciona.
fuente
+CIPGSMLOC: 302<\r><\n>
respuestaNITZ como lo señala RedGrittyBrick es la respuesta. Sin embargo, este es un mensaje que solo envía la red, generalmente al unirse a la red. Algunas compañías lo envían, otras no. No hay una forma estándar de solicitarlo.
fuente
Aquí está la secuencia de comandos AT para obtener el tiempo de la red celular. Funcionó en mi módulo GSM UBLOX LEON G-200 .
fuente
primero envíe estos dos comandos
AT + CLTS = 1; & W
AT + CFUN = 1,1 y que AT + CLTS? compruebe si obtiene esta respuesta + clts: 1
y luego envíe este comando AT + CCLK?
fuente
{}
botón en la barra de herramientas del editor para bloques de código como en las otras respuestas. Esto le dará un fondo gris y una fuente de ancho fijo, lo que facilitará ver dónde comienza y termina su código.He usado con éxito NITZ durante la inicialización, y CCLK cuando quiero leer el RTC interno. SIN EMBARGO, puede tomar uno o dos minutos antes de que el módem RTC se configure desde la red. Vale la pena mantener una bandera para indicar si el tiempo es realmente válido.
fuente
Desarrollé un firmware para un U-Blox LTE. ¿Allí usé el AT + CCLK? para obtener la hora local actual del módem.
Da un tiempo en el siguiente formato. No es que sea un comando sincronizado.
Entonces, el siguiente comando AT se envió antes del registro, para sincronizar la hora con la red
Entonces mi secuencia de comando es:
Lógica adicional para garantizar que tenga la hora correcta:
Nota: NITZ es compatible en un conjunto limitado de países todavía ( https://en.wikipedia.org/wiki/NITZ )
Por lo tanto, es mejor tener una forma de actualizar el tiempo de respaldo si no es compatible en ese país.
En mi caso tenemos un módulo GPS, así que obtengo actualizaciones de tiempo a través de datos GNSS.
Además, lo que no es relevante aquí, pero se consideró útil para la sincronización horaria.
fuente