제퍼넷 로고

LwM2M을 사용한 IoT 장치 관리

시간

LwM2M을 사용한 IoT 장치 관리
일러스트 : © IoT For All

오늘날의 시장에서, IoT 장치 다양한 형태와 모양으로 나옵니다. 각 장치에는 특정 데이터 패킷 구조 및 신중하게 설계된 장치 관리 계층과 함께 제공되는 고유한 통신 스택이 있습니다. 이제 수년에 걸쳐 수천 개의 건물에서 전기 사용량을 측정하기 위해 다양한 브랜드의 스마트 계량기를 배포한 에너지 유통업체의 고군분투를 상상해 보십시오. 각 미터는 형식을 지정해야 하는 다른 데이터 구조와 함께 제공됩니다. 다양한 장치를 원격으로 관리하려면 특정 프로세스를 구현해야 하며 장치의 펌웨어를 업데이트하려면 특정 메커니즘을 배치해야 합니다.

장치가 LwM2M 표준을 사용하는 경우 IoT 통합자는 각 장치가 유사하게 데이터를 보고하는지 확인할 수 있습니다. 구성 및 펌웨어는 사용된 하드웨어, 펌웨어 버전 또는 센서와 관계없이 유사한 서버 명령을 사용하여 업데이트할 수 있습니다. 상호 운용성을 보장하는 LwM2M의 세 가지 기본 구성 요소인 표준화된 데이터 형식, LwM2M 아키텍처 및 LwM2M 작업을 살펴보겠습니다.

"장치가 LwM2M 표준을 사용하면 IoT 통합자는 각 장치가 유사하게 데이터를 보고한다는 것을 확신할 수 있습니다."

-AV시스템

LwM2M 데이터 형식

LwM2M은 에 의해 개발된 응용 계층 통신 프로토콜입니다. OMA 스펙웍스 IoT 장치의 메시징 및 장치 관리를 단순화합니다. 이 프로토콜은 통신 의미 체계, 장치 관리 메커니즘, FOTA(무선 업데이트) 및 원격 측정 데이터 수집을 정의하며 리소스가 제한된 장치에 적합합니다. LwM2M 표준은 이른바 IPSO Smart Objects를 사용하여 데이터 상호 운용성을 실현하기 위한 구성, 기능 및 센서를 나타냅니다. IPSO Smart Objects를 특정 방식으로 구조화할 때 LwM2M 클라이언트와 LwM2M 서버가 모두 이해할 수 있는 언어가 생성됩니다. 이 언어에는 개체, 개체 인스턴스 및 리소스가 포함됩니다.

#1: 객체

개체는 물리적 구성 요소(센서, LED 또는 액추에이터) 또는 논리적 엔터티(예: 기본 무선 기술, 펌웨어 업데이트 구성 또는 보안 구현)를 나타냅니다. 모든 개체는 개체 ID로 정의됩니다. LwM2M 표준은 장치가 LwM2M 서버와 연결하고 통신하는 데 필수적인 것으로 간주되는 세 가지 필수 개체를 정의합니다. 필수 개체는 다음과 같습니다.

  1. 개체 ID 0: LwM2M 보안: 클라이언트에 구성된 LwM2M 서버 연결에 대한 기밀 정보를 포함합니다.
  2. 개체 ID 1: LwM2M 서버: 클라이언트에 구성된 LwM2M 서버에 대한 연결에 대한 비기밀 정보를 포함합니다.
  3. 개체 ID 3: 장치: 일련 번호 및 펌웨어 버전과 같은 장치에 대한 기본 정보를 포함합니다.

필수 개체 옆에 추가 개체를 구현할 수 있습니다. 필수가 아닌 개체의 예는 다음과 같습니다.

  • 개체 ID 4: 연결 모니터링: 신호 강도 및 네트워크 유형과 같은 장치의 연결 상태에 대한 정보를 제공합니다.
  • 개체 ID 5: 펌웨어 업데이트: 원격 펌웨어 업데이트를 수행할 수 있습니다.
  • 개체 ID 6: 위치: 위도 및 경도와 같은 장치의 지리적 위치에 대한 정보를 제공합니다.
  • 개체 ID 11: LwM2M APN 연결 프로필: 장치가 APN에 연결할 수 있도록 합니다.
  • 개체 ID 3303: 온도: 온도 측정값을 보고합니다.
  • 개체 ID 3313: 가속도계: 1~3축 가속도계를 나타냅니다.

#2: 개체 인스턴스

일부 개체에는 여러 개체 인스턴스가 있을 수 있습니다. 이러한 개체의 예로는 여러 LwM2M 서버를 구성할 수 있으므로 LwM2M 서버에 대한 연결을 관리하는 개체 또는 여러 개를 포함하는 장치가 포함됩니다. SIM 다른 APN 프로필로. 장치에 동일한 센서가 여러 개 포함된 경우 개체 인스턴스를 사용하여 서로 다른 센서를 구분합니다.

#3: 리소스

리소스는 읽거나 쓰거나 실행할 수 있는 개체의 특정 속성을 나타냅니다. 각 리소스는 고유한 리소스 ID로 식별됩니다. 예를 들어 온도 개체에는 리소스 현재 온도, 측정 단위 및 타임스탬프가 있습니다. 마찬가지로 장치 개체에는 제조업체 이름, 일련 번호 및 펌웨어 버전과 같은 리소스가 있습니다. 위치 개체에는 리소스의 위도, 경도 및 고도가 있습니다. 개체 및 리소스에 대한 모든 세부 정보는 OMA 레지스트리. 특정 기능이나 센서가 OMA 레지스트리에 나열되지 않은 경우 사용자 지정 개체를 정의할 수도 있습니다.

각 리소스에는 식별자, 유형(float, string, int, opaque) 및 허용된 서버 작업(예: READ, WRITE 또는 EXECUTE)이 포함됩니다. 몇 가지 예를 살펴보겠습니다.

장치 개체는 식별자 3으로 표시되며 리소스에는 다음이 포함됩니다.

리소스 ID 자원 이름 서버 운영 타입
0 제조업 자 읽기
1 모델 번호 읽기
3 펌웨어 버전 읽기
4 재부팅 실행 파일 -
13 현재 시간 쓰기 가능 Time
장치 개체

온도 개체는 식별자로 표시됩니다. 3303, 리소스에는 다음이 포함됩니다.

리소스 ID 자원 이름 서버 운영 타입
5700 센서 값 읽기 흙손
5701 센서 유닛 읽기
5518 시간 기록 읽기 Time
온도 개체

데이터를 보낼 때 각 메시지의 형식은 다음과 같습니다. / / =

최신 온도 데이터를 보내려면 다음과 같을 수 있습니다. 3303/0/5700 = 23.5

대역폭을 최적화하기 위해 데이터는 일반적으로 공간 효율적인 바이너리 페이로드로 인코딩됩니다. 일반 JSON으로 데이터를 보낼 수 있지만 CBOR 또는 SenML을 사용하여 페이로드 크기를 줄이는 것이 더 일반적입니다.

LwM2M 데이터 형식을 사용하여 위도 및 경도 보내기

리소스 인스턴스

어떤 경우에는 리소스에 여러 리소스 인스턴스가 있습니다. 예를 들어 장치 개체 3에는 리소스 6: 사용 가능한 전원이 포함됩니다. 다른 인스턴스는 다른 전원을 설명합니다.

0: DC 전원
1: 내부 배터리
2: 외부 배터리
3: 연료 전지
4: PoE(Power over Ethernet)
5: USB
6: AC(주전원) 전원
7: 태양광

태양광 발전의 가용성을 설명하기 위해 메시지 형식은 3/0/6/7이 됩니다.

LwM2M 아키텍처: 클라이언트 및 서버

LwM2M 아키텍처는 LwM2M 클라이언트와 LwM2M 서버로 구성됩니다. 통신은 사용된 (무선) 기술과 독립적으로 작동하며 IP 및 비 IP 네트워크 모두에서 실행될 수 있습니다. 널리 사용되는 IP 기술에는 WiFi 및 셀룰러가 포함됩니다. 비 IP에는 Bluetooth, LoRaWAN 또는 Wirepa가 포함됩니다. 비 IP 네트워크는 IEEE 802.15.4(6LoWPAN) 네트워크를 사용하여 주소를 지정할 수 있습니다. 예를 들어 Bluetooth를 통해 스레드를 실행합니다. 

LwM2M 표준은 CoAP 프로토콜을 사용하여 장치가 클라우드와 쉽게 통신할 수 있도록 합니다. CoAP를 HTTP 프로토콜로 생각하지만 리소스가 제한된 장치용으로 설계되었습니다. CoAP는 두 프로토콜 모두 IoT 애플리케이션에서 일반적으로 사용되기 때문에 종종 MQTT와 비교됩니다. 주요 차이점은 MQTT가 TCP에 의존하는 반면 CoAP는 기본적으로 UDP를 사용한다는 것입니다. UDP의 작은 오버헤드는 종종 TCP와 비교할 때 이점으로 간주됩니다. CoAP를 TCP와 함께 사용할 수 있지만 UDP는 네트워크 리소스의 효율적인 사용이 우선 순위일 때 선호되는 경우가 많습니다.

인기 있는 LwM2M 클라이언트로는 Anjay(AVSystem에서 관리) 및 Zephyr LwM2M 클라이언트(Zephyr 프로젝트에서 관리)가 있습니다. AVSystem에서 제공하는 LwM2M 서버는 Coiote라고 하며 장치 데이터, 구성 및 펌웨어 업데이트를 처리하는 데 사용할 수 있습니다.

LwM2M 클라이언트는 최종 장치에서 실행되며 보안 연결을 사용하여 LwM2M 서버와 통신합니다. 클라이언트는 첫 번째 연결과 주기적인 상태 업데이트 중에 지원되는 개체 및 리소스에 대해 서버에 알립니다. 장치 수명 동안 클라이언트는 LwM2M 표준에 정의된 형식의 원격 측정 데이터와 함께 서버에 알림을 보냅니다. 모든 데이터는 Azure IoT Hub 또는 AWS IoT Core와 같은 플랫폼의 특정 데이터베이스로 추가 처리하거나 전달할 수 있는 LwM2M 서버에 의해 캡처 및 저장됩니다.

LwM2M 작업

LwM2M 프로토콜의 세 번째 핵심 기능은 클라이언트와 서버 모두에서 시작할 수 있는 작업입니다. 클라이언트 작업은 원격 측정 데이터 또는 장치 상태에 대해 서버에 알리는 데 사용됩니다. 서버 작업은 데이터를 읽거나 쓰거나 시간 경과에 따라 장치 구성 또는 펌웨어를 원격으로 업데이트하는 데 사용됩니다. 정보 보고 인터페이스와 장치 관리 인터페이스의 두 가지 인터페이스를 구분할 수 있습니다.

#1: 정보 보고 인터페이스

LwM2M 클라이언트는 클라이언트가 시작한 원격 측정 데이터 또는 상태 변경을 실시간으로 서버에 알릴 수 있습니다. 서버는 또한 주기적인 간격으로 또는 값이 특정 임계값을 초과할 때(예: 온도가 30도 이상으로 상승할 때) 데이터를 보내도록 장치에 요청하여 장치의 동작을 정의할 수 있습니다. 이는 OBSERVE, SEND 및 NOTIFY 작업을 사용하여 수행할 수 있습니다.

  • 관찰: 관찰 작업이 호출되면 클라이언트는 구성 가능한 간격으로 데이터 또는 상태에 대한 NOTIFY 메시지를 서버에 보내기 시작합니다. OBSERVE 작업은 보낼 때 취소할 수도 있습니다. 취소 관찰.
  • 보내다: SEND 메시지는 클라이언트가 명시적인 요청 없이 서버에 데이터를 보내는 데 사용됩니다. 응용 프로그램 펌웨어에 따라 새 측정값을 보고하거나 원격 측정 데이터 또는 상태의 변경 사항을 서버에 알리는 데 사용할 수 있습니다.
  • 알림: 서버에서 시작된 OBSERVE 동작에 대한 응답으로 클라이언트는 데이터와 함께 NOTIFY 동작을 보낸다. 일반적으로 서버는 클라이언트가 데이터를 전송하는 데 필요한 대역폭을 제공합니다. 예: 최소 1시간마다, 15분마다 한 번 이상.

#2: 장치 관리 인터페이스

장치 관리 인터페이스를 통해 서버는 LwM2M 클라이언트와 원격으로 연결하고 해당 구성, 소프트웨어, 보안 등을 관리할 수 있습니다. 인터페이스는 일련의 표준화된 작업과 함께 제공되며 이 모든 작업은 서버에서 시작됩니다.

  • 더보기: 클라이언트가 지원하는 개체 및 리소스 목록을 검색합니다.
  • 독서: 특정 리소스 또는 개체 전체의 현재 값을 검색합니다.
  • 쓰다: 특정 리소스 또는 개체 전체의 값을 수정합니다.
  • 실행: 리소스에 대한 작업 또는 작업을 호출합니다. 예를 들어 장치에 펌웨어를 재설정, 재부팅 또는 업그레이드하도록 지시합니다.
  • 몹시 떠들어 대다: 새 개체 인스턴스를 만듭니다.
  • 삭제: 개체 인스턴스를 삭제합니다.

LwM2M으로 단순화

IoT 환경은 파편화되어 있으며 무선 기술, 메시징 프로토콜 및 데이터 형식을 파헤칠 때 길을 잃기 쉽습니다. LwM2M은 표준화와 상호 운용성을 통해 연결된 세상을 단순화할 것을 약속합니다. 이는 사전 정의된 식별자가 있는 IPSO Smart Objects의 결과로 달성되어 장치의 디지털 표현을 생성할 수 있습니다. 표준화된 데이터 형식을 통해 모든 LwM2M 서버에서 데이터를 쉽게 해석할 수 있습니다. 클라이언트-서버 아키텍처는 최종 장치와 웹 간에 데이터가 흐르는 방식을 지정합니다. 마지막으로 미리 정의된 작업을 통해 장치가 데이터를 전송하고 시간이 지남에 따라 재구성할 수 있습니다.

spot_img

최신 인텔리전스

spot_img