IoT 장치 설정 구성을위한 프로토콜


9

MQTT는 엔드 디바이스와 호스트 서비스간에 애플리케이션 데이터를 교환 할 때 IoT에서 널리 사용됩니다. 발행-구독 모델을 사용하면 핸드 쉐이킹, 협상 등이 필요하지 않습니다 (최소한 MQTT 프로토콜 계층 이상). 주로 데이터 생산자가 데이터를 소비자에게 쉽게 배포 할 수 있도록하는 데 중점을두고 있습니다.

그러나 최종 장치에서 설정을 구성하려는 중앙 서버의 경우 모델이 매우 적합한 지 잘 모르겠습니다. 서버는 디바이스에 명령을 전송하고 응답을 다시 기다립니다 (예 : 특정 설정을 읽고 응답을 기다림). 이는 MQTT의 발행-구독 모델에 실제로 맞지 않습니다.

명령 송수신 및 원격 장치 구성에 적합한 기존 프로토콜이 있는지 궁금합니다.


1
MQTT가 클라이언트가 제어 채널을 구독하도록 허용하지 않습니까? 나는이 답을 찾기 시작하는 장소라고 생각합니다,하지만 난 대답에 최대 속도 sumarise에 충분히 아니에요 en.wikipedia.org/wiki/Representational_state_transfer
숀 Houlihane

1
잊지 말고, 엔드 포인트는 채널을 시작하는 엔드 포인트 여야하므로 전력 소비를 제어합니다.
Sean Houlihane

1
@SeanHoulihane MQTT를 사용하여 설명하는대로 명령 / 설정을 보내고받을 수는 있지만, 내가 보는 방법은 이상적으로 "세션 기반"인 프로토콜, 즉 세션을 작성하고 명령을 보내야합니다. 동일한 세션에서 응답을 수신하여 응답을 원래 명령에 쉽게 연결합니다. MQTT는 메시지 기반이므로 서로 메시지를 링크하는 것은 없습니다. 해당 부분을 처리하는 것은 사용자의 책임입니다. 그 목적으로 사용할 수있는 프로토콜이 있는지 궁금합니다.
Amr Bekhit

1
en.wikipedia.org/wiki/OMA_LWM2M 정확히 어떻게 모르겠지만 클라우드는 클라이언트에서 콜백을 트리거하기 위해 PUT 또는 POST 호출을 할 수있는 것 같습니다.
Sean Houlihane

MQTTv5에는 메시지를 이전 메시지에 대한 응답으로 표시하기위한 헤더 필드가 있습니다.
hardillb

답변:


6

에 대한 작업과 같은 사운드 의 coap :

HTTP와 마찬가지로 CoAP는 매우 성공적인 REST 모델을 기반으로합니다. 서버는 URL에서 리소스를 사용할 수있게하고 클라이언트는 GET, PUT, POST 및 DELETE와 같은 방법을 사용하여 이러한 리소스에 액세스합니다.

개발자의 관점에서 CoAP는 HTTP와 매우 흡사합니다. 센서에서 값을 얻는 것은 웹 API에서 값을 얻는 것과 크게 다르지 않습니다.

매우 낮은 오버 헤드 로 구현할 수 있습니다 .

CoAP는 최소 10KiB의 RAM과 100KiB의 코드 공간을 가진 마이크로 컨트롤러에서 작동하도록 설계되었습니다.

CoAP는 RFC 7252에 지정되어 있으며 다양한 구현 (예 : C )이 있습니다.

웹 API 용 HTTP와 함께 사용되는 REST에서 많은 영감을 얻었으므로 익숙한 경우 CoAP를 빠르게 선택할 수 있습니다. 그렇지 않은 경우이 프리젠 테이션 을 컨텍스트에 유용하게 사용할 수 있습니다 . 아이디어는 각 HTTP 방법은 예를 들어, 의미 론적 의미를 가지고 있다는 것입니다 GET무엇을 변경하고하지 않고 장치에서 정보를 요청 POST, PUTDELETE데이터를 돌연변이.

말했듯이 게시 / 구독 모델은 장치가 중앙 시스템 조정 (각 장치의 클라이언트 역할)에 대한 '서버'역할을하는 상황에서는 작동하지 않습니다. 대신 HTTP가 너무 많은 오버 헤드를 가지고 있다는 점을 제외하면 HTTP와 유사한 모델이 이상적입니다.


0

명령 송수신 및 원격 장치 구성에 적합한 기존 프로토콜이 있는지 궁금합니다.

예, IoT에는 더 나은 장치 관리 프로토콜이 있습니다. 그것은이다 LwM2M - 그것은 훨씬 더 효율적 MQTT 위의 coap, MQTT와 HTTP보다.

LwM2M은 잘 정의 된 데이터 및 장치 관리 모델과 함께 제공되며, 즉시 사용 가능한 다양한 표준 객체 (IPSO 스마트 객체), 연결 모니터링, 원격 장치 동작 및 구조화 된 FOTA 및 SOTA 업데이트를 제공하지만 MQTT에서는 이러한 기능이 완전히 공급 업체 및 플랫폼 별. MQTT를 사용하면 펌웨어 업데이트 또는 기타 관리 기능을 처음부터 새로 작성해야합니다. 반대로 LwM2M은 기본 기능 중 하나로 펌웨어 업그레이드를 제공하므로 통신을위한 새로운 빌딩 블록을 발명 할 필요가 없습니다.

다음은 MQTT와 LwM2M 및 전체 충돌 과정 을 비교 한 것 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.