Tutorial sulle nozioni di base - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial sulle nozioni di base

Questo tutorial illustra come utilizzare l'indicizzazione del parco veicoli per indicizzare i dati sulla posizione. Per semplicità, crei un oggetto per rappresentare il tuo dispositivo e memorizzi i dati sulla posizione in un'ombra denominata, aggiorni la configurazione di indicizzazione degli oggetti per l'indicizzazione della posizione ed esegui geoquery di esempio per cercare dispositivi all'interno di un confine radiale.

Questo tutorial dura circa 15 minuti.

Prerequisiti

Crea cose e ombre

Crei un oggetto per rappresentare il tuo dispositivo e un'ombra denominata per memorizzarne i dati sulla posizione (coordinate 47.61564, -122.33584).

  1. Esegui il seguente comando per creare l'oggetto che rappresenta la tua bici chiamato Bike-1. Per ulteriori informazioni su come creare un oggetto utilizzando AWS CLI, vedi create-thing from Reference. AWS CLI

    aws iot create-thing --thing-name "Bike-1" \ --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'

    L'output di questo comando può essere simile al seguente:

    { "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" }
  2. Esegui il comando seguente per creare un'ombra con nome per memorizzare i dati sulla posizione di Bike-1 (coordinate 47.61564, -122.33584). Per ulteriori informazioni su come creare un'ombra con nome utilizzando, vedere da Reference. AWS CLIupdate-thing-shadowAWS CLI

    aws iot-data update-thing-shadow \ --thing-name Bike-1 \ --shadow-name Bike1-shadow \ --cli-binary-format raw-in-base64-out \ --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \ "output.txt" \

    Il comando non produce output. Per visualizzare l'ombra denominata che hai creato, puoi eseguire il comando CLI list-named-shadows-for-thing.

    aws iot-data list-named-shadows-for-thing --thing-name Bike-1

    L'output di questo comando può essere simile al seguente:

    { "results": [ "Bike1-shadow" ], "timestamp": 1699574309 }

Aggiorna la configurazione di indicizzazione degli oggetti

Per indicizzare i dati sulla posizione, è necessario aggiornare la configurazione di indicizzazione degli oggetti in modo da includere i dati sulla posizione. Poiché i dati sulla posizione sono memorizzati in un'ombra denominata, in questo tutorial, thingIndexingMode impostate come REGISTRY (come requisito minimo), namedShadowIndexingMode impostate ON come tale e aggiungete i dati sulla posizione alla configurazione. In questo esempio, è necessario aggiungere il nome dell'ombra denominata e il percorso dei dati sulla posizione dell'ombra afilter.

  1. Eseguite il comando per aggiornare la configurazione di indicizzazione per l'indicizzazione della posizione.

    aws iot update-indexing-configuration --cli-input-json '{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "filter": { "namedShadowNames": ["Bike1-shadow"], "geoLocations":[{ "name":"shadow.name.Bike1-shadow.reported.coordinates" }] }, "customFields": [ { "name":"attributes.battery", "type":"Number"}] } }'

    Il comando non produce output. Potrebbe essere necessario attendere qualche istante fino al completamento dell'aggiornamento. Per verificare lo stato, esegui il comando CLI describe-index. Se vedi indexStatus shows:ACTIVE, l'aggiornamento dell'indicizzazione delle cose è completo.

  2. Esegui il comando per verificare la configurazione di indicizzazione. Questa fase è facoltativa.

    aws iot get-indexing-configuration

    L'output può essere simile al seguente:

    { "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "managedFields": [ { "name": "shadow.name.*.hasDelta", "type": "Boolean" }, { "name": "registry.version", "type": "Number" }, { "name": "registry.thingTypeName", "type": "String" }, { "name": "registry.thingGroupNames", "type": "String" }, { "name": "shadow.name.*.version", "type": "Number" }, { "name": "thingName", "type": "String" }, { "name": "thingId", "type": "String" } ], "customFields": [ { "name": "attributes.battery", "type": "Number" } ], "filter": { "namedShadowNames": [ "Bike1-shadow" ], "geoLocations": [ { "name": "shadow.name.Bike1-shadow.reported.coordinates", "order": "LatLon" } ] } }, "thingGroupIndexingConfiguration": { "thingGroupIndexingMode": "OFF" } }

Esegui geoquery

Ora hai aggiornato la configurazione di indicizzazione degli oggetti per includere i dati sulla posizione. Prova a creare alcune geoquery ed eseguile per vedere se riesci a ottenere i risultati di ricerca desiderati. Una geoquery deve seguire la sintassi Query. Puoi trovare alcuni utili esempi di geoquery in. Geoquery di esempio

Nel comando di esempio seguente, si utilizza la geoquery per shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km cercare dispositivi che si trovano entro la distanza radiale di 15,5 km dal punto centrale con coordinate (47.6204, -122.3491).

aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"

Poiché hai un dispositivo situato alle coordinate «lat»: 47.6153, «lon»: -122.3333, che rientra nella distanza di 15,5 km dal punto centrale, dovresti essere in grado di vedere questo dispositivo (Bike-1) nell'output. L'output può essere simile al seguente:

{ "things": [ { "thingName": "Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df", "attributes": { "acqDate": "06/09/23", "battery": "35", "model": "OEM-2302-12" }, "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}" } ] }

Per ulteriori informazioni, consulta Indicizzazione dei dati sulla posizione.