2016-09-12 5 views
0

Я установил Mosquitto на машину для Windows, и это брокер MQTT v3.1 (скачанный недавно с сайта mosquitto.org).Невозможно подключиться к брокеру MQTT от ESP8266

Я пытаюсь подключиться к брокеру от ESP8266, и до сих пор мне не удалось связаться с брокером. Я могу подключиться к публичному брокеру, но не к брокеру, установленному на моей машине, подключенному к той же сети Wi-Fi.

Я построил прошивку, используя сервис build-nodemcu и использовал основную ветку. Я думаю, что он имеет MQTT v3.1.1.

Я наткнулся на это question, и я думаю, что столкнулся с той же ситуацией. Хотя причина вопроса была дана, как избавиться от этой проблемы не упоминалось.

Не могли бы вы предложить, как избавиться от этой проблемы?

UPDATE [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" ошибка.

Я проверил брокер с расширением chrome MQTTLens, и брокер прекрасно работает.

ответ

1

Извините, слишком долго для комментария.

И NodeMCU MQTT docs, и SO question you referenced дают понять, что вам необходим MQTT 3.1. , 3.1 не хватит.

Сайт Mosquitto утверждает, что

Затмение Mosquitto ™ является открытым исходным кодом (EPL/EDL лицензионной) брокера сообщений , реализующих версии протокола MQTT 3.1 и 3.1.1.

Тем не менее, вы утверждаете, что ваш брокер должен быть 3.1, который звучит не как вся правда в свете вышеприведенного утверждения.

Я обновлю этот ответ, если вы обновите свой вопрос более подробно. Вы не получили ни кода, ни сообщений об ошибках. Тот факт, что ваш код NodeMCU/Lua отлично работает с публичными брокерами, является довольно сильным аргументом против вашего местного брокера.

+0

Извините за то, что вы ленивы, чтобы не обновлять вопрос дополнительной информацией. В любом случае, когда я только что выполнил mosquitto в командной строке, он показывает версию как 3.1. Вот почему я сказал, что это 3.1. Я уже видел, что москит реализует обе версии, как вы указали, но не отображается в окне консоли. Это показывает только 3.1. Неудачная причина всегда -5. Я буду обновлять вопрос с использованием кода. –

+0

Я обновил вопрос с помощью исходного кода. –

+0

Я только что узнал, что не могу проверить компьютер, установленный Mosquitto. Кажется, проблема связана с конфигурацией сети Wi-Fi. Этот вопрос можно закрыть, так как он не связан с ESP. Мне очень жаль, что тратила время на то, что прочитала это и попыталась ответить. :( –

Смежные вопросы