【问题标题】:ESP8266 nodemcu resolving raspberry's local dnsESP8266 nodemcu 解析树莓派的本地 dns
【发布时间】:2016-10-22 15:35:23
【问题描述】:

我在通过mqtt 连接覆盆子上的 esp 模块时遇到问题。经过大量搜索后,我想我现在有点迷路了。

那么问题来了

我已将树莓派的本地 dns 设置为 cubex.local,我按照此处的说明进行操作:

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

这方面似乎一切正常...
我可以使用本地网络上的cubex.local 来让 ssh 和 ftp 访问树莓派,但是当涉及到 esp 试图解析该地址时,它总是失败。

这是在 esp 上运行的代码:

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 代理。请稍候...
DNS重试1!
DNS 重试 2!
DNS重试3!
DNS 重试 4!
DNS 失败!
在 cubex.local 连接到 MQTT 代理。请稍候...
DNS重试1!
DNS 重试 2!
DNS重试3!
DNS 重试 4!
DNS 失败!
在 cubex.local 连接到 MQTT 代理。请稍候...
DNS重试1!
DNS 重试 2!
DNS重试3!
DNS 重试 4!
域名解析失败!

主机变量保存cubex.local,端口为1883。
当我使用覆盆子的 IP 192.168.0.3 时,一切正常。
我仍然不明白为什么它总是无法解析地址。

【问题讨论】:

  • 您是否尝试使用 IP 地址和“域名”编辑您的 /etc/hosts 文件?
  • 嗯,是的,当从除 esp 之外的任何其他地方访问它时,该域就像一个魅力,这主要让我相信覆盆子在这方面是可以的

标签: dns raspberry-pi2 esp8266 nodemcu mdns


【解决方案1】:

你的主机名cubex.local是通过mDNS注册的,但是mqtt查询DNS来解析主机名。

一种选择是使用 DNS 代理到 mDNS,例如 mdns-proxy,另一种选择是修改 nodemcu 以直接查询 mDNS。

【讨论】:

    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 2019-07-02
    • 2014-08-06
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多