ESP8266-01S+MQTT+阿里云数据传输

一、硬件准备

  1. ESP8266-01S模块一个

  1. USB转TTL一个

  1. 软件资料在文章最后

二、ESP8266-01S固件的烧录

打开百度云盘资料里的文件夹中的"ESP8266_固件烧录"文件夹

  1. 打开这个文件夹

  1. 打开该文件夹中的exe文件即可,然后打开ESP8266 DownloadTool

3.点击图中箭头所指按钮,选择文件夹中的MQTT固件

4.硬件接线

ESP8266的TX----->TTL板的RX

ESP8266的RX----->TTL板的TX

ESP8266的3V3----->TTL板的3V3

ESP8266的GND----->TTL板的GND

ESP8266的GPIO0(IO0)----->TTL板的GND

5.开始烧录固件

按照如下配置,选择好对应的串口号(您的串口号与笔者的可能不一样):

开始烧录:

烧录完成:

至此,烧录工作全部完成

6.测试是否烧录成功

将GPIO0悬空

调式强烈推荐安信可串口调式助手(发送字符串一定要勾选"发送新行")

发送字符串 AT+GMR 如果模块返回如下数据,则表示固件烧录成功

如果未成功,请您重复上述的烧录工作。


三、阿里云平台的配置

  1. 打开阿里云网站

网址:阿里云-为了无法计算的价值 (aliyun.com)

如果您未注册账号,请您先注册账号,这里不做过多赘述

2.打开物联网平台

最后得到如下页面

3.添加产品

按如下就行配置

添加设备

然后点击确定,最近点击完成

开始进行功能定义

至此阿里云配置完成


四、ESP8266-01S连接阿里云

  1. 获取阿里云配置信息

2.打开阿里云物联平台配置

3.打开安信可串口助手进行调式

依次发送以下命令

AT+RST
AT+CWMODE=3
AT+CWJAP="wifi","1234567890"  //这里请填写自己WIFI对应的信息

发送命令

AT+MQTTUSERCFG=0,1,"NULL","ESP8266-01S&a1YqApika7X","5CA9602ED56E8F0197AC9B461DC048DE6C606757",0,0,""//这里的ESP8266-01S&a1YqApika7X与5CA9602ED56E8F0197AC9B461DC048DE6C606757请改成自己对应的信息,其中ESP8266-01S&a1YqApika7X为UserName,5CA9602ED56E8F0197AC9B461DC048DE6C606757为Password

发送命令

AT+MQTTCLIENTID=0,"002211|securemode=3\,signmethod=hmacsha1\,timestamp=112200|"
//这里一定在要第二个和第三个逗号前面加上符号 \ 
举例:如我复制来的字符串为:
002211|securemode=3,signmethod=hmacsha1,timestamp=112200|
则需要发送这个命令:
AT+MQTTCLIENTID=0,"002211|securemode=3\,signmethod=hmacsha1\,timestamp=112200|"

发送命令

AT+MQTTCONN=0,"a1YqApika7X.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
//举例:
如我复制来的字符串为:
a1YqApika7X.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883
则需要发送命令:
AT+MQTTCONN=0,"a1YqApika7X.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
具体原因笔者也不清楚

至此ESP8266-01S已经成功上云

正常情况阿里云上的设备会显示在线

开始进行数据上报

订阅主题

发送命令

AT+MQTTSUB=0,"/sys/a1YqApika7X/${deviceName}/thing/service/property/set",1
///sys/a1YqApika7X/${deviceName}/thing/service/property/set请改为自己对应的字符串
${deviceName}请改成ESP8266-01S
即设备名

上报数据

发送命令

AT+MQTTPUB=0,"/sys/a1YqApika7X/${deviceName}/thing/event/property/post","{\"meth  od\":\"thing.service.property.set\"\,\"id\":\"2012934117\"\,\"params\":{\"TEMP\":50}\,\"version\":\"1.0.0\"}",1,0
/sys/a1YqApika7X/${deviceName}/thing/event/property/post请改为自己对应的字符串
${deviceName}请改成ESP8266-01S
即设备名

之后我们就可以看到数据已经上报到阿里云


相关百度网盘资料:

链接:https://pan.baidu.com/s/1j4UOZOgT8uV3GRERe_myrg?pwd=ertt

提取码:ertt

  • 21
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
你可以按照以下步骤来连接ESP8266-01S阿里云MQTT服务: 1. 配置阿里云IoT平台: - 在阿里云控制台上创建一个物联网实例。 - 在物联网实例中创建设备,获取设备的三元组信息(DeviceName、DeviceSecret和ProductKey)。 2. 编写Arduino代码: - 在Arduino IDE中打开一个新的Sketch。 - 引入ESP8266WiFi库和PubSubClient库。 - 设置WiFi连接信息。 - 定义阿里云MQTT服务器的地址和端口。 - 定义设备的三元组信息。 - 在setup()函数中连接WiFi和阿里云MQTT服务器。 - 在loop()函数中保持MQTT连接,并处理订阅和发布消息的逻辑。 下面是一个简单的示例代码: ```cpp #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "your_wifi_ssid"; const char* password = "your_wifi_password"; const char* mqtt_server = "your_mqtt_server"; const int mqtt_port = 1883; const char* product_key = "your_product_key"; const char* device_name = "your_device_name"; const char* device_secret = "your_device_secret"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); client.setServer(mqtt_server, mqtt_port); } 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(); } void reconnect() { while (!client.connected()) { String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); if (client.connect(clientId.c_str(), device_name, device_secret)) { Serial.println("Connected to MQTT server"); client.subscribe("your_topic"); } else { Serial.print("Failed to connect to MQTT server, rc="); Serial.print(client.state()); Serial.println(" retrying in 5 seconds..."); delay(5000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); } ``` 3. 替换示例代码中的`your_wifi_ssid`和`your_wifi_password`为你的WiFi网络的名称和密码。 替换`your_mqtt_server`为你的阿里云MQTT服务器地址。 替换`your_product_key`、`your_device_name`和`your_device_secret`为你的设备三元组信息。 4. 将代码上传到ESP8266-01S开发板。 这样,你的ESP8266-01S就可以连接到阿里云MQTT服务了。记得根据你的实际需求修改代码中的订阅和发布逻辑。希望对你有帮助!如果有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值