개발 가이드

IoT Portal 서비스 개발에 필요한 개발 가이드 입니다.

HTTP Server로 개발하기

LoRa 디바이스의 최신 데이터 조회하기

LoRa 디바이스의 Uplink 데이터를 App/Web 서버는 어떻게 조회해야 할까?

ThingPlug의 주요 기능 중 하나는 LoRa 디바이스가 전송한 센서 정보 또는 액츄에이터의 동작 상태 등의 데이터를 저장하고 해당 데이터를 사용자의 App/Web 서버가 조회할 수 있도록 하는 것입니다.
이러한 데이터는 ThingPlug에 ‘container’와 ‘contentInstance’라는 Resource 타입으로 관리되고 있습니다. ‘container’의 역할은 데이터를 저장하는 역할을 하고, 하위에 ‘contentInstance’ Resource 타입으로 실제 데이터를 저장하고 있습니다.

사용자의 App/Web 서버는 ThingPlug를 통해 LoRa 디바이스의 가장 최신(latest) 데이터 하나를 조회할 수 있습니다. 원활한 데이터 수집을 위해 Subscription 방식을 통해 데이터를 수집하는 것을 추천합니다.

데이터를 수집하기 위한 방법인 “Polling”과 “Subscription”에 대한 설명은 “App/Web 서버에서 데이터를 수집하기 위한 방법”에서 확인 할 수 있습니다.

Polling으로 최신 데이터 조회하기

App/Web 서버가 원하는 시점에 데이터를 조회할 수 있다.

최신 데이터를 조회하게 되면, 해당 LoRa 디바이스가 Uplink하고 있는 데이터들 중 가장 최신의 데이터 하나를 조회할 수 있습니다.

개발가이드 설명
Description LoRa 디바이스의 Uplink 데이터 중 가장 최신에 저장된 값을 호출합니다.
Requirements ukey: 사용자 인증키
개발가이드 설명
Request
GET /0000000000000004/v1_0/remoteCSE-00000004702c1ffffe1d79da/container-LoRa/latest HTTP/1.1
Host: thingplugtest.sktiot.com:9443
X-M2M-RI: 00000004702c1ffffe1d79da_0002
X-M2M-Origin: 00000004702c1ffffe1d79da
ukey: dG5janFndjNibzZ**************ERjd296V0poMFY0TTJ4UQ==
Response

                                                

수신한 Response 중 <con> 필드에 포함된 데이터가 실제 LoRa 디바이스가 전송한 Uplink 데이터입니다.
위 예제에서는 “31323334353637383930” 이라는 데이터를 보낸 것을 확인할 수 있습니다. 이 데이터는 Hexa decimal 형태로 되어있습니다. 만약 LoRa 디바이스에서 “0x31 0x32 … 0x39 0x30” 데이터를 Uplink 하게 되면 위와 같이 “3132 …. 3930”으로 표현 됩니다.

개발가이드 설명
LoRa 디바이스 ThingPlug
0x00 00
0x01 01
... ...
0xFE FE
0xFF FF

LoRa 디바이스가 데이터를 보낸 시간을 <ct> 필드로 확인할 수 있으며, <et> 필드의 시간이 되면 해당 데이터는 ThingPlug에서 삭제됩니다.

Subscription으로 데이터 Push 받기

Subscription을 하면 Uplink 데이터를 실시간으로 Push 받을 수 있다.

LoRa 디바이스마다 각각 한번씩 Subscription 요청을 해두면 LoRa 디바이스가 Uplink를 수행할 때마다 ThingPlug가 사용자의 App/Web 서버로 Uplink 데이터를 Push 해주도록 설정할 수 있습니다.

개발가이드 설명
Description LoRa 디바이스의 Uplink 데이터가 생성되면 사용자의 App/Web 서버로 Push 해주도록 설정합니다.
Requirements ukey: 사용자 인증키
X-M2M-NM: Subscription을 구분하기 위한 구분자, 예제에서는 임의의 값 “subscription_1” 사용
<rss>: 1(데이터 생성시 Push 조건)
<nu>: Uplink 데이터를 수신할 서버의 URL
개발가이드 설명
Request

                                                
Response

                                                

Subscrption 이후 LoRa 디바이스가 Uplink를 하면 ThingPlug는 사용자의 App/Web 서버로 아래와 같은 포맷으로 데이터를 Push해 줍니다.

개발가이드 설명
xml 소스코드 뷰어

                                            

App/Web 서버가 수신하는 위 데이터 포맷을 보면 LoRa 디바이스가 전송한 Uplink 데이터가 <con> 필드에 포함된 것을 확인할 수 있습니다. 위 예제에서는 “31323334353637383930” 이라는 데이터를 보낸 것을 확인할 수 있습니다. LoRa 디바이스가 데이터를 보낸 시간을 <ct> 필드로 확인할 수 있으며, <et> 필드의 시간이 되면 해당 데이터는 ThingPlug에서 삭제됩니다.

top