Tutorial de inicialização - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial de inicialização

Este tutorial demonstra como usar a indexação de frotas para indexar seus dados de localização. Para simplificar, você cria uma coisa para representar seu dispositivo e armazena os dados de localização em uma sombra nomeada, atualiza a configuração de indexação da coisa para indexação de localização e executa exemplos de geoconsultas para pesquisar dispositivos dentro de um limite radial.

Este tutorial leva cerca de 15 minutos para ser concluído.

Pré-requisitos

Crie coisas e sombras

Você cria uma coisa para representar seu dispositivo e uma sombra nomeada para armazenar seus dados de localização (coordenadas 47,61564, -122,33584).

  1. Execute o comando a seguir para criar sua coisa que representa sua bicicleta chamada Bike-1. Para obter mais informações sobre como criar algo usando AWS CLI, consulte 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"}}'

    A saída desse comando pode ser semelhante à seguinte:

    { "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" }
  2. Execute o comando a seguir para criar uma sombra nomeada para armazenar os dados de localização da Bike-1 (coordenadas 47.61564, -122.33584). Para obter mais informações sobre como criar uma sombra nomeada usando AWS CLI, consulte update-thing-shadow da Referência. AWS 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" \

    Esse comando não retorna nenhuma saída. Para ver a sombra nomeada que você criou, você pode executar o comando da CLI list-named-shadows-for-thing.

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

    A saída desse comando pode ser semelhante à seguinte:

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

Atualizar a configuração de indexação de coisas

Para indexar seus dados de localização, você deve atualizar sua configuração de indexação para incluir os dados de localização. Como seus dados de localização estão armazenados em uma sombra nomeada neste tutorial, thingIndexingMode defina como ser REGISTRY (com um requisito mínimo), namedShadowIndexingMode defina como ser ON e adicione seus dados de localização à configuração. Neste exemplo, você deve adicionar o nome da sombra nomeada e o caminho dos dados de localização da sombra atéfilter.

  1. Execute o comando para atualizar sua configuração de indexação para indexação de localização.

    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"}] } }'

    O comando não produz saída. Talvez seja necessário aguardar um momento até que a atualização seja concluída. Para verificar o status, execute o comando describe-index da CLI. Se você ver indexStatus shows:ACTIVE, sua atualização de indexação está concluída.

  2. Execute o comando para verificar sua configuração de indexação. Esta etapa é opcional.

    aws iot get-indexing-configuration

    A saída pode ter a seguinte aparência:

    { "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" } }

Executar geoquery

Agora você atualizou sua configuração de indexação para incluir os dados de localização. Tente criar algumas geoqueries e executá-las para ver se você consegue obter os resultados de pesquisa desejados. Uma consulta geográfica deve seguir a sintaxe da consulta. Você pode encontrar alguns exemplos úteis de geoconsultas em. Exemplos de geoconsultas

No comando de exemplo a seguir, você usa a consulta geográfica shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km para pesquisar dispositivos que estão dentro da distância radial de 15,5 km do ponto central com coordenadas (47,6204, -122,3491).

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

Como você tem um dispositivo localizado nas coordenadas “lat”: 47.6153, “lon”: -122.3333, que fica a uma distância de 15,5 km do ponto central, você deve conseguir ver esse dispositivo (Bike-1) na saída. A saída pode ter a seguinte aparência:

{ "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}" } ] }

Para ter mais informações, consulte Indexando dados de localização.