Como resolver a localização dos dispositivos de IoT - 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á.

Como resolver a localização dos dispositivos de IoT

Use o Local do dispositivo AWS IoT Core para decodificar os dados de medição dos dispositivos e resolver o local do dispositivo usando solucionadores de terceiros. A localização resolvida é gerada como uma carga GeoJSON com as coordenadas geográficas e informações de precisão. Você pode resolver a localização do dispositivo por meio do console AWS IoT, da API AWS IoT Wireless ou da AWS CLI.

Como resolver o local do dispositivo (console)

Para resolver o local do dispositivo (console)

  1. Acesse a página Local do dispositivo no console AWS IoT.

  2. Obtenha os dados de medição da carga dos logs do dispositivo ou do CloudWatch Logs e insira-os na seção Resolver por carga.

    O código a seguir mostra um exemplo de carga JSON. A carga contém dados de medição de celular e Wi-Fi. Se a carga contiver tipos adicionais de dados de medição, o solucionador com a melhor precisão será usado. Para ter mais informações e exemplos de carga, consulte Solucionadores de localização e carga do dispositivo.

    nota

    A carga JSON deve conter pelo menos um tipo de dados de medição.

    { "Timestamp": 1664313161, "Ip":{ "IpAddress": "54.240.198.35" }, "WiFiAccessPoints": [{ "MacAddress": "A0:EC:F9:1E:32:C1", "Rss": -77 }], "CellTowers": { "Gsm": [{ "Mcc": 262, "Mnc": 1, "Lac": 5126, "GeranCid": 16504, "GsmLocalId": { "Bsic": 6, "Bcch": 82 }, "GsmTimingAdvance": 1, "RxLevel": -110, "GsmNmr": [{ "Bsic": 7, "Bcch": 85, "RxLevel": -100, "GlobalIdentity": { "Lac": 1, "GeranCid": 1 } }] }], "Wcdma": [{ "Mcc": 262, "Mnc": 7, "Lac": 65535, "UtranCid": 14674663, "WcdmaNmr": [{ "Uarfcndl": 10786, "UtranCid": 14674663, "Psc": 149 }, { "Uarfcndl": 10762, "UtranCid": 14674663, "Psc": 211 } ] }], "Lte": [{ "Mcc": 262, "Mnc": 2, "EutranCid": 2898945, "Rsrp": -50, "Rsrq": -5, "LteNmr": [{ "Earfcn": 6300, "Pci": 237, "Rsrp": -60, "Rsrq": -6, "EutranCid": 2898945 }, { "Earfcn": 6300, "Pci": 442, "Rsrp": -70, "Rsrq": -7, "EutranCid": 2898945 } ] }] } }
  3. Para resolver as informações de local, escolha Resolver.

    As informações de localização são do tipo blob e retornadas como uma carga que usa o formato GeoJSON, que é um formato usado para codificar estruturas de dados geográficos. A carga contém:

    • As coordenadas geográficas do WGS84, que incluem as informações de latitude e longitude. Também pode incluir informações de altitude.

    • O tipo de informação de localização relatada, como Ponto. Um tipo de localização de ponto representa a localização como uma latitude e longitude WGS84, codificada como um ponto GeoJSON.

    • As informações de precisão horizontal e vertical, que indicam a diferença, em metros, entre as informações de local estimadas pelos solucionadores e o local real do dispositivo.

    • O nível de confiança, que indica a incerteza na resposta da estimativa de localização. O valor padrão é 0,68, o que indica uma probabilidade de 68% de que o local real do dispositivo esteja dentro do raio de incerteza do local estimado.

    • A cidade, o estado, o país e o código postal em que o dispositivo está localizado. Essas informações serão relatadas somente quando o solucionador de pesquisa reversa de IP for usado.

    • As informações de registro de data e hora, que correspondem à data e à hora em que o local foi resolvido. Ele usa o formato de registro de data/hora Unix.

    O código a seguir mostra um exemplo de carga GeoJSON retornada pela resolução da localização.

    nota

    Se o Local do dispositivo AWS IoT Core relatar erros ao tentar resolver o local, você poderá solucionar os erros e resolver o local. Para obter mais informações, consulte Como solucionar problemas com erros ao resolver a localização.

    { "coordinates": [ 13.376076698303223, 52.51823043823242 ], "type": "Point", "properties": { "verticalAccuracy": 45, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 303, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T12:23:58.189Z" } }
  4. Vá para a seção Local do recurso e verifique as informações de localização geográfica relatadas pelo Local do dispositivo AWS IoT Core. Você pode copiar a carga para uso com outras aplicações e AWS service (Serviço da AWS). Por exemplo, você pode usar a Local para enviar os dados de localização geográfica para o Amazon Location Service.

Como resolver o local do dispositivo (API)

Para resolver o local do dispositivo usando a API AWS IoT Wireless, use a operação da API GetPositionEstimate ou o comando da CLI get-position-estimate. Especifique os dados de medição da carga como entrada e execute a operação da API para resolver o local do dispositivo.

nota

A operação da API GetPositionEstimate não armazena nenhuma informação de dispositivo ou estado e não pode ser usada para recuperar dados históricos de localização. Ele executa uma operação única que resolve os dados de medição e produz a localização estimada. Para recuperar as informações de localização, você deve especificar as informações da carga sempre que realizar essa operação de API.

O comando a seguir mostra um exemplo de como resolver a localização usando essa operação de API.

nota

Ao executar o comando da CLI get-position-estimate, você deve especificar o arquivo JSON de saída como a primeira entrada. Esse arquivo JSON armazenará as informações de localização estimadas obtidas como resposta da CLI no formato GeoJSON. Por exemplo, o comando a seguir armazena as informações de localização no arquivo locationout.json.

aws iotwireless get-position-estimate locationout.json \ --ip IpAddress=""54.240.198.35"" \ --wi-fi-access-points \ MacAddress="A0:EC:F9:1E:32:C1",Rss=-75 \ MacAddress="A0:EC:F9:15:72:5E",Rss=-67

Esse exemplo inclui pontos de acesso Wi-Fi e endereço IP como tipos de medição. O AWS IoT Core O Local do dispositivo escolhe entre o solucionador Wi-Fi e o solucionador de pesquisa reversa de IP e seleciona o solucionador com maior precisão.

A localização resolvida é retornada como uma carga que usa o formato GeoJSON, que é um formato usado para codificar estruturas de dados geográficos. Em seguida, ele é armazenado no arquivo locationout.json. A carga contém as coordenadas de latitude e longitude do WGS84, as informações de precisão e nível de confiança, tipo de dados da localização e o registro de data e hora em que a localização resolvida foi resolvida.

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

Como solucionar problemas com erros ao resolver a localização

Ao tentar resolver a localização, você pode ver qualquer um dos códigos de erro a seguir. O AWS IoT Core O Local do dispositivo pode gerar um erro ao usar a operação da API GetPositionEstimate ou então se referir ao número da linha correspondente ao erro no console AWS IoT.

  • Erro 400

    Esse erro indica que o formato do JSON da carga do dispositivo não pode ser validado pelo Local do dispositivo AWS IoT Core. O erro pode ocorrer porque:

    • Os dados de medição do JSON estão formatados incorretamente.

    • A carga contém somente as informações do registro de data/hora.

    • Os parâmetros dos dados de medição, como o endereço IP, não são válidos.

    Para resolver esse erro, verifique se o JSON está formatado corretamente e contém dados de um ou mais tipos de medição como entrada. Se o endereço IP for inválido, para obter informações sobre como você pode fornecer um endereço IP válido para resolver o erro, consulte Solucionador de pesquisa reversa de IP.

  • Erro 403

    Esse erro indica que você não tem as permissões para realizar a operação da API ou usar o console AWS IoT para recuperar o local do dispositivo. Para resolver esse erro, verifique se você tem as permissões necessárias para realizar essa ação. Esse erro pode ocorrer se a sessão do AWS Management Console ou o token de sessão da AWS CLI tiverem expirado. Para resolver esse erro, atualize o token da sessão para usar a AWS CLI ou saia do AWS Management Console e, em seguida, faça login usando suas credenciais.

  • Erro 404

    Esse erro indica que nenhuma informação de local foi encontrada ou resolvida pelo Local do dispositivo AWS IoT Core. O erro pode ocorrer devido a casos como dados insuficientes na entrada de dados de medição. Por exemplo:

    • As informações do endereço MAC ou da torre celular não são suficientes.

    • O endereço IP não está disponível para pesquisar e recuperar a localização.

    • A carga do GNSS não é suficiente.

    Para resolver o erro nesses casos, verifique se os dados de medição contêm informações suficientes necessárias para resolver o local do dispositivo.

  • Erro 500

    Esse erro indica que ocorreu uma exceção interna do servidor quando Local do dispositivo AWS IoT Core tentou resolver o local. Para tentar corrigir esse erro, atualize a sessão e tente enviar novamente os dados de medição a serem resolvidos.