2016-06-21 12 views
-1

mqtt을 통해 라즈베리에 esp 모듈을 연결하는 데 문제가 있습니다. 많은 수색 후에 나는 내가 지금 약간 잃어버린다고 생각한다.ESP8266 nodemcu 라즈베리 로컬 DNS 확인

그래서 여기에 문제

내 라즈베리의 로컬 DNS가 같은 cubex.local 작동하도록 설정을 가지고있어, 여기의 지시에 따라 :

http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/

모든이 끝에서 잘 동작하는 것 ...
로컬 네트워크에서을 사용하여 라즈베리에 대한 ssh 및 ftp 액세스 권한을 가질 수 있지만 그 주소를 확인하려고 시도 할 때 실패 할 수 있습니다.

function broker_connect() 
m = mqtt.Client(ID, 120, BRUSER, BRPWD) 
m:on("message", on_message_received) 
m:on("connect", on_connect) 
m:on("offline", on_mqqt_offline) 

tmr.alarm(0, 1000, 1,function() 
print("Connecting to MQTT broker at "..HOST..". Please wait...") 
m:connect(HOST , PORT, 0) 
end) 

출력 :

cubex.local에서 MQTT 브로커에 연결

이는 ESP에서 실행되는 코드입니다. 기다려주십시오 ...
DNS 재시도 1!
DNS 재 시도 2!
DNS 재시도 3!
DNS 재시도 4!
DNS가 실패했습니다!
cubex.local에서 MQTT broker에 연결 중입니다. 기다려주십시오 ...
DNS 재시도 1!
DNS 재 시도 2!
DNS 재시도 3!
DNS 재시도 4!
DNS가 실패했습니다!
cubex.local에서 MQTT broker에 연결 중입니다. 기다려주십시오 ...
DNS 재시도 1!
DNS 재 시도 2!
DNS 재시도 3!
DNS 재시도 4!
DNS가 실패했습니다!

은 호스트 변수는 cubex.local를 보유하고 내가 192.168.0.3 모든 것이 잘 작동되는 라즈베리의 IP를 사용하는 경우 포트는 1883
입니다.
아직도 주소를 확인하지 못하는 이유를 이해하지 못합니다.

+0

IP 주소와 "도메인 이름"을 사용하여/etc/hosts 파일을 편집하려고 했습니까? –

+0

글쎄요, 도메인은 매력처럼 작동합니다. 그 외에는 esp를 제외한 다른 곳에서 액세스 할 수 있습니다. 그 이유는 주로 라스베리가 그 끝에서 괜찮다고 믿게합니다. –

답변

1

호스트 이름 cubex.local은 mDNS를 통해 등록되지만 mqtt는 DNS에 쿼리하여 호스트 이름을 확인합니다.

하나의 옵션은과 같은 mDNS에 DNS 프록시를 사용할 수 있으며 다른 하나는 nodemcu를 수정하여 mDNS를 직접 쿼리 할 수 ​​있습니다.