STM32驱动ESP8266连接阿里云(1)----使用AT指令连接阿里云

发布者:alpha12最新更新时间:2024-05-15 来源: elecfans关键字:STM32  AT指令 手机看文章 扫描二维码
随时随地手机看文章

烧录MQTT固件

购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。 MQTT固件可以在安信可科技进行下载。


[https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html]

在这里插入图片描述

下载器可以使用乐鑫官方的下载器。

[https://www.espressif.com.cn/zh-hans/support/download/other-tools]

在这里插入图片描述

下载完毕之后,选择对应模块的型号。

在这里插入图片描述

接线方式如下所示。

在这里插入图片描述

选择刚刚下载的固件,配置好对应的串口,点击下载即可。

在这里插入图片描述

下载成功如下所示。

在这里插入图片描述

若出现这种情况8-download data fail,则是flash大小不够,需要更换nor flash。

在这里插入图片描述

创建阿里云产品

阿里云官网:https://www.aliyun.com/

选择物联网平台,开始创建产品。

在这里插入图片描述

选择公共实例,点击进入。

在这里插入图片描述

创建产品。

在这里插入图片描述

这里我的基本配置如下所示。

在这里插入图片描述

添加设备。

在这里插入图片描述

这里可以输入自己喜欢的设备名字,也可以点击确认自动生成。

在这里插入图片描述

生成设备之后,将温湿度上报添加进来。

在这里插入图片描述

添加标准功能。

在这里插入图片描述

添加所需功能。

在这里插入图片描述

添加完毕之后点击上线。

在这里插入图片描述

AT指令接入阿里云 AT指令手册:
[https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/AT_Command_Set/MQTT_AT_Commands.html]

设置Wi-Fi模式

在这里插入图片描述

AT+CWMODE=1

连接路由器

在这里插入图片描述

例如WIFI名称66,密码:1234abcd,则输入

AT+CWJAP='66','1234abcd'

可以通过查询IP地址来查看是否连接上wifi。

在这里插入图片描述

AT+CIFSR

使能 SNTP 服务器,设置中国时区 (UTC+08:00)

在这里插入图片描述

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

查看MQTT参数,这里面包含MQTT三元组信息:clientld,username,password

在这里插入图片描述

设置登录密码

在这里插入图片描述

对应的MQTT参数如下所示。

在这里插入图片描述

AT+MQTTUSERCFG=0,1,'NULL','4WpGE15ik3MbGt0lEiIj&a1ZCbJN0kQB','0ac7bb4bf8eb2b96ea8ced5760eb72b62238935a5ec42c22849fcee7fe13137d',0,0,''

在这里插入图片描述

配置 MQTT 用户属性 设置指令:

AT+MQTTUSERCFG=< LinkID >,< scheme >,< 'client_id' >,< 'username' >,< 'password' >,< cert_key_ID >,< CA_ID >,< 'path' >

对应的MQTT参数如下所示。

在这里插入图片描述

注意:需要在每个逗号前面加上

AT+MQTTCLIENTID=0,'a1ZCbJN0kQB.4WpGE15ik3MbGt0lEiIj|securemode=2,signmethod=hmacsha256,timestamp=1679562771636|'

连接 MQTT Broker

在这里插入图片描述

对应的MQTT参数如下所示。

在这里插入图片描述

设置指令:

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

此时可以查看设备,可以看到已经是在线状态。

在这里插入图片描述

订阅

订阅Topic是指在一个订阅服务中,用户可以选择关注或订阅感兴趣的话题或主题。

在这里插入图片描述

通过订阅Topic,用户可以更加精准地获取自己的内容,提高信息的质量和效率。

在这里插入图片描述

发送AT指令,订阅Topic

在这里插入图片描述

AT+MQTTSUB=0,'/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/user/get',1

在这里插入图片描述

订阅成功会在阿里云进行显示。

在这里插入图片描述

上报数据

这里定义了温湿度的功能。

在这里插入图片描述

可以使用AT+MQTTPUBRAW发布 MQTT 消息

在这里插入图片描述

例如发送温度32 湿度66

AT+MQTTPUB=0,'/sys/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/thing/event/property/post','{params:{'Temperature':32}}',0,0AT+MQTTPUB=0,'/sys/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/thing/event/property/post','{params:{'CurrentHumidity':66}}',0,0

实际情况如下所示:

在这里插入图片描述

下发数据

下发数据可以按照如下操作进行。

在这里插入图片描述

实际情况如下所示。

在这里插入图片描述

断开连接

在这里插入图片描述

使用下列指令可以断开连接

AT+MQTTCLEAN=0


关键字:STM32  AT指令 引用地址:STM32驱动ESP8266连接阿里云(1)----使用AT指令连接阿里云

上一篇:STM32 ILI9341驱动TFTLCD(八)LCD碰撞小球
下一篇:STM32 LL库中断配置引脚外部中断的方式

推荐阅读最新更新时间:2026-03-19 22:46

玩转 ESP32 + Arduino (十六) 通过mqtt协议连接阿里云
需要用到的库: PubSubClient : 发送和接收MQTT消息 ArduinoJson : Json字符串转换库 AliyunMqttArduino: 阿里云相关 先做一件事!!!!!! 引入 PubSubClient.h 后 #include PubSubClient.h 打开 PubSubClient.h 修改如下内容: 一. 阿里云MQTT协议 关于MQTT协议, 请参考文章:https://zhuanlan.zhihu.com/p/89057819 请参考我之前整理的文档: 【腾讯文档】MQTT连接阿里云示例(1)https://docs.qq.com/sheet/DWXBaUE9nWmZVa
[单片机]
W801通过一机一密的方式连接阿里云物联网平台并实现反向控制
————————— 更新: 需要注意调用cJSON_Print函数将JSON体转化为字符串时,会开辟内存,转化后使用完毕后需要调用cJSON_free函数将内存释放掉,否则会导致内存泄漏。一旦内存泄漏会导致系统宕机。 ————————— 一.项目概述 本项目使用了W801以一机一密的方式连接至阿里云物联网平台,定时发送数据并实现了反向控制。 二.项目前的准备 因为使用阿里云物联网平台,因此需要提前创建好一个设备,这个网上的示例和阿里云自己的文档已经十分完整,因此不多赘述,可以自行查阅。创建完设备的MQTT链接参数是用来进行链接的关键,如下图所示。 三.MQTT连接的注意点与修改 概述:SDK中提供的MQTT链接示例基本是可
[单片机]
W801通过一机一密的方式<font color='red'>连接</font><font color='red'>阿里云</font>物联网平台并实现反向控制
S7-1500 PLC SIMATIC值在范围内指令
TIA博途软件提供了丰富的比较指令,可以满足用户的各种需要。TIA博途软件中的比较指令可以对如整数、双整数、实数等数据类型的数值进行比较。 【关键点】一个整数和一个双整数是不能直接进行比较的,因为它们之间的数据类型不同。一般先将整数转换成双整数,再对两个双整数进行比较。 比较指令有等于(CMP==)、不等于(CMP )、大于(CMP )、小于(CMP )、大于或等于(CMP =)和小于或等于(CMP =)。比较指令对输入操作数1和操作数2进行比较,如果比较结果为真,则逻辑运算结果RLO为“1”,反之则为“0”。 (5) 值在范围内指令(IN_RANGE) “值在范围内”指令将输入VAL的值与输入MIN和MAX的值进行比较,并将
[嵌入式]
S7-1500 PLC SIM<font color='red'>AT</font>IC值在范围内<font color='red'>指令</font>
基于AT89S51数据传送类指令程序
数据传送类指令是编程时使用最频繁的一类指令。一般数据传送类指令的助记符为“MOV”,通用的格式如下: MOV,数据传送类指令是把源操作数传送到目的操作数。指令执行后,源操作数不改变,目的操作数修改为源操作数。所以数据传送类操作属“复制”性质,而不是“搬家”。 数据传送类指令不影响标志位,这里所说的标志位是指Cy、Ac和OV,但不包括检验累加器奇偶标志位P。 1.以累加器为目的操作数的指令 这组指令的功能是把源操作数的内容送人累加器A,源操作数有寄存器寻址、直接寻址、间接寻址和立即数寻址等方式,例如指令: 2.以Rn为目的操作数的指令 这组指令的功能是把源操作数的内容送入当前工作寄存器区的RO~R7中的某一个寄存器。 3.以
[单片机]
基于<font color='red'>AT</font>89S51数据传送类<font color='red'>指令</font>程序
[单片机框架][AT指令框架][从机版] 高内聚 低耦合
核心思想 采用__attribute__((used)) attribute((section (“atcmd”)))的形式 优点: 可以自由变换输出通道,实现三方通讯。 注册AT指令,只用写到模块内部,不用耦合其他文件 下面就是举例使用方法:test.c #include atcmd_slave.h #if ATCMD_EN // 在功能模块中定义一个标准函数 static int test(atcmd_pack_t *pack) { uint8_t buff = testrn ; strcat((char*)buff, AT_OK); pack- reply(buff, strlen((char*)buff
[单片机]
[单片机框架][<font color='red'>AT</font><font color='red'>指令</font>框架][从机版] 高内聚 低耦合
ATmega168 指令执行时序
这一节介绍ATmega168指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。 Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。 Figure 7 演示的是ATmega168寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
[单片机]
<font color='red'>AT</font>mega168 <font color='red'>指令</font>执行时序
ATmega88 指令执行时序
这一节介绍ATmega88指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。 Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。 Figure 7 演示的是ATmega88寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
[单片机]
<font color='red'>AT</font>mega88 <font color='red'>指令</font>执行时序
ATmega8 指令执行时序
Figure 5 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄 存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价 比、功能/ 时钟比、功能/ 功耗比。 Figure 6 演示的是寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
[单片机]
<font color='red'>AT</font>mega8 <font color='red'>指令</font>执行时序
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved