J'utilise SIM800E . Je veux savoir quelle commande AT doit être envoyée au modem pour obtenir l'heure? Ce modem a un RTC. Mais je dois le régler automatiquement via la tour cellulaire. La tour peut envoyer l'heure au modem sur demande à l'aide d'une commande AT. J'ai vu dans de nombreux téléphones que l'heure est mise à jour lors des transferts.
Le manuel ne contient pas ces informations.
gsm
at-commands
gpuguy
la source
la source
Réponses:
J'ai utilisé la commande suivante:
qui renvoie la date et l'heure, comme:
avec succès dans des produits utilisant trois modules cellulaires différents: Enfora, Telit et Sierra. Le fait qu'il utilise un caractère + après l'AT implique qu'il s'agit d'une commande commune (par opposition à propriétaire), et devrait être disponible sur la plupart sinon tous les modules de cellule. (Les commandes propriétaires utilisent un caractère spécifique au vendeur après l'AT, comme AT $, AT%, AT! Etc.)
Comme je l'ai mentionné dans un commentaire, si vous ne pouvez pas obtenir l'heure en utilisant cette commande (par exemple, elle renvoie tous les 0), alors une autre façon consiste à se connecter au réseau et à obtenir le temps d'un serveur à l'aide d'une commande HTTP.
où somehost est votre propre serveur ou Google.com etc. Cela suppose également que index.html est la page principale du site (pas le cas pour Google).
Il renverra un en-tête comme:
Pour autant que je sache, tous les serveurs sont obligés de renvoyer l'heure GMT dans leurs en-têtes.
la source
HEAD / HTTP/1.0\r\nHost: example.com\r\n\r\n
je pense qu'elle/
est moins sujette aux 404 et que HTTP 1.0 représente mieux notre ignorance (par périphérique) de HTTP. En outre, le point-virgule ressemble à une faute de frappe. En dehors de cela, la date est GMT / UTC par spécification ( voir aussi ).Tout d'abord, NITZ est mal pris en charge dans de nombreux réseaux (pouvez-vous dire COUPE-COUT). Je ne m'y fierais pas du tout, car 1 réseau sur 10 l'utilise, en particulier dans des endroits éloignés.
Deuxièmement, la commande + CCLK concerne le RTC interne du modem. Certains modems ont des installations pour mettre à jour cette horloge à partir du réseau. S'appuyer sur cela est risqué.
La demande HTTP ci-dessus est incomplète, c'est-à-dire qu'elle ne fonctionne pas. J'avais l'habitude de savoir comment faire, donc je reviendrai quand cela fonctionnera.
Ce n'est pas tout à fait vrai. Il existe des commandes de modem propriétaires qui suivent la convention AT +. Par exemple AT + WOPEN est une commande propriétaire de Sierra.
Il existe un certain ensemble de commandes identiques, quel que soit le modem. Celles-ci sont définies dans les documents 3GPP. Les commandes propriétaires sont généralement définies dans les manuels d'utilisation du fournisseur et clairement marquées comme étant propriétaires.
la source
AT + CLTS = 1 (Obtenir l'horodatage local) AT&W (Enregistrer la configuration)
Éteignez le modem et allumez le modem (redémarrez pour obtenir l'heure locale du réseau)
La prochaine fois que le modem démarrera, vous devriez pouvoir obtenir l'heure locale par le réseau et pouvoir être lu par l'envoi
AT + CCLK?
Cela a fonctionné pour moi im en utilisant le modem GSM SIM800 lire les descriptions des commandes AT pour plus d'informations
la source
Mastic:
Fonctionne parfaitement, après cela, vous devez analyser le résultat et le placer dans clk car cela ne se produit pas automatiquement. (au moins dans mon Cinterion)
la source
Utilisez la commande AT + CIPGSMLOC. Cela fonctionne bien dans les modules SIMCOM.
Cette commande a besoin du service GPRS attaché avant de l'utiliser. Attachez donc d'abord le service GPRS à l'aide de la séquence de commandes appropriée, puis utilisez cette commande pour obtenir la date et l'heure à partir du réseau GSM.
Pour attacher le service 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 */
Utilisez ensuite la commande Emplacement GSM:
AT+CIPGSMLOC=1,1
Cette commande a besoin d'un temps considérable (quelques secondes) pour obtenir les informations du réseau, donc donnez à la fonction d'exécution de la commande un délai d'expiration approprié.
Cette commande renvoie également l'emplacement BTS auquel le module est connecté. Ainsi, vous pouvez également obtenir un emplacement à peu près précis du module GSM.
Reportez-vous à ce manuel pour plus d'informations: (fonctionne de la même manière pour SIM800)
SIM900_GSM Location AT Command Manual_V1.00
Notez également que la commande AT + CLBS n'est pas la même que cette commande. Cela peut ne pas fonctionner dans certaines régions. (Je n'ai pas pu l'utiliser!). Mais l'AT + CIPGSMLOC fonctionne toujours.
la source
+CIPGSMLOC: 302<\r><\n>
en réponseNITZ comme l'a souligné RedGrittyBrick est la réponse. Cependant, il s'agit d'un message envoyé uniquement par le réseau, généralement lors de l'adhésion au réseau. Certains transporteurs l'envoient, d'autres non. Il n'y a aucun moyen standard de le demander.
la source
Voici la séquence de commandes AT pour obtenir l'heure du réseau cellulaire. Cela a fonctionné dans mon module GSM UBLOX LEON G-200 .
la source
envoyer d'abord ces deux commandes
AT + CLTS = 1; & W
AT + CFUN = 1,1 et que AT + ATPC? vérifier si vous obtenez cette réponse + clts: 1
et ensuite envoyer cette commande AT + CCLK?
la source
{}
bouton sur la barre d'outils de l'éditeur pour les blocs de code comme dans les autres réponses. Cela donnera un arrière-plan gris et une police à largeur fixe, ce qui vous permettra de voir facilement où commence et se termine votre code.J'ai utilisé avec succès NITZ pendant l'initialisation et CCLK lorsque je veux lire le RTC interne. TOUTEFOIS, cela peut prendre une minute ou deux avant que le RTC du modem soit défini à partir du réseau. Il vaut la peine de maintenir un drapeau pour indiquer si l'heure est effectivement valide.
la source
J'ai développé un firmware pour un U-Blox LTE. Là, j'ai utilisé l'AT + CCLK? pour obtenir l'heure locale actuelle du modem.
Il donne une heure au format suivant. Non pas que ce soit une commande synchronisée.
Ainsi, la commande AT suivante a été envoyée avant l'enregistrement, pour synchroniser l'heure avec le réseau
Donc, ma séquence de commandes est:
Logique supplémentaire pour garantir l'heure exacte:
Remarque: NITZ est encore pris en charge dans un nombre limité de pays ( https://en.wikipedia.org/wiki/NITZ )
Il est donc préférable d'avoir un moyen de sauvegarde de la mise à jour du temps s'il n'est pas pris en charge dans ce pays.
Dans mon cas, nous avons un module GPS, donc j'obtiens des mises à jour de l'heure via les données GNSS.
De plus, ce qui n'est pas pertinent ici, mais jugé utile pour la synchronisation de l'heure.
la source