【发布时间】:2017-01-20 06:30:33
【问题描述】:
我在我的 windows 机器上安装了 Mosquitto,它是一个 MQTT v3.1 代理(最近从 mosquitto.org 下载)。
我正在尝试从 ESP8266 连接到代理,但到目前为止我还无法连接到代理。我可以连接到公共代理,但不能连接到我的机器上安装的连接到同一个 wifi 网络的代理。
我已经使用 build-nodemcu 服务构建了固件并使用了 master 分支。我认为它有 MQTT v3.1.1。
我遇到了这个question,我想我也遇到了同样的情况。虽然已经给出了问题的原因,但是没有提到如何解决这个问题。
您能建议如何解决这个问题吗?
更新 [13-09-2016]
这是我正在使用的代码:
sensorID = "sen_001"
tgtHost = "192.168.8.101"
tgtPort = "1883"
mqttUserID = "admin"
mqttPass = "word"
mqttTimeOut = 120
topicQueue = "/security"
WIFI_SSID = "Lakmal 4G"
WIFI_PASSWORD = "TF18BNY3M"
WIFI_SIGNAL_MODE = wifi.PHYMODE_N
ESP8266_IP=""
ESP8266_NETMASK=""
ESP8266_GATEWAY=""
if wifi.sta.getip() == nil then
wifi.setmode(wifi.STATION)
wifi.setphymode(WIFI_SIGNAL_MODE)
wifi.sta.config(WIFI_SSID, WIFI_PASSWORD)
wifi.sta.connect()
end
if ESP8266_IP ~= "" then
wifi.sta.setip({ip=ESP8266_IP,netmask=ESP8266_NETMASK,gateway=ESP8266_GATEWAY})
end
print("IP: " .. wifi.sta.getip())
m = mqtt.Client(sensorID, mqttTimeOut, mqttUserID, mqttPass, 1)
m:lwt("/lwt", "offline", 0, 0)
m:on("connect", function(client) print ("connected") end)
m:on("offline", function(client) print ("offline") end)
m:on("message", function(client, topic, data)
print(topic .. ":" )
if data ~= nil then
print(data)
end
end)
m:connect(tgtHost, tgtPort, 0, function(client) print ("connected") end,
function(client, reason) print("failed reason: "..reason) end)
我总是收到“失败原因:-5”错误。
我用 MQTTLens chrome 扩展测试了代理,代理运行良好。
【问题讨论】:
标签: lua mqtt esp8266 mosquitto nodemcu