[英]Attempting MQTT connection...failed, rc=-2 try again in 5 seconds problem
一個月前,我創建了一個代碼並將其上傳到 NodeMCU(ESP8266),其中 NodeMCU 與 aREST.io MQTT 代理建立連接。 它工作正常。
代碼:
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <aREST.h>
WiFiClient espClient;
PubSubClient client(espClient);
aREST rest = aREST(client);
char* key = "the api key in aREST account";
const char* ssid = "SSID";
const char* password = "Pass";
#define trigger 5
#define echo 4
float distance;
void callback(char* topic, byte* payload, unsigned int length);
void setup(void)
{
Serial.begin(115200);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
rest.setKey(key);
client.setCallback(callback);
rest.variable("distance",&distance);
rest.set_name("esp8266");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop() {
rest.handle(client);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
int timin = pulseIn(echo,HIGH);
distance = (171.5*((timin)))*10E-5;
delay(60);
rest.publish(client, "distance", distance, 60000);
}
void callback(char* topic, byte* payload, unsigned int length) {
rest.handle_callback(client, topic, payload, length);
}
目前,ESP8266 無法連接到代理。 它在串行監視器上連接到 WiFi 后打印以下消息:
“嘗試 MQTT 連接...失敗,rc=-2 5 秒后重試”
我檢查了 API 密鑰大約 5 次。 這是正確的
我用wireshark分析了.network,得到如下信息:
如圖所示,ESP8266 向 aREST 代理發送 CONNECT 數據包。 代理使用 CONNACK 數據包進行響應。 每 5 秒重復一次 CONNECT 數據包中的內容:
CONNACK 的內容:
我認為問題可能是經紀人倒閉了。
您的代碼看起來像是 ArduionIDE 示例中的“ESP8266_cloud.ino”代碼的修改版本。 我有一個 ESP8266 D1 並使用我自己的來自 aREST.io 的 API 插件運行該示例代碼,並得到與您相同的錯誤消息。
運行示例代碼“mqtt_esp8266.ino”,我看到我的板與代理的交互,所以我沒有理由相信 aREST 代理之外存在一般硬件或連接問題。
深入研究 aREST.h,MQTT 代理/服務器是“mqtt.arest.io”
檢查https://downforeveryoneorjustme.com/mqtt.arest.io ,他們說它已關閉。
抱歉,這沒有更多幫助:/
我嘗試聯系開發人員/aREST Instagram 頁面,但尚未收到回復。 會及時通知您 - 請同時更新您的發現!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.