【阿里云物联网】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

相关推荐
Amarantine、沐风倩✨17 分钟前
设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
java·物联网·音视频·webrtc·html5·视频编解码·七牛云存储
正在走向自律1 小时前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
森旺电子3 小时前
51单片机仿真摇号抽奖机源程序 12864液晶显示
单片机·嵌入式硬件·51单片机
OkeyProxy4 小时前
HTTP、HTTPS和SOCKS5代理協議
网络协议·https·云计算·代理服务器·海外ip代理
不过四级不改名6775 小时前
蓝桥杯嵌入式备赛教程(1、led,2、lcd,3、key)
stm32·嵌入式硬件·蓝桥杯
小A1595 小时前
STM32完全学习——SPI接口的FLASH(DMA模式)
stm32·嵌入式硬件·学习
Rorsion5 小时前
各种电机原理介绍
单片机·嵌入式硬件
小峰编程7 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
善 .8 小时前
单片机的内存是指RAM还是ROM
单片机·嵌入式硬件
超级码农ProMax8 小时前
STM32——“SPI Flash”
stm32·单片机·嵌入式硬件