반응형
이번에는 사물인터넷에서 각광 받고 있는 메시지 전송 프로토콜인 MQTT (Message Queue Telemetry Transport) 에 대해서 알아보겠습니다. MQTT 는 IBM 에 의해서 개발되었고 2014년 국제 민간 표준기구인 오아시스에 의해서 표준으로 제정되었습니다. 이 프로토콜이 사물인터넷의 통신규약으로 각광 받고 있는 이유는 경량화가 가능해서 통신 대역폭이 제한적인 사물인터넷에 적합하기 때문 입니다. 현재 페이스북도 회원들간의 메시지 전송에 MQTT 프로토콜을 이용하고 있다고 합니다.
https://sakshambhatla.wordpress.com
위의 그림을 보면 가운데 MQTT Broker 라는 것이 있고 Publish 와 Subscribe 가 있습니다. Publisher 가 Hi 라는 메시지를 보내면 Subscribe 가 Broker 를 통해서 메시지를 받는 것 입니다. 구독하지 않은 토픽과 Subscriber 는 메시지를 받을 수 없습니다.IoT MQTT 활용 예 (http://www.eurotech.com/en/)
이러한 MQTT 오픈소스로 각광을 받고 있는 Mosquitto 를 설치해 보고 테스트를 한 번 해 볼까 합니다. 이 서비스를 설치한 필자의 컴퓨터는 윈7 32비트 입니다.
mosquitto 를 설치 실행하려면 먼저 openSSL 소프트웨어가 설치되어 있어야 합니다. 다음의 URL 에 들어가서 자신의 OS 에 맞는 버전의 OpenSSL 을 다운받아 설치 합니다. 설치 시 DLL 파일을 찾아야 하므로 아래와 같이 설치 옵션을 지정 합니다. 버전은 Light 버전을 설치해 주었습니다.
mosquitto 홈페이지에 들어가서 윈도우용 설치 파일을 다운로드 하고 설치 합니다.
■ Mosquitto
아래의 FTP 에 가서 pthreadVC2.dll 파일을 다운로드 해서 mosquitto 설치 폴더에 복사해 줍니다.
■ pthreadVC2.dll
OpenSSL 설치폴더 하위의 Bin 폴더에서 libeay32.dll, ssleay32.dll 두 개의 DLL 파일을 복사해서 mosquitto 설치 폴더에 넣습니다.
혹시 mosquitto.exe 는 실행이 되는데 mosquitto_sub, mosquitto_pub 가 아래와 같은 에러가 나면서 실행이 안된다면 다음의 프로그램을 설치해 보세요.
■ Visual C++ 2010 SP1 Redistributable Package
■ 설치한 파일들 모음
mosquitto 설치가 끝났습니다. 윈도우 커맨드창으로 들어가서 mosquitto 설치 폴더로 이동하여 다음을 입력하면 mosquitto broker 가 실행 됩니다. 기본 포트는 1883 이며 변경을 원하면 conf 파일에서 설정 가능 합니다.
■ mosquitto broker 실행
mosquitto -v
-v 옵션은 모든 통신과정을 보여주는 옵션 입니다.
실행이 되었습니다. 1883 포트로 실행이 됩니다. 기존의 ipv4 뿐만 아니라 ipv6 으로도 Listen 하고 있습니다.
■ mosquitto subscriber , publisher 실행
mosquitto_sub -h 호스트 -t 토픽명
(ex: mosquitto_sub -h 192.168.0.12 -t /deneb)
mosquitto_pub -h 호스트 -t 토픽명 -m 메시지
(ex: mosquitto_pub -h 192.168.0.12 -t /deneb -m "Hello World!!")
좌측 위 publisher, 좌측 아래 subscriber, 오른쪽 mosquitto Broker 입니다. pub 에서 메시지를 발행하면 broker 에서 받아서 해당 토픽을 subscribe 한 subscriber 들에게 보냅니다. subscriber 인 왼쪽 아래의 창에 전송된 메시지가 표시됨을 볼 수 있습니다.
구글 플레이스토어에서 MQTT Client 라는 앱을 다운로드 받아서 테스트해 보았습니다. MQTT Broker 인 192.168.0.12 의 /deneb 토픽을 subscribe 해 보았습니다. 위와 같이 publisher 의 메시지가 잘 보입니다.
MQTT Client 앱은 subscriber 와 publisher 를 모두 지원 합니다. 이번에는 publisher 로 'hello i am smart phone' 이라는 메시지를 보내 보았습니다.
좌측 하단의 Subscriber 에 hello i am smart phone 이라는 메시지가 표시 됩니다.
앞으로 NodeMCU Lua 를 이용해서 위와 같은 MQTT 서비스를 적용해볼 생각 입니다.
반응형
'ESP8266' 카테고리의 다른 글
NodeMCU Lua 사용해보기 #12 - 인터넷을 통한 릴레이 제어 #1 (7) | 2016.07.26 |
---|---|
NodeMCU Lua 사용해보기 #11 - dweet.io 온습도 데이터 업로드 (0) | 2016.07.19 |
ESP8266 보드 비교 및 선택기준 (0) | 2016.07.10 |
NodeMCU Lua 사용해보기 #10 - ThingSpeak 데이터 업로드 (4) | 2016.07.09 |
NodeMCU Lua 사용해보기 #9 - 우리집 온도와 습도를 웹에서 보기 (3) | 2016.07.07 |