View a markdown version of this page

Menyelesaikan lokasi perangkat menggunakan AWS IoT Core Topik MQTT Lokasi Perangkat - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyelesaikan lokasi perangkat menggunakan AWS IoT Core Topik MQTT Lokasi Perangkat

Anda dapat menggunakan topik MQTT yang dipesan untuk mendapatkan informasi lokasi terbaru untuk perangkat Anda dengan fitur Lokasi AWS IoT Core Perangkat.

Format topik MQTT lokasi perangkat

Topik yang dic AWS IoT Core adangkan untuk Lokasi Perangkat menggunakan awalan berikut:

$aws/device_location/{customer_device_id}/

Untuk membuat topik lengkap, pertama-tama ganti customer_device_id dengan ID unik yang Anda gunakan untuk mengidentifikasi perangkat Anda. Kami menyarankan Anda menentukanWirelessDeviceId, seperti untuk perangkat LoRa WAN dan Sidewalk, danthingName, jika perangkat Anda terdaftar sebagai AWS IoT sesuatu. Anda kemudian menambahkan topik dengan stub topik, seperti get_position_estimate atau get_position_estimate/accepted seperti yang ditunjukkan pada bagian berikut.

catatan

Hanya {customer_device_id} dapat berisi huruf, angka, dan tanda hubung. Saat berlangganan topik lokasi perangkat, Anda hanya dapat menggunakan tanda plus (+) sebagai karakter wildcard. Misalnya, Anda dapat menggunakan + wildcard {customer_device_id} untuk mendapatkan informasi lokasi untuk perangkat Anda. Saat Anda berlangganan topik$aws/device_location/+/get_position_estimate/accepted, pesan akan dipublikasikan dengan informasi lokasi untuk perangkat yang cocok dengan ID perangkat apa pun jika berhasil diselesaikan.

Berikut ini adalah topik yang dicadangkan yang digunakan untuk berinteraksi dengan Lokasi AWS IoT Core Perangkat.

Topik MQTT lokasi perangkat
Topik Operasi yang diizinkan Deskripsi

$customer_device_id/aws/device_location/dapatkan_posisi_estimasi

Publikasikan

Perangkat menerbitkan topik ini untuk mendapatkan data pengukuran mentah yang dipindai untuk diselesaikan oleh Lokasi AWS IoT Core Perangkat.

$aws/device_location/customer_device_id/get_position_estimate/accepted

Langganan

AWS IoT Core Lokasi Perangkat menerbitkan informasi lokasi ke topik ini ketika berhasil menyelesaikan lokasi perangkat.

$aws/device_location/customer_device_id/get_position_estimate/rejected

Langganan

AWS IoT Core Lokasi Perangkat menerbitkan informasi kesalahan ke topik ini ketika gagal menyelesaikan lokasi perangkat.

Kebijakan untuk topik MQTT lokasi perangkat

Untuk menerima pesan dari topik lokasi perangkat, perangkat Anda harus menggunakan kebijakan yang memungkinkannya terhubung ke gateway AWS IoT perangkat dan berlangganan topik MQTT.

Berikut ini adalah contoh kebijakan yang diperlukan untuk menerima pesan untuk berbagai topik.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted", "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected" ] } ] }

Topik lokasi perangkat dan muatan

Berikut ini menunjukkan topik Lokasi AWS IoT Core Perangkat, format payload pesan mereka, dan contoh kebijakan untuk setiap topik.

/dapatkan_posisi_estimasi

Publikasikan pesan ke topik ini untuk mendapatkan data pengukuran mentah dari perangkat untuk diselesaikan oleh Lokasi AWS IoT Core Perangkat.

$aws/device_location/customer_device_id/get_position_estimate

AWS IoT Core Lokasi Perangkat merespons dengan menerbitkan salah /get_position_estimate/accepted satu atau/get_position_estimate/rejected.

catatan

Pesan yang dipublikasikan ke topik ini harus berupa muatan JSON yang valid. Jika pesan input tidak dalam format JSON yang valid, Anda tidak akan mendapatkan respons apa pun. Untuk informasi selengkapnya, lihat Payload Payload pesan pesan.

Format payload pesan mengikuti struktur yang mirip dengan badan permintaan operasi API Nir AWS IoT kabel, GetPositionEstimate. Ini berisi:

  • TimestampString opsional, yang sesuai dengan tanggal dan waktu lokasi diselesaikan. TimestampString dapat memiliki panjang minimum 1 dan panjang maksimum 10.

  • MessageIdString opsional, yang dapat digunakan untuk memetakan permintaan ke respons. Jika Anda menentukan string ini, pesan yang diterbitkan ke get_position_estimate/rejected topik get_position_estimate/accepted atau akan berisi iniMessageId. MessageIDString dapat memiliki panjang minimum 1 dan panjang maksimum 256.

  • Data pengukuran dari perangkat yang berisi satu atau lebih jenis pengukuran berikut:

Berikut ini menunjukkan contoh payload pesan.

{ "Timestamp": "1664313161", "MessageId": "ABCD1", "WiFiAccessPoints": [ { "MacAddress": "A0:EC:F9:1E:32:C1", "Rss": -66 } ], "Ip":{ "IpAddress": "54.192.168.0" }, "Gnss":{ "Payload":"8295A614A2029517F4F77C0A7823B161A6FC57E25183D96535E3689783F6CA48", "CaptureTime":1354393948 } }

Berikut ini adalah contoh kebijakan yang diperlukan:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate" ] } ] }

/get_position_estimate/accepted

AWS IoT Core Lokasi Perangkat menerbitkan respons terhadap topik ini saat mengembalikan informasi lokasi yang diselesaikan untuk perangkat Anda. Informasi lokasi dikembalikan dalam format https://geojson.org/ GeoJSON.

$aws/device_location/customer_device_id/get_position_estimate/accepted

Berikut ini menunjukkan payload pesan dan contoh kebijakan.

Berikut ini adalah contoh payload pesan dalam format GeoJSON. Jika Anda menentukan a MessageId dalam data pengukuran mentah dan Lokasi AWS IoT Core Perangkat berhasil menyelesaikan informasi lokasi, maka payload pesan mengembalikan MessageId informasi yang sama.

{ "coordinates": [ 13.37704086303711, 52.51865005493164 ], "type": "Point", "properties": { "verticalAccuracy": 707, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 389, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T14:03:57.391Z", "messageId": "ABCD1" } }

Berikut ini adalah contoh kebijakan yang diperlukan:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted" ] } ] }

/get_position_estimate/rejected

AWS IoT Core Lokasi Perangkat menerbitkan respons kesalahan untuk topik ini ketika gagal menyelesaikan lokasi perangkat.

$aws/device_location/customer_device_id/get_position_estimate/rejected

Berikut ini menunjukkan payload pesan dan contoh kebijakan. Untuk informasi tentang kesalahan, lihatMemecahkan masalah kesalahan saat menyelesaikan lokasi.

Berikut ini adalah contoh payload pesan yang menyediakan kode kesalahan dan pesan, yang menunjukkan mengapa Lokasi AWS IoT Core Perangkat gagal menyelesaikan informasi lokasi. Jika Anda menentukan MessageId saat memberikan data pengukuran mentah dan Lokasi AWS IoT Core Perangkat gagal menyelesaikan informasi lokasi, maka informasi yang sama MessageId akan dikembalikan dalam payload pesan.

{ "errorCode": 500, "errorMessage":"Internal server error", "messageId": "ABCD1" }

Berikut ini adalah contoh kebijakan yang diperlukan:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected" ] } ] }