使用ESP8266 Node MCU Arduino模式烧写程序,串口调试报错
MQTT connect failed, error code:2
我查阅了很多资料,大家可以参考一下这一个讨论
我查阅了<PubSubClient.h>文件
// MQTT_MAX_TRANSFER_SIZE : limit how much data is passed to the network client // in each write call. Needed for the Arduino Wifi Shield. Leave undefined to // pass the entire MQTT packet in each write call. //#define MQTT_MAX_TRANSFER_SIZE 80 // Possible values for client.state() #define MQTT_CONNECTION_TIMEOUT -4 #define MQTT_CONNECTION_LOST -3 #define MQTT_CONNECT_FAILED -2 #define MQTT_DISCONNECTED -1 #define MQTT_CONNECTED 0 #define MQTT_CONNECT_BAD_PROTOCOL 1 #define MQTT_CONNECT_BAD_CLIENT_ID 2 #define MQTT_CONNECT_UNAVAILABLE 3 #define MQTT_CONNECT_BAD_CREDENTIALS 4 #define MQTT_CONNECT_UNAUTHORIZED 5然后映射到MQTT_CONNECT_BAD_CLIENT_ID 这个问题 参考
我昨天下午已经联系了阿里的工程师,最后解决了。 mqtt的密码错误这个坑我已经在第一轮就踩过了,的确解释的不清楚,已经反馈了阿里。 那边工程师给出的答复是: 工程师 97851 号 : 你好, 返回值2表示客户端标识符不正确, -4表示用户名或者密码错误。 请做以下检查: 1、先检查一下PubSubClient.h文件中定义的 MQTT_MAX_PACKET_SIZE的值, 最好要大于1024, MQTT_KEEPALIVE 大于60; 2、检查一下你的签名和接入参数的设置,可以参考文档 https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.6.650.3820619bBWPshh 。 我仔细检查了一遍才发现我的c盘还有一个PubSubClient.h文件,这个文件没有改…我只修改了arduino盘下的文件。结果导致一遍遍的被阿里服务器拒绝…真是服了… 谢谢你的答复,咱们替其他同学先踩踩坑吧~ 摘自jpolo的回答
修改库文件<PubSubClient.h>的内容 之后就成功了! MQTT connect succeed!
