【阿里云物联网】ESP01+阿里云

前言

本文分成两个部分的配置介绍讲解:阿里云配置ESP01配置。至于像STM32单片机之类的连接,只要阿里云与ESP01的通道打通后,STM32无非就是在与ESP01进行串口收发指令与信息,这个有时间的话会在写的。本文的目的主要还是能达到阿里云能与ESP01通信的效果。

准备材料

  • 阿里云账号

  • 正点原子的串口终端

  • ESP01+配套串口转接器

    没有配套的转接器的话,也可以用ESP01和USB转串口模块接线在连接电脑,本质上都是同样的。

阿里云配置

既然要使用阿里云,那么肯定需要有阿里云账号之类的,这种默认需要的就不讲了,默认都是有阿里云账号且登录的。阿里云官网

  1. 首页搜索,找到物联网平台控制台入口。第一次开启物联平台是要选择同意开启的。

  2. 第一次开启公共实例也是要选择同意。目前新版的是不计费,不现时,限制数量用于测试用的。(这里我已经开启过了,并且也进行过一些测试了,不然刚创建肯定是0的)

  3. 点击设备接入,添加设备。在新建产品处,设置号名称,在设置为自定义品类后,确定就好。标准品种中,有着针对品种设备提取定义好的属性,大家感兴趣的可以在自行查看。

  4. 步骤3只是创建好了产品,创建完后,还要在产品中添加设备。(侧边栏,或者直接在产品后面,都能跳转到设备页面)

  5. 完成设备添加后,就可以点击设备,查看连接进行MQTT的关键信息。图中还有设备的DeviceName,在建立链接时需要到,具体看到步骤6。

    当阿里云配置完成后,就能拿到MQTT的连接参数

    图中的关键参数,clientldusernamepasswdmqttHostUrlport,在下述客户端进行AT连接时会用到。

  6. 上述步骤1~5完成了产品,设备的创建及得到MQTT连接参数。但是关于MQTT的主题订阅以及发布,这个是还要创建授权的,非授权的主题交互请求将会被平台处理为无效请求。回退到产品 界面,点击查看 ,在点击Topic 类列表 ,选择自定义Topic ,这里就给出了给产品下的设备能对指定主题进行的发布/订阅的权限。还有需要注意的是,假如要链接主题/k0yo34u8Cim/${deviceName}/user/main,不是直接这个地址就行了,而是要把${deviceName}替换成该产品下设备的名称。比如我们刚才在Demo下创建了一个ESP01,所以说名称就为:ESP01(在设备属性那里也可以查看deviceName,比如步骤5的截图中就有),则链接地址则为:/k0yo34u8Cim/ESP01/user/main

上述的阿里云配置步骤不需要百分百同样,只需要完成相关配置就行,达到配置功能就可以了。

ESP01配置

刷MQTT透传AT固件

不在过多展开描述烧录流程了,有相关的链接教程,大家头一次使用可以去参考参考,玩过的想必都知道烧录流程了,就不过多啰嗦了。

MQTT固件地址:安信可科技

AT固件烧录工具及步骤:AT固件烧录教程

AT指令配置及验证

在串口终端发送指令给ESP01S,通常响应或者提交正确都会回复 OK ,错误或者提交错误都会回复 ERROR ,在下面就不在过多重复。还有下面的参数只是简单的描述命令的作用,详细的可以查看乐鑫官网的AT 命令集

我会根据我上述配好的阿里云的配置来,在每个命令的后面都给出示例。

步骤1~8是对ESP01(客户端)的配置方面的。步骤9~10就是MQTT常见的 订阅 , 发布 主题的功能了。

  1. ESP01S复位

    c 复制代码
    AT+RST
  2. 恢复出厂设置

    c 复制代码
    AT+RESTORE
  3. 设置工作模式为Station(STA)模式

    c 复制代码
    AT+CWMODE=1
  4. 使得自身的NTP(网络时间协议)和阿里云的公共NTP服务器地址时间保持同步

    c 复制代码
    AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
  5. 连接到指定的无线网络(Wi-Fi)

    c 复制代码
    AT+CWJAP="Wi-Fi名称","Wi-Fi密码" 
  6. 配置MQTT客户端的用户参数

    c 复制代码
    AT+MQTTUSERCFG=0,1,"NULL","username","password",0,0,""
    c 复制代码
    // 示例:
    // AT+MQTTUSERCFG=0,1,"NULL","ESP01&k0yo34u8Cim","da98f76bc407767677ce894df36426677c131a01e25f86606fc8dc1f227d9bb8",0,0,""
  7. 设置MQTT客户端的Client ID

    每个逗号前加 \ ,格式化字符输出,否则会被认为是普通的参数分隔符。

    c 复制代码
    AT+MQTTCLIENTID=0,"ClienID"
    c 复制代码
    // 示例:
    // AT+MQTTCLIENTID=0,"k0yo34u8Cim.ESP01|securemode=2\,signmethod=hmacsha256\,timestamp=1711004092669|"
  8. 建立与MQTT服务器的连接

    c 复制代码
    AT+MQTTCONN=0,"mqttHostUrl",1883,1
    c 复制代码
    // 示例:
    // AT+MQTTCONN=0,"iot-06z00a0w2xecf60.mqtt.iothub.aliyuncs.com",1883,1
  9. 订阅指定的MQTT主题

    注意了主题(topic),在阿里云产品中,得到的通常给出的是这种地址/k0yo34u8Cim/${deviceName}/user/main需要把,${deviceName}替换成设备的名称,假如设备名称为ESP01,完整的则像这样的/k0yo34u8Cim/ESP01/user/main

    c 复制代码
    AT+MQTTSUB=0,"订阅topic",1
    c 复制代码
    // 示例:
    // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main",1
  10. 发布消息到指定的MQTT主题

    c 复制代码
    AT+MQTTPUB=0,"发布topic","AJson格式内容",1,0
    c 复制代码
    // 示例:
    // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main","{LED}",1,0

串口终端,上述命令的全部演示,可以看到正常情况下,都是OK的。有几个要注意的地方就是,像串口,波特率等要选对,还有要勾上发送新行,每一个AT指令是什么就输入什么,千万不要在后面多一个空格之类的。

效果演示,对已经连接上的客户端设备,阿里云发送消息给ESP01客户端。

工程材料

MQTT透传AT固件+串口调试助手+导出串口调试导出的AT指令(.ini)

链接:https://pan.baidu.com/s/1tQ4WtzTNYUiMBHI_lIjoPA  提取码:3aoz

相关推荐
redcocal2 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
萌新求带啊QAQ2 小时前
腾讯云2024年数字生态大会开发者嘉年华(数据库动手实验)TDSQL-C初体验
云计算·腾讯云·tdsql-c
苓诣4 小时前
Submariner 部署全过程
云计算·k8s
思为无线NiceRF4 小时前
全双工多路并发、低延时数传解决行业信号拥堵问题
物联网
辰哥单片机设计5 小时前
门磁模块详解(防盗感应开关 STM32)
stm32·单片机·嵌入式硬件·传感器
夜间去看海5 小时前
基于51单片机的自动清洗系统(自动洗衣机)
嵌入式硬件·51单片机·proteus·洗衣机
yrx0203076 小时前
stm32 IIC总线busy解决方法
stm32·单片机·嵌入式硬件
YHPsophie7 小时前
ATGM331C-5T杭州中科微BDS/GNSS全星座定位授时模块应用领域
经验分享·笔记·单片机·信息与通信·交通物流
Archie_IT8 小时前
【STM32系统】基于STM32设计的SD卡数据读取与上位机显示系统(SDIO接口驱动、雷龙SD卡)——文末资料下载
arm开发·stm32·单片机·嵌入式硬件