안녕하세요.
Jetson Nano 테스트 요청받은 것이 있어서 간단하게 docker로 MQTT를 설치해서 broker 서버로 가능한지 테스트해 보는 것으로 하였습니다.
간단하게 가능하구나 확인 삼아 보시면 도움이 될 것으로 생각됩니다. 사전작업으로 Jetson Nano에 Ub
1. 프로그램 설치
- 기본적으로 Jetson Nano에 Ubuntu 18.04 버전이 설치되어 있고, apt update와 apt upgrade를 했다는 전제하에 추가 진행사항이라고 보시면 됩니다.
- 위의 내용 진행되었다면 docker 기본버전이 같이 설치되어 있습니다. 이제 간단하게 컨테이너 하나를 생성합니다.
- 컨테이너 하나를 생성할 때 옵션에 ubuntu20.04 버전을 기본 OS로 하고 외부와 통신할 수 있도록 포트를 1883으로 외부, 내부 포트로 설정을 합니다. 알다시피 mosquitto 기본 설정이 1883으로 되어 있습니다.
nano@snano:~$ sudo docker run -d -it -p 1883:1883 --name mosquitto_ubuntu ubuntu:20.04 /bin/bash
- 백그라운드 모드로 컨테이너 안에서 mosquitto 필요한 패키지를 설치를 설치합니다.
nano@snano:~$ sudo docker exec -it mosquitto_ubuntu /bin/bash
/# sudo apt update
/# apt update
/# apt upgrade
/# apt update
/# apt install -y mosquitto systemctl pip
/# apt install -y mosquitto-clients
/# pip install paho-mqtt
- mosquitto broker 시작합니다.
/etc/init.d/mosquitto stop
/etc/init.d/mosquitto start
- mosquitto 가 작동하고 있는지 포트 상태로 확인합니다.
/# netstat -tulpn | grep LISTEN
2. mosquitto 구독과 발행하기
- 'topic/sensor1'을 토픽으로 해서 구독하기를 실행합니다.
/# mosquitto_sub -v -t 'topic/sensor1'
- 발행은 Windows 프로그램으로도 할 수 있는데 터미널창을 하나 더 열어서 백그라운드로 컨테이너에 접속합니다.
nano@snano:~$ sudo docker exec -it mosquitto_ubuntu /bin/bash
- 토픽옵션(-t)과 메시지 옵션(-m)을 사용해서 메시지를 발행합니다. 그러면 발행한 메시지가 구독한 터미널창에 나타나는 것을 알 수 있습니다.
/# mosquitto_pub -v -t 'topic/sensor1' -m ‘s1 value 100’
3. Windows에서 확인
- MQTT를 제공해 주는 Client 프로그램을 설치합니다. 내용에서는 MQTT Explorer를 사용했습니다.
- 간단한 Name(별칭)과 Jetson Nano의 IP 주소를 입력하고 Connect를 누릅니다.
- Jetson Nano 터미널에서 토픽을 변경해서 구독 설정을 다시 해봅니다.
/# mosquitto_sub -v -t 'topic/sensors'
- Windows MQTT Explorer 프로그램에서 Publish 메뉴에 topic을 ‘topic/sensors’으로 동일하게 해서 raw를 선택 후에 값을 넣어서 PUBLISH 버튼을 누르면 구독자(subscriber)에 전달되고, 현재 받은 메시지를 확인할 수 있습니다.
참고로 호스트(IP)를 지정해서 보내고 싶은 경우는 옵션 (-h) 사용하면 됩니다.
mosquitto_sub -h 호스트 -t 토픽명
ex) mosquitto_sub -h 192.168.0.12 -t /topic/data1
mosquitto_pub -h 호스트 -t 토픽명 -m 메시지
ex) mosquitto_pub -h 192.168.0.12 -t /topic/data1 -m ‘Messge 1’
<참고 사이트>
https://deneb21.tistory.com/416
'Embedded' 카테고리의 다른 글
임베디드 프로그래밍에서 알아야 할 volatile 키워드 (0) | 2025.01.06 |
---|---|
[Jetson Nano] Jetson Nano에 OpenCV 빌드 및 설치 확인해 보기 (2) | 2023.10.18 |