2. 01.
[ IDE ]
Visual Studio
[ Target Machine ]
Desktop(Ubuntu) ꓫ 4대
(Time based filter broker, Urgent broker, System Dashboard, Sensors Dashboard)
Raspberry pi 3 ꓫ 2대
Sensors ꓫ 2대
(불꽃감지센서, 가스 감지, 진동, 카메라, 온도, 습도)
[ Browser ]
Chrome
사전 준비
3. 01.
사전 준비
▪ Source - mosquitto-1.4.14
▪ Ubuntu 16.04 LTS
▪ http://releases.ubuntu.com/16.04/
사전 준비
4. Urgent Broker02.
git 설치 및 Urgent Broker 다운
# sudo apt-get install git
$ git clone https://github.com/MQTT-HILIGHT/Mosquitto-Extention.git
컴파일에 필요한 패키지 설치
# sudo apt-get install uuid uuid-dev uuid-runtime uuid uuidcdef libwebsockets-dev openssl
build-essential libc-ares-dev libssl-dev libcurl4-openssl-dev libmysqlclient-dev
5. Urgent Broker02.
Urgent Broker 컴파일
$ cd Mosquitto-Extention/
$ make all WITH_TLS=no WITH_SRV=no REAL_WITH_MEMORY_TRACKING=no WITH_WEBSOCKETS=yes
$ cd src/
$ cc mosquitto.o bridge.o conf.o context.o database.o logging.o loop.o memory_mosq.o persist.o net.o
net_mosq.o read_handle.o read_handle_client.o read_handle_server.o read_handle_shared.o security.o
security_default.o send_client_mosq.o send_mosq.o send_server.o service.o subs.o sys_tree.o time_mosq.o
tls_mosq.o util_mosq.o websockets.o will_mosq.o -o mosquitto -ldl -lm -lrt -Wl,--dynamic-list=linker.syms -
luuid -lwebsockets -lpthread
$ ./mosquitto
-> 오브젝트 파일 정리
$ cd Mosquitto-Extention/
$ make clean
6. Urgent Broker Client03.
환경설정 (한 번만 하면 됨)
$ cd Mosquitto-Extention/
$ sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
$ sudo ln -s /usr/local/lib/libpthread.so.0 /usr/lib/libpthread.so.0
구독자 컴파일
$ cd Mosquitto-Extention/
$ cd client/
$ ./mosquitto_sub –t "#" –h "localhost“
발행자 컴파일 (port 1883 은 노말, 1884는 긴급)
$ cd Mosquitto-Extention/
$ cd client/
$ ./mosquitto_pub -t "topic" -h "localhost" -p "1883" -m "Hello~“
7. Time Filter Broker04.
git 설치 및 Time Filter Broker 다운
# sudo apt-get install git
$ git clone https://github.com/MQTT-HILIGHT/Mosquitto_Time_based_filter.git
컴파일에 필요한 패키지 설치
# sudo apt-get install uuid uuid-dev uuid-runtime uuid uuidcdef libwebsockets-dev openssl
build-essential libc-ares-dev libssl-dev libcurl4-openssl-dev libmysqlclient-dev
8. Time Filter Broker04.
Time Filter Broker 컴파일
$ cd Mosquitto_Time_based_filter/
$ make all WITH_SRV=no REAL_WITH_MEMORY_TRACKING=no WITH_WEBSOCKETS=yes
$ cd src/
$ ./mosquitto
-> 오브젝트 파일 정리
$ cd Mosquitto-Extention/
$ make clean
9. Time Filter Broker Client05.
환경설정 (한 번만 하면 됨)
$ cd Mosquitto-Extention/
$ sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
$ sudo ln -s /usr/local/lib/libpthread.so.0 /usr/lib/libpthread.so.0
구독자 컴파일
$ cd Mosquitto-Extention/
$ cd client/
$ ./mosquitto_sub –t "#" –h "localhost“ –F 100
발행자 컴파일
$ cd Mosquitto-Extention/
$ cd client/
$ ./mosquitto_pub -t "topic" -h "localhost" -p "1883" -m "Hello~“
10. 06.
전처리 설명
1. c-ares (데비안 기반 시스템에서 libc-ares-dev) - 사용 안함 make WITH_SRV=no
2. libuuid (uuid-dev) - 사용 중지 make WITH_UUID=no
3. libwebsockets (libwebsockets-dev) - 사용 가능 make WITH_WEBSOCKETS=yes
4. openssl (데비안 기반 시스템에서는 libssl-dev) - 사용 안함 make WITH_TLS=no
5. xsltproc (데비안 기반 시스템에서는 xsltproc과 docbook-xsl) - 자식 소스에서 빌드 할 때만
필요합니다 - 사용 안 함 make WITH_DOCS=no
Appendix