SPRESENSEで自作MQTTパブリッシャを動作させてみようと下記の「MqttPublisherTest.ino」というプログラムを実行したところ,
次のようなエラーに出くわしました.
mosquitto
New connection from 192.168.1.21 on port 1883.
Client has exceeded timeout, disconnecting.
シリアルモニタ
failed, rc=-4
どうも使っているライブラリが怪しかったので,「SparkfunESP8286WiFi.cpp」というコードの(1)の部分を修正したところ,
上記のエラーは解消することができました,
ただ,今度は次のような別のエラーが表示されるようになりました.
mosquitto
New connection from 192.168.1.21 on port 1883.
New client connected from 192.168.1.21 as ESP8266Client-0 (p2, c1, k15).
Socket error on client ESP8266Client-0, disconnecting.
シリアルモニタ
failed, rc=-1
処理内容を細かくチェックすると,MQTTブローカからの返信を処理していない箇所があったので,
「SparkfunESP8286WiFi.cpp」というコードの(2)の部分を追加したところ,
シリアルモニタのエラーは解消することができました.
mosquitto
New connection from 192.168.1.21 on port 1883.
New client connected from 192.168.1.21 as ESP8266Client-5165 (p2, c1, k15).
Socket error on client ESP8266Client-5165, disconnecting.
シリアルモニタ
なし
引き続き処理内容を細かくチェックすると,コネクションの状態を返すべきところがWiFiの接続状態を返している箇所があったので,
「SparkfunESP8286Client.cpp」というコードの(3)の部分を修正したところ,
ようやく期待通りの動作をさせることができました.