mosquitto broker 연결관련 질문드립니다

20.06.14 19:58 작성 조회수 237

0

선생님 안녕하세요? 좋은강의 감사드립니다

mosquitto broker 연결이 되지않아 문의드립니다

1) 와이파이 연결은 성공했습니다

2) 보드레이트 115200에 맞게 했습니다

3) 방화벽 해제했습니다

4) 아두이노 코드는 동일하게 작성해두었습니다 (ip주소 제외)

현재 아래와 같이 Wi-Fi Connected 까지는 성공했으나

MQTT Broker Connected 메세지가 출력되지 않습니다

mosquitto 서버 구동한 cmd창에는 신호가 오는듯한데 구독한sub (dht11, led)에는 메세지가 전혀 출력되지않아

방법을 찾다가 선생님께 여쭤보게 되었습니다

혹시 제가 놓친부분이 있을까요?ㅠㅠ

---------------------------------------------(실제 화면)---------------------------------------------

답변 2

·

답변을 작성해보세요.

1

*답신이 늦었습니다.

일단 다시 한번 처음부터 해보세요^^
PC와 WeMos(아두이노)가 동일한 WiFi를 접속해야됩니다.

1. DHT11 센서가 잘 연결되어 있으신지 확인하시고

-- WeMos 소스코드에 

char ssid[]="WiFi AP";

char password[]="비밀번호";

byte server1[]={172, 30, 1, 15}; // -> 여기를 MQTT Server IP 주소로 기입하시고 

int port=1883; //  -> 여기를 MQTT Server PORT 기입하시고 

//MQTT Server 접속

  if(mqttClient.connect("Arduino")){

       Serial.println("MQTT Broker Connected!");

       mqttClient.subscribe("led"); //--> 여기에 이렇게 되어있으시면  led 구독자도 PC에 실행을 해두시구요

  }

void loop() {

  mqttClient.loop();

  float tmp, hum;

  int err=dht11.read(hum,tmp);

  if(err==0){

      char message[64]="", pTmpBuf[50], pHumBuf[50];

      dtostrf(tmp, 5,2, pTmpBuf);

      dtostrf(hum, 5,2, pHumBuf);

      sprintf(message, "{\"tmp\":%s,\"hum\":%s}", pTmpBuf, pHumBuf);   

      mqttClient.publish("dht11", message); // -> 여기에서PC쪽MQTT Server dht11 수신자에 데이터가 전송이 됩니다.

  }

  delay(3000); // 3초

}


-- PC쪽에는

1. MQTT 서버 구동 / 
2. led , dht11  2개의 구독자(sub)를 실행시켜두시면 됩니다.

WeMos에 업로드하시고->시리얼 모니터 여시고->WeMos쪽 검정 reset 버튼을 눌러서 WiFi접속 여부, MQTT접속
여부를 다시 확인해보시기 바랍니다.

접속이 않되시면 다시한번 문의주세요~~

0

Tammy님의 프로필

Tammy

질문자

2020.06.17

선생님 성공했습니다! 감사합니다~!

코드는 이상이 없었지만 아래 방법들을 반복해서 하다보니 실행이 딱 되었습니다

다른분들께 도움이 되길 바라면서 적어봅니다

1. PubSubClient 라이브러리 버전 선생님과 똑같이 맞춤 (2.7.0)

2. 아두이노 연결 다시 (선은 느슨하지 않게 제대로 꼽혀있는지 - 특히 데이터 연결선 등등)

 -> 저는 빵판도 교체해보고, 센서쪽 제대로 된건지 확인 계속 했습니다

3. 방화벽 열어둠

4. 설정 바꿀때마다 컴퓨터 다시시작하고 MQTT Broker 다시 구동, arduino 코드 다시업로드 

감사합니다 선생님~!