2016-09-12 43 views
0

WindowsマシンにMosquittoをインストールしました。これはMQTT v3.1ブローカーです(最近mosquitto.orgからダウンロードしました)。ESP8266からMQTTブローカーに接続できません

私はESP8266からブローカに接続しようとしていますが、これまでブローカに接続できませんでした。パブリックブローカーに接続できますが、同じWi-Fiネットワークに接続されているマシンにインストールされているブローカーには接続できません。

私はbuild-nodemcuサービスを使用してファームウェアを構築し、masterブランチを使用しました。 MQTT v3.1.1があると思います。

私はこれを見つけたquestionと私は同じ状況に遭遇したと思います。問題の原因が明らかにされているにもかかわらず、どのように問題を取り除くかについては言及されていない。

この問題を解決する方法を教えてください。

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" エラー

UPDATEここで[13-09-2016]
は、私が使用していたコードです。

私はブローカーをMQTTLensクロム拡張でテストし、ブローカーはうまく動作します。

答えて

1

申し訳ありませんが、コメントは長すぎます。

NodeMCU MQTT docsSO question you referencedの両方で、MQTT 3.1が必要であることがわかります。 ,3.1で十分ではない。

Mosquittoウェブサイトは

エクリプスMosquitto™は、オープンソースであると述べMQTTプロトコルバージョン3.1および3.1.1を実装するメッセージ・ブローカ を(EPL/EDLはライセンス)。

しかし、上記の声明に照らして真実ではないと思われるブローカーが3.1であると主張します。

質問を詳細に更新する場合は、この回答を更新します。あなたはコードもエラーメッセージも与えていません。あなたのNodeMCU/Luaコードが公的なブローカーとうまく動作するという事実は、あなたのローカルブローカーに対してかなり強いケースです。

+0

さらなる情報で質問を更新しないことを怠っていて申し訳ありません。とにかく、コマンドラインでmosquittoを実行した直後、バージョンは3.1と表示されます。だから私はそれが3.1だと言ったのです。あなたが指摘したように、蚊が両方のバージョンを実装していることは既に見ていますが、コンソールウィンドウには表示されません。 3.1のみを表示します。失敗した理由は常に-5です。私は使用されているコードで質問を更新します。 –

+0

質問をソースコードで更新しました。 –

+0

Mosquittoがインストールされているコンピュータにpingできないことがわかりました。 Wi-Fiネットワーク設定に問題があるようです。 この質問はESPに関連していないため終了できません。 これを読んで答えようとするあなたの時間を無駄にして本当に申し訳ありません。 ( –

関連する問題