ESP8266连接阿里云平台

一.创建阿里云的产品和设备

 

百度搜索阿里云物联网,然后按步骤进行:

1、注册登录实名认证后打开控制台

 2、添加物联网平台入口

 3、开通公共实例

4、进入公共实例,产品,创建产品 

 5、创建产品

 

 6、添加设备

 

 自定义“DeviceName”和“备注名称”,然后依次点击“确认”“完成”;

 此时状态为——未激活

7、点击“DeviceSecret”查看“ProductKey”、“DeviceName”、“DeviceSecret” ,复制下来一会用

 8、 然后发布刚刚创建的产品,发布按钮新版在右侧

 打勾

二、计算MQTT的相关参数

首先打开计算软件:链接:https://pan.baidu.com/s/1XrB8dkvidC_a-BVofM3Umw 
提取码:zlew 

  将刚刚查看的“ProductKey”、“DeviceName”、“DeviceSecret”复制到相应位置,其中的“TimeStamp”和“Clientld”可以随便填数字,然后点击“生成”。

 注意:每个地区的城市不同,域名也不同,对应好!

三.ESP8266的调试

下载

链接:https://pan.baidu.com/s/11RTB8kxrimqrLjrAioMZ4w?pwd=1d2l 
提取码:1d2l

 打开

ok

 

 三个点添加BIN文件,注意右边从0X00000开始,串口,波特率,spi speed、spi MODE和FLASH大小,就位后点击start

等待下方读条完成

下载串口助手,任意一个版本即可,以XCOM 2.6为例,

链接:https://pan.baidu.com/s/1EpAkJ6tVO26SO0VbDBEBzA?pwd=a69b 
提取码:a69b

 连接用的数据线如图:

 新手注意烧录时注意:

(1)确定好对应的串口,波特率,还有显示busy可以按一下rst,重置,再重新送AT指令

发送AT指令:

 烧录成功,返回ok

接下来按照以下步骤,依次在串口助手发送代码,成功即返回ok

第一步:重置
AT+RST
第二步:测试
AT
 第三步:设置模块为STA模式
AT+CWMODE=1
第四步:配置参数(连接阿里云)
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
第五步:连接WiFi
AT+CWJAP="WIFI账号","WIFI密码"
第六步:设置MQTT的登陆用户名与密码(用刚刚软件生成的结果替换里面的"Username"和"Password"其它的不变)
AT+MQTTUSERCFG=0,1,"NULL","Username","Password",0,0,""
第七步:设置MQTT的ClientID(用刚刚软件生成结果里的“ClientId”,注:连接域名的每个逗号前面要加斜杠  \   )
AT+MQTTCLIENTID=0,"ClientID"

例如:1111111|securemode=3,signmethod=hmacsha1,timestamp=1112222|

逗号前加\,为:1111111|securemode=3\,signmethod=hmacsha1\,timestamp=1112222|
第八步:设置MQTT接入地址(用刚刚软件生成结果里的"连接域名",注:生成的域名后面的“:1883”要删掉,冒号双引号、1883都删掉)

AT+MQTTCONN=0,"连接域名",1883,1

例如:

生成的域名:k03fvrglOOE.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

删掉背景色的部分插入进去

那么AT指令为:AT+MQTTCONN=0,"k03fvrglOOE.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1

这时应该就可以在设备里面看到设备在线了:

 

 是不是小有成就感了?

 第九步:订阅设备属性上报的主题

 AT+MQTTSUB=0,"topic",1

位置如图所示,要将“${deviceName}”换成设备的名字,比如我的就是

AT+MQTTSUB=0,"/k03fvrglOOE/ESP8266/user/get",1

$和大括号全部去掉!(卡了我很久)

 第十步:上传数据

在串口助手中发送这个:

 AT+MQTTPUB=0,"topic","上报的json数据",1,0

例如我的是:

AT+MQTTPUB=0,"/k03fvrglOOE/ESP8266/user/update","{\"temp\":50.5}",1,0

此时打开日志服务就可以看到发送的数据:

 

点击查看

发送成功啦!

恭喜你,你已经成功通过esp8266完成了采用MQTT协议向阿里云平台推送消息的成就! 

第十一步:断开连接

AT+MQTTCLEAN=0

发送完毕,即可显示离线

所有步骤的发送指令都在这,你可以对照着自己建立的设备纠错,注意格式,一起加油吧!

一、

AT+RST

二、

AT

三、

AT+CWMODE=1

四、

AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"

五、

AT+CWJAP="iPhone by HB","19980802."

六:

AT+MQTTUSERCFG=0,1,"NULL","ESP8266&k03fvrglOOE","ADF06AFED8D1EEE4F1BBB6D2B10AD75A43AE16EB",0,0,""
七:

AT+MQTTCLIENTID=0,"1111111|securemode=3\,signmethod=hmacsha1\,timestamp=1112222|"
八:

AT+MQTTCONN=0,"k03fvrglOOE.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1

九:

AT+MQTTSUB=0,"/k03fvrglOOE/ESP8266/user/get",1
十:

AT+MQTTPUB=0,"/k03fvrglOOE/ESP8266/user/update","{\"temp\":50.5}",1,0

注意:本文是基于

正点原子ESP8266连接阿里云_B_M_H的博客-CSDN博客

进行学习修改的,版权归B_M_H所有

  • 45
    点赞
  • 233
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
ESP8266是一款低成本、低功耗、Wi-Fi模块,而阿里云IoT Hub是一款物联网平台。将ESP8266阿里云IoT Hub结合使用,可以实现智能家居、智能农业、智能工业等多种应用场景。以下是ESP8266连接阿里云IoT Hub的基本步骤: 1.在阿里云IoT控制台上创建设备,获取设备的三元组(ProductKey、DeviceName、DeviceSecret)。 2.在ESP8266上安装MQTT客户端库,例如PubSubClient库。 3.在ESP8266上编写代码,连接到Wi-Fi网络,并使用MQTT客户端库连接阿里云IoT Hub。以下是一个简单的示例代码: ```c++ #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqttServer = "your_MQTT_SERVER"; const int mqttPort = 1883; const char* mqttUser = "your_MQTT_USER"; const char* mqttPassword = "your_MQTT_PASSWORD"; const char* deviceID = "your_DEVICE_ID"; WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); mqttClient.setServer(mqttServer, mqttPort); mqttClient.setCallback(callback); while (!mqttClient.connected()) { if (mqttClient.connect(deviceID, mqttUser, mqttPassword)) { Serial.println("Connected to MQTT broker"); mqttClient.subscribe("your_TOPIC"); } else { Serial.print("Failed to connect to MQTT broker, rc="); Serial.print(mqttClient.state()); Serial.println(" retrying in 5 seconds"); delay(5000); } } } void loop() { mqttClient.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Received message ["); Serial.print(topic); Serial.print("]: "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ``` 4.在阿里云IoT控制台上发布消息,ESP8266将接收到该消息并在串口监视器上显示。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值