Solveurs de localisation et charge utile de l'appareil - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Solveurs de localisation et charge utile de l'appareil

Les solveurs de localisation sont des algorithmes qui peuvent être utilisés pour déterminer la position de vos appareils IoT. AWS IoT Core Device Location prend en charge les solveurs de localisation suivants. Vous verrez des exemples du format de charge utile JSON pour ces types de mesures, les appareils pris en charge par le solveur et la manière dont la localisation est résolue.

Pour déterminer l'emplacement de l'appareil, spécifiez un ou plusieurs de ces types de données de mesure. Une position unique et résolue sera renvoyée pour toutes les données de mesure combinées.

Solveur basé sur le Wi-Fi

Utilisez le solveur basé sur le Wi-Fi pour déterminer la position à l'aide des informations de numérisation provenant des points d'accès Wi-Fi. Le solveur prend en charge la technologie WLAN et peut être utilisé pour calculer l'emplacement des appareils IoT généraux et des appareils sans fil LoRa WAN.

Les appareils LoRa WAN doivent être équipés du chipset LoRa Edge, qui peut décoder les informations de numérisation Wi-Fi entrantes. LoRa Edge est une plate-forme à très faible consommation qui intègre un LoRa émetteur-récepteur longue portée, un scanner GNSS multi-constellations et un scanner MAC Wi-Fi passif ciblant les applications de géolocalisation. Lorsqu'un message de liaison montante est reçu de l'appareil, les données de numérisation Wi-Fi sont envoyées à l'emplacement de l' AWS IoT Core appareil, et l'emplacement est estimé sur la base des résultats du scan Wi-Fi. Les informations décodées sont ensuite transmises au solveur basé sur le Wi-Fi pour récupérer les informations de localisation.

Le code suivant montre un exemple de la charge utile JSON provenant de l'appareil qui contient les données de mesure. Lorsque AWS IoT Core Device Location reçoit ces données en entrée, il envoie une requête HTTP au fournisseur du solveur pour résoudre les informations de localisation. Pour récupérer les informations, spécifiez les valeurs de l'adresse MAC et du flux RSS (intensité du signal reçu). Pour ce faire, fournissez la charge utile JSON en utilisant ce format ou utilisez le paramètre WiFiAccessPointsobject de l'opération d'GetPositionEstimateAPI.

{ "Timestamp": 1664313161, // optional "WiFiAccessPoints": [ { "MacAddress": "A0:EC:F9:1E:32:C1", // required "Rss": -75 // required } ] }

Solveur cellulaire

Vous pouvez utiliser le solveur cellulaire pour déterminer l'emplacement à l'aide des données de mesure obtenues à partir des pylônes de téléphonie cellulaire. Le solveur prend en charge les technologies suivantes. Une seule information de localisation résolue est obtenue, même si vous incluez des données de mesure issues de l'une ou de l'ensemble de ces technologies.

  • GSM

  • CDMA

  • WCDMA

  • TD-SCDMA

  • LTE

Exemples de charge utile d'un solveur cellulaire

Le code suivant montre des exemples de charge utile JSON de l'appareil qui contient des données de mesure cellulaire. Lorsque AWS IoT Core Device Location reçoit ces données en entrée, il envoie une requête HTTP au fournisseur du solveur pour résoudre les informations de localisation. Pour récupérer les informations, vous devez soit fournir la charge utile JSON en utilisant ce format dans la console, soit spécifier des valeurs pour le CellTowersparamètre de l'opération d'GetPositionEstimateAPI. Vous pouvez fournir les données de mesure en spécifiant les valeurs des paramètres à l'aide de l'une ou de l'ensemble de ces technologies cellulaires.

Lorsque vous utilisez ces données de mesure, vous devez spécifier des informations telles que le réseau et le code du pays du réseau mobile, ainsi que des paramètres supplémentaires facultatifs, notamment des informations sur l'identifiant local. Le code suivant montre un exemple du format de charge utile. Pour plus d'informations sur ces paramètres, consultez LTE object. (Objet LTE)

{ "Timestamp": 1664313161, // optional "CellTowers": { "Lte": [ { "Mcc": int, // required "Mnc": int, // required "EutranCid": int, // required. Make sure that you use int for EutranCid. "Tac": int, // optional "LteLocalId": { // optional "Pci": int, // required "Earfcn": int, // required }, "LteTimingAdvance": int, // optional "Rsrp": int, // optional "Rsrq": float, // optional "NrCapable": boolean, // optional "LteNmr": [ // optional { "Pci": int, // required "Earfcn": int, // required "EutranCid": int, // required "Rsrp": int, // optional "Rsrq": float // optional } ] } ] } }

Lorsque vous utilisez ces données de mesure, vous devez spécifier des informations telles que le réseau et le code pays du réseau mobile, les informations de la station de base et des paramètres supplémentaires facultatifs. Le code suivant montre un exemple du format de charge utile. Pour plus d'informations sur ces paramètres, consultez GSM object. (Objet GSM)

{ "Timestamp": 1664313161, // optional "CellTowers": { "Gsm": [ { "Mcc": int, // required "Mnc": int, // required "Lac": int, // required "GeranCid": int, // required "GsmLocalId": { // optional "Bsic": int, // required "Bcch": int, // required }, "GsmTimingAdvance": int, // optional "RxLevel": int, // optional "GsmNmr": [ // optional { "Bsic": int, // required "Bcch": int, // required "RxLevel": int, // optional "GlobalIdentity": { "Lac": int, // required "GeranCid": int // required } } ] } ] }

Lorsque vous utilisez ces données de mesure, vous devez spécifier des informations telles que la puissance du signal et les informations d'identification, les informations de la station de base et des paramètres supplémentaires facultatifs. Le code suivant montre un exemple du format de charge utile. Pour plus d'informations sur ces paramètres, consultez CDMA object. (Objet CDMA)

{ "Timestamp": 1664313161, // optional "CellTowers": { "Cdma": [ { "SystemId": int, // required "NetworkId": int, // required "BaseStationId": int, // required "RegistrationZone": int, // optional "CdmaLocalId": { // optional "PnOffset": int, // required "CdmaChannel": int, // required }, "PilotPower": int, // optional "BaseLat": float, // optional "BaseLng": float, // optional "CdmaNmr": [ // optional { "PnOffset": int, // required "CdmaChannel": int, // required "PilotPower": int, // optional "BaseStationId": int // optional } ] } ] } }

Lorsque vous utilisez ces données de mesure, vous devez spécifier des informations telles que le code du réseau et du pays, la puissance du signal et les informations d'identification, les informations de la station de base et des paramètres supplémentaires facultatifs. Le code suivant montre un exemple du format de charge utile. Pour plus d'informations sur ces paramètres, consultez CDMA object. (Objet CDMA)

{ "Timestamp": 1664313161, // optional "CellTowers": { "Wcdma": [ { "Mcc": int, // required "Mnc": int, // required "UtranCid": int, // required "Lac": int, // optional "WcdmaLocalId": { // optional "Uarfcndl": int, // required "Psc": int, // required }, "Rscp": int, // optional "Pathloss": int, // optional "WcdmaNmr": [ // optional { "Uarfcndl": int, // required "Psc": int, // required "UtranCid": int, // required "Rscp": int, // optional "Pathloss": int, // optional } ] } ] } }

Lorsque vous utilisez ces données de mesure, vous devez spécifier des informations telles que le code du réseau et du pays, la puissance du signal et les informations d'identification, les informations de la station de base et des paramètres supplémentaires facultatifs. Le code suivant montre un exemple du format de charge utile. Pour plus d'informations sur ces paramètres, consultez CDMA object. (Objet CDMA)

{ "Timestamp": 1664313161, // optional "CellTowers": { "Tdscdma": [ { "Mcc": int, // required "Mnc": int, // required "UtranCid": int, // required "Lac": int, // optional "TdscdmaLocalId": { // optional "Uarfcn": int, // required "CellParams": int, // required }, "TdscdmaTimingAdvance": int, // optional "Rscp": int, // optional "Pathloss": int, // optional "TdscdmaNmr": [ // optional { "Uarfcn": int, // required "CellParams": int, // required "UtranCid": int, // optional "Rscp": int, // optional "Pathloss": int, // optional } ] } ] } }

Solveur de recherche inversée IP

Vous pouvez utiliser le solveur de recherche inversée IP pour déterminer l'emplacement en utilisant l'adresse IP comme entrée. Le solveur peut obtenir les informations de localisation à partir des appareils qui ont été approvisionnés. AWS IoT Spécifiez les informations d'adresse IP en utilisant un format qui est soit le modèle standard IPv4 ou IPv6, soit le modèle compressé hexadécimal IPv6. Vous obtenez ensuite l'estimation de localisation résolue, y compris des informations supplémentaires telles que la ville et le pays où se trouve l'appareil.

Note

En utilisant la recherche inversée d'adresse IP, vous acceptez de ne pas l'utiliser dans le but d'identifier ou de localiser une adresse résidentielle ou municipale spécifique.

Le code suivant montre un exemple de la charge utile JSON provenant de l'appareil qui contient les données de mesure. Lorsque AWS IoT Core Device Location reçoit les informations d'adresse IP contenues dans les données de mesure, il recherche ces informations dans la base de données du fournisseur du solveur, qui est ensuite utilisée pour résoudre les informations de localisation. Pour récupérer les informations, fournissez la charge utile JSON en utilisant ce format ou spécifiez des valeurs pour le paramètre Ip de l'opération d'GetPositionEstimateAPI.

Note

Lorsque ce solveur est utilisé, la ville, l'État, le pays et le code postal où se trouve l'appareil sont également indiqués en plus des coordonnées. Pour obtenir un exemple, consultez Résolution de la localisation de l'appareil (console).

{ "Timestamp": 1664313161, "Ip":{ "IpAddress":"54.240.198.35" } }

solveur GNSS

Utilisez le solveur GNSS (Global Navigation Satellite System) pour récupérer l'emplacement de l'appareil à l'aide des informations contenues dans les messages de résultats du scan GNSS ou les messages NAV. Vous pouvez éventuellement fournir des informations d'assistance GNSS supplémentaires, ce qui réduit le nombre de variables que le solveur doit utiliser pour rechercher des signaux. En fournissant ces informations d'assistance, qui incluent la position, l'altitude, le temps de capture et les informations de précision, le solveur peut facilement identifier les satellites en vue et calculer la position de l'appareil.

Ce solveur peut être utilisé avec des périphériques LoRa WAN et d'autres appareils qui ont été approvisionnés avec. AWS IoT Pour les appareils IoT généraux, si les appareils prennent en charge l'estimation de position à l'aide du GNSS, lorsque les informations de numérisation GNSS sont reçues de l'appareil, les émetteurs-récepteurs résolvent les informations de localisation. Pour les appareils LoRa WAN, ils doivent être équipés du chipset LoRa Edge. Lorsqu'un message en liaison montante est reçu du dispositif, les données de numérisation GNSS sont envoyées à AWS IoT Core for LoRaWAN, et l'emplacement est estimé sur la base des résultats de numérisation provenant des émetteurs-récepteurs.

Le code suivant montre un exemple de la charge utile JSON provenant de l'appareil qui contient les données de mesure. Lorsque AWS IoT Core Device Location reçoit les informations de numérisation GNSS contenant la charge utile contenue dans les données de mesure, il utilise les émetteurs-récepteurs et toute information d'assistance supplémentaire incluse pour rechercher des signaux et résoudre les informations de localisation. Pour récupérer les informations, fournissez la charge utile JSON en utilisant ce format ou spécifiez des valeurs pour le paramètre Gnss de l'opération d'GetPositionEstimateAPI.

Note

Avant que AWS IoT Core l'emplacement du périphérique puisse résoudre l'emplacement du périphérique, vous devez supprimer l'octet de destination de la charge utile.

{ "Timestamp": 1664313161, // optional "Gnss": { "AssistAltitude": number, // optional "AssistPosition": [ number ], // optional "CaptureTime": number, // optional "CaptureTimeAccuracy": number, // optional "Payload": "string", // required "Use2DSolver": boolean // optional } }