이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론
2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model.
Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN Architecture.
2.3 무선센서네트워크기반의 Publish/Subscribe 프로토콜 3. 시스템설계및구현 3.1 시스템설계
M2M/IoT 서비스를 위한 지그비 기반의 Publish/Subscribe 시스템 구현 1465 센서노드는 지그비 메시 네트워크의 앤드 디바이 스 및 MQTT-SN 클라이언트로서 게이트웨이와 연 결되어 Publish/Subscribe 기능을 수행한다. 또한 센 서노드는 MQTT-SN 클라이언트 기능에 따라 Publish enabled, Subscribe enabled, Pub/Sub enabled 세 가지 유형의 노드로 구성하였다. Fig. 4. H/W Components of the Sensor node. Fig. 3. MQTT-SN System Architecture. MQTT-SN 구조는 하나의 무선 센서 네트워크에 서 여러 개의 MQTT-SN 게이트웨이를 지원한다. 따 라서 게이트웨이는 지그비 메시 네트워크의 라우터로 구성되며, 외부 IP 기반의 인터넷 망과 지그비 기반의 무선 센서 네트워크를 연결하는 역할을 하고 MQTT 와 MQTT-SN 사이에서 각 프로토콜의 포맷에 맞도 록 메시지를 변환하고 전달하는 역할을 수행한다. 본 시스템에서는 MQTT 브로커 서버의 구성을 위 해 오픈소스 기반의 MQTT 브로커 서버인 Mosquitto 1.3.4 버전을 이용하였다[14]. MQTT 브로커 서버 와 연결하는 외부 인터넷망에서의 PC 또는 스마트폰 은 MQTT 클라이언트로서 센서노드의 측정값을 Subscribe하거나, 반대로 센서노드로 제어 메시지를 Publish하여 센서노드 기능을 제어하는 역할을 한다. 3.2 센서노드 구현 앞에서 기술한 바와 같이 무선 센서 네트워크는 일반적으로 센서노드와 액추에이터가 장착된 노드 로 구성되기 때문에 각 노드는 기본적으로 센서 데이 터를 수집하고 전송하는 Publish 기능뿐만 아니라 제 어 메시지를 수신하는 Subscribe 기능이 요구된다. Fig. 4는 본 테스트베드에서 사용된 센서노드이며, 하드웨어 구성요소로는 Xbee 시리즈 2 모듈과 Arduino Uno를 이용하였다. 센서노드에 연결된 Xbee 시리즈 2는 Digi International사의 ZB 2.4GHz RF 트랜시버 모듈로서, IEEE 802.15.4 표준을 사용하고 Point-to-Point 통신 을 하는 Xbee 시리즈 1 모듈과는 다르게 지그비 메시 네트워크 구성을 위한 지그비 스택의 펌웨어를 이용 하며 통신거리 및 송수신 전력 소모 측면에서 훨씬 효율적이며 비교한 내용은 Table 2와 같다[15]. Xbee 시리즈 2는 기본적으로 Xbee 시리즈 1과 같 이 IEEE 802.15.4 통신을 위한 펌웨어가 내장되어 있 기 때문에 별도로 Digi International사에서 제공하는 X-CTU 소프트웨어를 통해 Table 3처럼 메시 네트 워크 노드 구성에 따라 펌웨어 업데이트가 필요하다. 본 연구에서는 어플리케이션 프로그램에 의해 커맨 드 정보 및 파라미터 정보를 패킷에 포함하여 노드 간의 데이터를 송수신할 수 있도록 API(Application Programming Interface) 모드를 사용한다. Xbee API는 Xbee 모듈과 연결된 프로세서가 구 조화된 인터페이스를 통해서 서로 통신할 수 있도록 기능을 제공한다. 또한 Xbee 모듈로부터 UART (Universal Asynchronous Receiver Transmitter) 데이터 프레임을 이용하여 커맨드 및 응답, 모듈 상 태에 대한 메시지를 송수신하는 방법을 명시하고 있 으며 다양한 기능의 API를 제공한다. Fig. 5에서 Xbee API 데이터 프레임 구조와 종류 를 나타내고 있으며, 각 프레임에 지정된 API ID를 통해 식별된다. 이와 같은 API 프레임은 프로그램을 통한 AODV(Ad hoc On-demand Distance Vector) Mesh, Many-to-One, Source 라우팅과 직접 주소지 정 방식의 전송을 가능하게 할뿐만 아니라 커맨드
Table 2. Series 1 versus Series 2 for regular Xbees Table 3. Xbee Firware Version for Zigbee Mesh Configuration Fig. 5. The Structure and Frame Type of Xbee API
Fig. 6. H/W Component of the MQTT-SN Gateway. 3.3 게이트웨이구현 Table 4. Publish/Subscribe Topic Corresponding to Each Node
Fig. 7. MQTT-SN Client and Gateway Protocol Stack. 4. MQTT 과 MQTT-SN 의통합된 Publish/ Subscribe 서비스설계 4.1 센서노드의 Publish 과정 Fig. 8. Publish Procedure of MQTT-SN Client.
4.2 센서노드의 Subscribe 과정 5. 구현결과및분석 Fig. 9. Subscribe Procedure of MQTT-SN Client.
Fig. 10. Communication test Screen between Sensor Node and MQTT Broker. Fig. 11. Subscribe Result Screen in MQTT Client PC. Fig. 12. Publish Message in MQTT Client PC.
Fig. 13. Communication Test between Sensor Node and MQTT Broker. Fig. 14. Sensor Node Control LED by MQTT Client PC. 5. 결론 REFERENCE