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 dengan ID unik yang Anda gunakan untuk mengidentifikasi perangkat Anda. Kami menyarankan Anda menentukancustomer_device_idWirelessDeviceId, seperti untuk perangkat LoRa WAN dan Sidewalk, dan, jika perangkat Anda terdaftar sebagai AWS IoT sesuatu. Anda kemudian menambahkan topik dengan stub topik, seperti thingNameget_position_estimate atau get_position_estimate/accepted seperti yang ditunjukkan pada bagian berikut.
catatan
Hanya 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 {customer_device_id}+ wildcard untuk mendapatkan informasi lokasi untuk perangkat Anda. Saat Anda berlangganan topik{customer_device_id}$aws/device_location/, pesan akan dipublikasikan dengan informasi lokasi untuk perangkat yang cocok dengan ID perangkat apa pun jika berhasil diselesaikan.+/get_position_estimate/accepted
Berikut ini adalah topik yang dicadangkan yang digunakan untuk berinteraksi dengan Lokasi AWS IoT Core Perangkat.
| Topik | Operasi yang diizinkan | Deskripsi |
|---|---|---|
|
$ |
Publikasikan |
Perangkat menerbitkan topik ini untuk mendapatkan data pengukuran mentah yang dipindai untuk diselesaikan oleh Lokasi AWS IoT Core Perangkat. |
|
$aws/device_location/ |
Langganan |
AWS IoT Core Lokasi Perangkat menerbitkan informasi lokasi ke topik ini ketika berhasil menyelesaikan lokasi perangkat. |
|
$aws/device_location/ |
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 keget_position_estimate/rejectedtopikget_position_estimate/acceptedatau 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/
$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" ] } ] }