나는 IoT에서의 데이터 통신을 위해서 MQTT를 선택했다. IoT에서 데이터는 제어와 센서(이벤트 포함) 정보로 나눌 수 있을 것이다. 제어는 제어 토픽에 PUB하고, 센서는 센서 토픽에 SUB 하면 되니까. MQTT로 통신 인터페이스를 통일할 수도 있을 것 같다. 하지만 "다양한 디바이스가 붙을 수 있다"는 IoT의 특성 때문에, 인터페이스를 통일하는 것은 현실적으로 어렵다. 에컨데 웹 애플리케이션으로 IoT 기기와 통신하려면, HTTP 프로토콜을 이용해야 한다.
그래서 IoT를 위한 프로토콜에 HTTP를 추가하기로 했다.
환경
MQTT Broker : 모스키토(mosquitto) 브로커는 websocket을 지원한다. 단 1.4 버전부터 지원하는데, 아직 우분투 패키지 형태로 제공하지는 않는다. ()현재 우분투 14.10의 모스키토 버전은 1.3.5다. 따라서 직접 빌드 해야 한다.
MQTT Server 운영체제 : Virtualbox위에서 테스트 한다. 우분투 리눅스 서버 14.10 버전을 사용했다.
구성
Web Server : Web application을 이용한 UI를 제공한다.
MQTT Broker : Web application과 센서 디바이스 사이의 토픽을 중계한다.
MQTT Websocket 인터페이스
환경
구성
모스키토 브로커 빌드
libwebsockets 설치
Mercurial Tools
컴파일
설정 및 실행
테스트
Recent Posts
Archive Posts
Tags