LoRaWAN 디바이스의 위치 구성 - AWS IoT Wireless

LoRaWAN 디바이스의 위치 구성

디바이스를 AWS IoT Core for LoRaWAN에 추가할 때 정적 위치 정보를 지정하고, 선택적으로 위치 확인을 활성화하고, 대상을 지정할 수 있습니다. 대상은 디바이스의 위치 정보를 처리하고 업데이트된 위치를 Amazon Location Service에 라우팅하는 IoT 규칙을 설명합니다. 디바이스 위치를 구성하면 위치 데이터가 Amazon Location 맵에 정확도 정보 및 지정한 대상과 함께 표시됩니다.

AWS Management Console, AWS IoT Wireless API 또는 AWS CLI를 사용하여 디바이스 위치를 구성할 수 있습니다.

위치 확인을 활성화하는 경우 디바이스의 Wi-Fi 및 GNSS 스캔 데이터를 AWS IoT Core for LoRaWAN에 전달하기 위한 지리적 위치 프레임 포트를 지정해야 합니다. 위치 정보는 이 프레임 포트를 사용하여 AWS IoT Core for LoRaWAN으로 전달됩니다.

LoRaWAN 사양은 서로 다른 유형의 메시지를 구별하기 위해 데이터 전송 필드(FRMPayload)와 포트 필드(FPort)를 제공합니다. 위치 정보를 전달하기 위해 프레임 포트에 1부터 223 사이의 값을 지정할 수 있습니다. FPort 0은 MAC 메시지 전용이고, FPort 224는 MAC 규정 준수 테스트 전용이며, 포트 225~255는 향후 표준화된 애플리케이션 확장 전용입니다.

대상을 추가하면 대상은 규칙 엔진을 사용하여 데이터를 Amazon Location Service로 라우팅하는 AWS IoT 규칙을 생성합니다. 그 후 업데이트된 위치 정보가 Amazon Location 맵에 표시됩니다. 위치 확인을 활성화하지 않은 경우, 대상은 디바이스의 정적 위치 좌표를 업데이트할 때 위치 데이터를 라우팅합니다.

다음 코드는 AWS IoT Core for LoRaWAN에서 전송된 업링크 메시지(위치 정보, 정확도, 솔버 구성 및 무선 메타데이터 포함)의 형식을 보여 줍니다. 아래에 강조 표시된 필드는 선택 사항입니다. 수직 정확도 정보가 없는 경우, 값은 null입니다.

{ // Position configuration parameters for given wireless device "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35", // Position information for a device in GeoJSON format. Altitude // is optional. If no vertical accuracy information is available // or positioning isn't activated, the value is set to null. // The position information coordinates are listed in the order // [longitude, latitude, altitude]. "coordinates": [33.33000183105469, -22.219999313354492, 99.0], "type": "Point", "properties": { "horizontalAccuracy": number, "verticalAccuracy": number", "timestamp": "2022-08-19T03:08:35.061Z" }, //Parameters controlled by AWS IoT Core for LoRaWAN "WirelessMetadata": { "LoRaWAN": { "ADR": false, "Bandwidth": 125, "ClassB": false, "CodeRate": "4/5", "DataRate": "0", "DevAddr": "00b96cd4", "DevEui": "58a0cb000202c99", "FOptLen": 2, "FCnt": 1, "Fport": 136, "Frequency": "868100000", "Gateways": [ { "GatewayEui": "80029cfffe5cf1cc", "Snr": -29, "Rssi": 9.75 } ], "MIC": "7255cb07", "MType": "UnconfirmedDataUp", "Major": "LoRaWANR1", "Modulation": "LORA", "PolarizationInversion": false, "SpreadingFactor": 12, "Timestamp": "2021-05-03T03:24:29Z" } } }

콘솔을 사용하여 디바이스의 위치 구성

AWS Management Console을 사용하여 디바이스의 위치를 구성하고 관리하려면, 먼저 콘솔에 로그인한 다음 AWS IoT 콘솔의 Devices(디바이스) 허브 페이지로 이동합니다.

위치 정보 추가

디바이스의 위치 정보를 추가하려면:

  1. 디바이스(Devices) 허브 페이지에서 무선 디바이스 추가(Add wireless device)를 선택합니다.

  2. 무선 디바이스 사양, 디바이스 및 서비스 프로파일, 데이터를 다른 AWS 서비스로 라우팅하기 위한 IoT 규칙을 정의하는 대상을 입력합니다. 자세한 내용은 AWS IoT Core for LoRaWAN에 디바이스 온보딩 단원을 참조하십시오.

  3. 위치 정보를 입력하고, 선택적으로 지리적 위치를 활성화하고, 메시지 라우팅에 사용할 위치 데이터 대상을 지정합니다.

    • 위치 정보

      위도 및 경도 좌표와 선택적으로 고도 좌표를 사용하여 디바이스의 위치 데이터를 지정합니다. 위치 정보는 WGS84 좌표계를 기반으로 합니다.

    • 지리적 위치

      AWS IoT Core for LoRaWAN이 디바이스 위치를 계산하는 데 지리적 위치를 사용하도록 하려면 위치 확인을 활성화합니다. 서드 파티 GNSS 및 Wi-Fi 솔버를 사용하여 디바이스의 위치가 실시간으로 식별됩니다.

      지리적 위치 정보를 입력하려면 위치 확인 활성화를 선택하고 GNSS 및 Wi-Fi 스캔 데이터를 AWS IoT Core for LoRaWAN에 전달하기 위한 지리적 위치 프레임 포트를 입력합니다. 참조용으로 기본 FPort가 채워져 있습니다. 그러나 1부터 223 사이에서 다른 값을 선택할 수 있습니다.

    • 위치 데이터 대상

      디바이스의 위치 데이터를 처리하고 처리된 위치를 AWS IoT Core for LoRaWAN으로 전달하는 AWS IoT 규칙을 설명하기 위한 대상을 선택합니다. 이 대상은 위치 데이터의 라우팅에만 사용합니다. 디바이스 데이터를 다른 AWS 서비스로 라우팅하는 데 사용하는 대상과 달라야 합니다.

디바이스의 위치 구성 보기

디바이스의 위치를 구성한 후 AWS IoT Core for LoRaWAN은 iotwireless.map으로 불리는 Amazon Location 맵을 생성합니다. 이 맵은 위치(Position) 탭의 디바이스 세부 정보 페이지에서 확인할 수 있습니다. 지정한 위치 좌표 또는 서드 파티 솔버에 따라 계산된 위치를 기반으로 디바이스의 위치가 맵에 마커로 표시됩니다. 확대 또는 축소하여 맵에서 디바이스의 위치를 명확하게 볼 수 있습니다. 디바이스 세부 정보 페이지의 위치(Position) 탭에는 정확도 정보, 디바이스의 위치가 결정된 타임스탬프 및 지정한 위치 데이터 대상도 표시됩니다.

참고

Amazon Location Service 맵을 활성화하지 않은 경우, 맵에 액세스하고 위치를 확인하려면 Amazon Location Service를 사용해야 한다는 메시지가 표시됩니다. Amazon Location Service 맵을 사용하면 AWS 계정에 추가 요금이 발생할 수 있습니다. 자세한 내용은 AWS IoT Core 요금을 참조하십시오.

iotwireless.map 맵은 GetMapTile과 같은 Get API 작업을 사용하여 액세스되는 지도 데이터의 소스 역할을 합니다. 맵과 함께 사용되는 Get API에 대한 자세한 정보는 Amazon Location Service API 참조를 참고하세요.

이 맵에 대한 추가 세부 정보를 보려면 Amazon Location Service 콘솔로 이동하여 맵(Maps)을 선택한 다음 iotwireless.map을 선택합니다. 자세한 정보는 Amazon Location Service 개발자 안내서을 참조하세요.

디바이스의 위치 구성 업데이트

디바이스의 위치 구성을 변경하려면 디바이스 세부 정보 페이지에서 Edit(편집)을 선택한 다음 위치 정보, 지리적 위치 설정 및 대상을 업데이트합니다.

참고

과거 위치 데이터에 대한 정보는 제공되지 않습니다. 디바이스의 위치 좌표를 업데이트하면 이전에 보고된 위치 데이터를 덮어씁니다. 위치를 업데이트한 후 디바이스 세부 정보의 위치(Position) 탭에서 새 위치 정보를 볼 수 있습니다. 타임스탬프의 변화는 새 위치 정보가 마지막으로 알려진 게이트웨이 위치와 동기화되었다는 것을 나타냅니다.

API를 사용한 디바이스 위치 구성

AWS IoT Wireless API 또는 AWS CLI를 사용하여 위치 정보를 지정하고, 디바이스 위치를 구성하고, 선택적 지리적 위치를 활성화할 수 있습니다.

중요

API 작업 UpdatePosition, GetPosition, PutPositionConfiguration, GetPositionConfigurationListPositionConfigurations는 더 이상 지원되지 않습니다. 위치 정보를 업데이트하고 검색하기 위한 호출에는 GetResourcePositionUpdateResourcePosition API 작업을 대신 사용해야 합니다.

위치 정보 및 구성 추가

특정 무선 디바이스에 위치 정보를 추가하려면 UpdateResourcePosition API 작업 또는 update-resource-position CLI 명령을 사용하여 좌표를 지정합니다. WirelessDeviceResourceType으로 지정하고, 업데이트할 무선 디바이스의 ID를 ResourceIdentifier로 지정하고, 위치 정보를 지정합니다.

aws iotwireless update-resource-position \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f" \ --position [33.33, -33.33, 10.0]

다음은 deviceposition.json 파일의 콘텐츠를 보여줍니다. 지리적 위치 데이터를 전송하기 위한 FPort 값을 지정하려면 위치 확인 객체를 CreateWirelessDeviceUpdateWirelessDevice API 작업과 함께 사용합니다.

deviceposition.json의 내용

{ "type": "Point", "coordinates": [33.3318, -22.2155, 13.123], "properties": { "verticalAccuracy": 707, "horizontalAccuracy": "timestamp": "2018-11-30T18:35:24Z" } }

이 명령을 실행하면 출력을 생성하지 않습니다. 지정한 위치 정보를 보려면 GetResourcePosition API 작업을 사용합니다.

위치 정보 및 구성 가져오기

특정 무선 디바이스에 대한 위치 정보를 가져오려면 GetResourcePosition API 또는 get-resource-position CLI 명령을 사용합니다. WirelessDeviceresourceType으로 지정하고 무선 디바이스 ID를 resourceIdentifier로 제공합니다.

aws iotwireless get-resource-position \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f"

이 명령을 실행하면 무선 디바이스의 위치 정보가 GeoJSON 페이로드로 표시됩니다. 위치 좌표, 위치 유형 그리고 디바이스의 마지막으로 알려진 위치에 해당하는 타임스탬프 및 정확도 정보를 비롯한 속성에 대한 정보가 표시됩니다.

{ "type": "Point", "coordinates": [33.3318, -22.2155, 13.123], "properties": { "verticalAccuracy": 707, "horizontalAccuracy": 389, "horizontalConfidenceLevel": 0.68, "verticalConfidenceLevel": 0.68, "timestamp": "2018-11-30T18:35:24Z" } }