ESP8266如何使用MQTT协议连接阿里云平台

本文讲述了作者在使用ESP8266通过AT指令连接阿里云时遇到的问题,通过刷新固件并正确连接USB-TTL下载器和电脑,最终成功发送MQTT指令并得到OK响应的过程。
摘要由CSDN通过智能技术生成

        近期小编在使用esp8266连接阿里云时发现在发送MQTT AT命令集时发现响应一直为ERROE,小编查阅了资料以及很多大佬发布的文章发现需要给esp8266刷固件,在刷新固件后发送MQTT AT指令后响应OK。下图为使用的ESP8266模块图:

在刷新固件时需要用到数据线,小编在刷新固件将esp8266的引脚与USB-TTL下载器的引脚按如下方式连接后,点击START后一直提示等待上电同步。

        引脚连接图(无法下载):

ESP8266USB-TTL
TXRX
RXTX
3V3V3
GGND
EN3V3
D0GND

        提示图:

直到小编看了博主469maker的视频后尝试将数据线与电脑的USB接口与esp8266的type-c接口连接后,采用下图连接方式才下载成功:(需注意使用引脚均为esp8266模块引脚)

esp8266esp8266
D0G
EN3V

        下载图:

等Download变为FINISH则下载成功。然后尝试发送MQTT相关指令,响应OK

详细的操作流程小编参考的是活捉一只xiaozhu-CSDN博客,其中包含有阿里云的相关设置及MQTT的固件及下载软件。

参考文章链接:ESP8266使用MQTT协议通过AT指令连接阿里云物联网平台——保姆级教程——有源码(包括发布与订阅和物模型显示)_at+mqttpub=0-CSDN博客

补:在参考上述内容连接阿里云时发现AT+MQTTCONN=0,"连接域名",1883,1指令返回ERROR再次出错,参考了如下文章得以解决问题(特此补充):【ESP-01S / ESP8266 AT指令连接阿里云物联网平台】_8266透传连接阿里云-CSDN博客

要将ESP8266连接阿里云,需要先创建一个阿里云账户并设置IoT平台,然后在IoT平台中创建一个设备和一个Topic,并为设备生成一个身份验证信息(DeviceSecret)。 然后,使用ESP8266开发板和MQTT库(例如PubSubClient)连接阿里云。下面是连接步骤: 1. 在代码中引用MQTT库和WiFi库。 2. 设置WiFi连接参数并连接到WiFi网络。 3. 设置阿里云MQTT服务器地址和端口号。 4. 设置设备ID和DeviceSecret。 5. 连接MQTT服务器并订阅Topic。 6. 在循环中发送和接收MQTT消息。 下面是一些示例代码,你可以根据自己的情况进行修改: ```C++ #include <ESP8266WiFi.h> #include <PubSubClient.h> // WiFi连接参数 const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; // 阿里云MQTT服务器地址和端口 const char* mqtt_server = "your_server_address"; const int mqtt_port = 1883; // 设备ID和DeviceSecret const char* client_id = "your_device_id"; const char* device_secret = "your_device_secret"; // Topic const char* topic = "/your_topic"; // WiFi客户端 WiFiClient espClient; // MQTT客户端 PubSubClient client(espClient); void setup() { // 启动串口 Serial.begin(115200); // 连接WiFi网络 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("WiFi connected"); // 设置MQTT服务器和端口 client.setServer(mqtt_server, mqtt_port); // 设置MQTT回调函数 client.setCallback(callback); // 连接MQTT服务器 if (!client.connect(client_id, device_secret)) { Serial.println("Failed to connect to MQTT server"); return; } // 订阅Topic client.subscribe(topic); } void loop() { // 发送MQTT消息 client.publish(topic, "Hello from ESP8266"); // 接收MQTT消息 client.loop(); } // MQTT回调函数 void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message received: "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ``` 在你的阿里云控制台中,你可以查看设备的连接状态和收到的消息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值