ESP8266に基づくGeekcreit開発ボードから、MQTTクライアントを構築しようとしています。Lua MQTT publishはスクリプトからは機能しませんが、ESP8266の端末から動作します
PuTTYを使用してシリアル接続を介してコマンドを実行すると、すべて正常に動作し、メッセージは正常にパブリッシュされ、Raspberry Piで実行されているブローカーによって取得されます。
これをLuaスクリプトに追加して、init.lua経由で実行しようとしていますが、接続コールバックが発生しても公開は行われません。
--test.lua
print("Setting up WIFI...")
wifi.setmode(wifi.STATION)
--modify according your wireless router settings
wifi.sta.config("ap","pass")
wifi.sta.connect()
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip()== nil then
print("IP unavaiable, Waiting...")
else
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())
-- initiate the mqtt client and set keepalive timer to 120sec
m = mqtt.Client("myNodeName", 120, "", "") -- blank user and password
m:on("connect", function() print("connected") end)
m:connect("*.*.*.*") -- my local broker's IP
m:publish("topic/test", "7.2", 0, 0) -- no QoS, not retained
end
end)
私がアップロードしEsplorerを使用して、そのスクリプトを実行している、と私は言ったように、私は正常に「接続」というメッセージが表示さが、ないメッセージがブローカーに到着していないのです。
私は
m:publish("topic/test", "7.2", 0, 0) -- no QoS, not retained
を取るとEsplorerのコマンドバーの「送信」から、それを発射した場合、ブローカはメッセージを受け取ります。
私はそれに苦しんでいます。どんな援助も感謝します
ありがとうございます。なぜ私は同じコールバックに出版を置くとは思わなかったのですか? – user3012475