Wiznet 사의 W55RP20 제품에 mqtt 를 C 기반으로 사용할 수 있는 예제에 대한 안내가 이미 존재합니다.
MQTT_Publish_Subscribe_EXAMPLE_AN_V100.pdf
저는 python 을 메인으로 사용하고 있어서 micropython 기반 하의 mqtt 사용 예제를 만들어 보려고 합니다.
위 문서에 따르면 윈도우에다 mosquitto 서버를 설치해서 쉽게! 테스트할 수 있다고 하는데 내부 망에서는 동작을 확인했는데 외부 망에서는 동작을 안하는 문제가 있어서...
고민을 하다가 외부 리눅스 pc에 mosquitto 서버를 설치하고 micropython 기반 mqtt 예제를 작성 및 테스트하였습니다.
우분투 계열 리눅스 pc에서는 다음 명령으로 mosquitto 서버를 설치합니다.
sudo apt install -y mosquitto
설정 파일은 /etc/mosquitto/conf.d/ 에 a.conf 형태로 .conf 확장자를 주어 작성하면 서버 시작시 자동으로 로드합니다.
sudo vim /etc/mosquitto/conf.d/test.conf
저는 설정 파일에 다음 내용을 추가했습니다.
listener 1883 0.0.0.0
allow anonymous true
참고로 윈도우 11에서는 동일한 설정으로 방화벽에서 mosquitto 앱 허용까지 걸었음에도 밖에서 접속이 되질 않았습니다.. 공유기에는 이미 포트포워딩이 지정되어 있었구요. 리눅스는 한방에 되네요. 리눅스 만세!!
서비스 형태로 실행하려면 restart 명령을 주면 설정이 반영됩니다.
sudo systemctl restart mosquitto.service
로그를 직접 보고 싶으면 서비스를 중지시키고 mosquitto 를 실행합니다.
sudo systemctl stop mosquitto.service
mosquitto -c /etc/mosquitto/conf.d/test.conf -v
아주 잘 동작합니다.
완료 소스 설명: WIZnet-ioNIC/WIZnet-ioNIC-micropython-examples: Examples for micropython with W55RP20