MQTT 또는 HTTP를 사용해야합니까?


9

온도, 습도 등과 같은 환경에서 정보를 감지하고 수집하는 장치를 만들고 있습니다.

장치가 전원에 연결되어 있지 않지만 배터리와 배터리를 충전 할 수있는 태양 전지판이 있습니다.

대부분의 경우 거의 수면 상태에 있으며 데이터를 감지하고 전송할 필요가있을 때만 깨어납니다. 이 작업은 1-2 분 정도 소요되며 다시 절전 모드로 전환됩니다.

나는이 분야의 전문가는 아니지만 토픽으로부터 메시지를 항상 수신하기 위해 디바이스에 액세스 할 수 있어야하는 경우 MQTT가 좋은 옵션이어야한다고 생각하지만, 내 시나리오에서는 센서 만 읽고 데이터를 주기적으로 서버.

현재 HTTP를 통해 데이터를 전송하고 있지만 MQTT를 구현하는 것이 적합한 지 궁금합니다. 이 시나리오에서 HTTP보다 유리한 점이 있습니까?


1
비슷하지만 내 요점은 내 시나리오에서 MQTT를 구현 해야하는지 여부를 이해하는 것입니다. 내 장치가 99 %의 수면 상태에 있고 판독을 보내기 위해 깨어날 때.
zephrax

1
나는 둘 다 제안하지 않을 것이다. 먼저 요구 사항을 작성하고 가장 간단한 프로토콜을 구현하십시오. 잔디를 깎기 위해 잔디 깎는 기계에서 페라리 엔진을 사용하는 것은 의미가 없습니다. 화려함에 사로 잡히지 마십시오. 기본 조사 만 수행하고 가장 효과적인 것을 구현하십시오.
Xofo

질문 제목의 요구 사항을 포착하는 것이 좋을 것입니다. 일반적으로 작은 센서 값을 요구하는 경우가 있습니다.
Sean Houlihane

@ Xofo 나는 그 주위에 대한 답변을보고 싶고 왜 사용자 정의 프로토콜을 사용하는 것이 좋습니다. '자신의 롤링'과 보안 문제 등의 추가 노력이 가치가 있습니까?
Aurora0001

맞춤 프로토콜이 아닙니다 ... 먼저 요구 사항을 정의한다고 말했습니다. 처방 된 일부 프로토콜은 종종 너무 무겁습니다.
Xofo

답변:


8

데이터를 저장하는 경우 단순히 HTTP를 사용하십시오. HTTP는 단방향 신호입니다.

서버 또는 기타 "사물"이 특정 신호 (저온 등)에 반응해야하는 경우 MQTT를 사용하십시오. 이와 같이 많은 장치가 온도 신호를 구독하고 서버를 사용하지 않고 즉시 반응 할 수 있습니다.


1
또한 큰 (http) 및 작은 (mqtt) 양의 데이터가 한 번에 구분되며 mqtt는 잘못된 신호 조건에서 더 안정적입니다.
mico

1
서버는 센서에서만 데이터를 수신합니다. 내 게시물의 요점은 MQTT를 사용하는 것이 의미가 있는지 확실하지 않다는 것입니다. 디바이스가 수면 상태 (모든 버스, 모뎀, 센서가 꺼진 상태)에서 99 %의 시간이 될 것이므로 센서를 읽고 데이터를 보내기 위해 깨어납니다.
zephrax

데이터를 어딘가에 저장하면 데이터베이스와 백엔드 방식으로 쿼리 할 수 ​​있습니다 (apache 서버, 명령 행 SQL 등). MQTT를 맨 위에 놓으면 관리 할 다른 인스턴스와 포트가 있습니다.
Goufalite

1
이 답변에 동의합니다. 양방향 통신이 필요하지 않고 장치가 많은 시간 동안 잠 들어있는 경우 HTTP는 간단하고 적합한 프로토콜 선택입니다.
TheMagicCow

8

장치의 일부로 태양 전지판과 배터리를 언급 했으므로 장치의 전원이 완전히 소모되지 않도록 전송하는 동안 전원 사용량을 최소화해야 할 수 있습니다.

따라서 고려하는 것이 좋습니다 의 coap을공동 nstrained pplication의 P의 구체적 사물의 인터넷에서 제한된 장치를 위해 설계되었습니다 rotocol을.

Web of Things 응용 프로그램에서 CoAP 및 HTTP의 비용 효율성 비교 백서 에서 CoAP가 절전 효과를 얻을 수 있다는 확실한 증거를 찾을 수 있습니다. 부록 A (38 페이지)에서 표 A.4의 장치의 예상 배터리 수명을 확인할 수 있습니다. 사용 사례에서 예상 한대로 120 초 간격으로 :

t bat (HTTP), 일 — 2013

t bat (CoAP), 일 — 11013

이러한 계산은 한 쌍의 탄소-아연 AA 배터리에서 실행되었지만 CoAP가 훨씬 적은 전력을 사용한다는 점을 분명히 알 수 있으므로 고려해 볼 가치가 있습니다. 논문에 설명 된 '푸시 모드'는 정확히 당신이하려는 일과 같습니다.

Coufa에 대해 구체적으로 묻지는 않았지만 Goufalite는 이미 MQTT와 HTTP의 본질적인 차이점을 다루었으므로 언급 할 가치가 있다고 생각합니다. 엄지 손가락의 좋은 규칙은 : 당신이 의사 소통을 계획 할 에 일대일 또는 일대를 ? 전자의 경우 HTTP와 CoAP가 더 적합한 것처럼 보입니다. 후자의 경우 MQTT가 더 편리합니다.

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