인프런 커뮤니티 질문&답변

kgc님의 프로필 이미지
kgc

작성한 질문수

사물인터넷 통신은 내 손에 (Arduino, MQTT, Nodejs, MongoDB, Android,VS Code)

아두이노와 mosquitto 연결 시 오류

해결된 질문

작성

·

5.7K

0

현재 MQTT Server 를 설치하여 아두이노와 연결 테스팅을 진행 중인데,

WiFI 연결 후 MQTT 와의 연결 시 계속해서 연결 실패라는 문구가 발생합니다.

* Attempting MQTT connection...failed, rc=-2 try again in 5 seconds

cmd 창 자체에서 sub 와 pub 로 했을 때는 무난히 동작하였지만 이 이후가 진행되지 않습니다.

어떤 것이 문제인 것 일까요?

답변 5

6

kgc님의 프로필 이미지
kgc
질문자

먼저 바쁘신 와중에도 답변해주셔서 감사드립니다.

일단 문제는 해결하였습니다. 현재 강의에 사용하는 버전과 상이하여 몇 가지 설정을 추가적으로 해야됐던 것 같습니다.

arduino 와 mqtt.fx 연결 모두 확인 완료하여 무사히 다음 단계를 진행 중 입니다.

해결한 방안에 대해 아래와 같이 공유 드립니다.

[ 실습 환경 버전 ]

1. windows 10 2004 19041.685

2. mosquitto 2.0.0

3. mqttfx-1,7,1

4. PubSubClient 2.8.0

[ 해결 방법 ]

1. mosquitto.conf 파일 내부 맨 하단에 아래와 같은 설정 추가

bind_address [server IP]

allow_anonymous true

2. windows 10 방화벽 인바운드 규칙 추가(1883 포트)

3. mosquitto 서비스 재시작

※ 추가적으로 WiFi 연결 시 5G 대역대는 연결이 안되는 것으로 확인되었습니다. 2.4G 대역대로 연결하는 것이 좋을 듯 합니다.

mosquitto_sub 명령에서 연결거부 가 발생해서 

명령어 옵션에 -h [ip 주소] 를 추가 하였습니다.

ifconfig 에서 나온 그 주소 입니다.

mosquitto_pub 도 마찬가지 입니다.

mosquitto_sub -h 192.168.0.10 -d -t outTopic

192.168.0.10 <- 이 IP는 아두이노에게 할당된 IP 맞나요?

추가로 

C:\Program Files\mosquitto>mosquitto_sub -h 192.168.0.10 -d -t outTopic

Error: 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다.


이렇게 오류가 나오는데 혹시 어떻게 해결하셨는지 질문 드립니다.

0

저도 연결이 안되서 여러경로를 통해 알아봤네요...

Mosquitto 초기설정으로는 동일 기기내에서만 접속이 되기때문에 외부기기에서 접속하기 위해서 

Mosquitto 설치 디렉토리에 있는 mosquitto.conf 파일의 내용을 다음과 같이 수정하여야 합니다.

 

1)mosquitto.conf 메모장으로 열고 아래와 같이 수정하세요

listener 1883

allow_anonymous true

2) 서비스 -> mosquitto Broker 재시작

3) 인바운드 : 1883 포트 추가

* cmd 창 관리자모드로 실행후 : mosquitto -c mosquitto.conf -v  

브로커 서버 동작유무를 확인해 볼수 있어요.

0

휴대폰의 핫스팟을 사용하여 통신하고 싶은데 ip주소가 맞지않아서 연결실패라는 문구가 뜹니다.

 Attempting MQTT connection...failed, rc=-2 try again in 5 seconds 

핫스팟을 이용할 때, 아이피주소를 어디서 가져와야 할까요?

0

박매일님의 프로필 이미지
박매일
지식공유자

네~ 소중한 정보주셔서 감사합니다.

0

박매일님의 프로필 이미지
박매일
지식공유자

아두이노에서 먼저 WIFI 접속이 되면 소스코드에 MQTT Server  IP정보가 잘 입력이 되어있다면 이상 없이 접속이 되실건데요?

접속이 않되시면  PC의 방화벽을 해제하시고 다시한번 접속을 해보시기 바랍니다. MQTT Server는 PC가 켜지면 자동으로 서비스가 실행이 되니 제어판ㅡ관리도구ㅡ서비스에서 mosquitto 서버가 잘 구동(start)되어 있는지도 확인해보시구요.

아두이노(wemos) 시리얼 모니터창을 열고 아두이노 리셋버튼(검정색버튼)을 클릭하고 접속상태 메세지를 확인해보세요^^ 

kgc님의 프로필 이미지
kgc

작성한 질문수

질문하기