Skip to Content
Skip to Content

장비 관리 및 OTA 시스템 개요

1. 시스템 개요

이 시스템은 각 IoT 장치(예: 센서, 컨트롤러 등)와 중앙 서버 간의 실시간 통신을 지원합니다. 이 통신은 MQTT라는 프로토콜을 통해 이루어지며, 장치는 정기적으로 상태 정보를 보고하고, 서버는 필요 시 장치에 명령을 전달할 수 있습니다.

2. 주요 개념 및 용어

  • MQTT: 장치와 서버 간 통신을 위한 가볍고 빠른 메시징 프로토콜입니다.
  • link_id: 장비를 식별하기 위한 고유 ID입니다.
  • 토픽(Topic): 메시지를 전달할 때 사용하는 주소 체계입니다.

3. MQTT 토픽 계층 구조

  • l/{link_id}/h: 하트비트 (Heartbeat)
  • l/{link_id}/s/{sensor_id}: 센서 데이터 보고
  • l/{link_id}/s/{status_type}: 장치 상태 정보 보고
  • l/{link_id}/e/{event_id}: 이벤트 보고
  • l/{link_id}/c/{command_id}/req: 서버 → 장치 명령 요청
  • l/{link_id}/c/{command_id}/res: 장치 → 서버 명령 응답

4. 하트비트 (Heartbeat)

장치가 정상 작동 중임을 주기적으로 서버에 알립니다.

  • 형식: l/{link_id}/h

  • 페이로드:

    { "uptime": 1234567 }
    • uptime: 시스템이 부팅된 이후 경과 시간 (밀리초 단위)

5. 센서 데이터 보고

센서에서 측정한 데이터를 서버에 전송합니다.

  • 형식: l/{link_id}/s/{sensor_id}

  • 페이로드 예시:

    • 숫자:

      23.5
    • JSON:

      { "value": 23.5, "unit": "C", "timestamp": 1621234567890 }

6. 상태 정보 보고

장치의 동작 상태나 설정 상태를 서버에 보고합니다.

  • 형식: l/{link_id}/s/{status_type}
  • 예시: 현재 모드, 작동 여부 등

7. 이벤트 보고

장치에서 발생한 특정 이벤트를 서버에 전송합니다.

  • 형식: l/{link_id}/e/{event_id}
  • 예시: 버튼 누름, 경고 발생, 센서 이상 등

8. 명령 요청 및 응답

8.1 명령 요청 (서버 → 장치)

  • 형식: l/{link_id}/c/{command_id}/req
  • 예시: 설정 변경 요청, 장치 재시작 요청 등

8.2 명령 응답 (장치 → 서버)

  • 형식: l/{link_id}/c/{command_id}/res

  • 페이로드 형식:

    {responseStatus}|{body}
    • 예시:

      OK|{"message": "완료됨"}

8.3 가능한 응답 상태

  • OK: 명령 정상 처리됨
  • UNPROCESSABLE: 알 수 없는 명령어
  • ERROR: 처리 중 오류 발생
  • TIMEOUT: 시간 초과
  • UNKNOWN: 기타 알 수 없는 오류
Last updated on