ESP8266 MQTT AT固件对接国外亚马逊云笔记


一 、前言

本博文于 2021.2.25 更新,转载于:https://xuhong.blog.csdn.net/article/details/114025529

二 、准备材料

  • ESP8266 NodeMCU 开发板一个;
  • 必须经过认证亚马逊账号一个;
  • 熟悉ESP8266 RTOS开发环境,我这里采用的是 Linux 开发环境;

三 、亚马逊账号新建物品

3.1 申请亚马逊账号

登录亚马逊云 https://aws.amazon.com/cn , 申请亚马逊账号比较费事,多和度娘打招呼就能解决,此处不便多说了。

3.2 创建单个物品

有了亚马逊账号之后,记得保管好,后面对接还要用到。下一步,切换进入AWS IOT 管理中,如下图创建单个物品。

在这里插入图片描述
给物品取个名字,叫“esp_test”,其余默认,点击下一步如下图:

在这里插入图片描述

3.3 创建证书

创建证书是最关键的一步,如下图操作
在这里插入图片描述
需要三个证书,其中2个证书为这个界面下载,还有一个是根证书,根证书可以从文章尾获取;
在这里插入图片描述
获取MQTT连接的域名:
在这里插入图片描述

四 、编译AT固件源码

4.1 搭建AT固件源码的二次开发环境

打开网址 环境搭建 参考里面的教程,或者你来我这篇文章看看:

《体验下 Linux搭建 ESP8266_RTOS_SDK 3.0 最新环境的搭建和编译吧》

  • 注意点1:这里尤其要注意必须更新到 xtensa-lx106-elf-gcc-8.4.0的编译工具链,否则会报错误;
  • 注意点2:python版本 > 3.8.0,可以通过指令 python -v查看当前安装版本;
  • 注意点3:还要安装一个python处理表格库:python -m pip install pyyaml xlrd

4.2 拉取AT固件源码

使用git克隆下载:

   git clone https://github.com/espressif/esp-at

不需要手动去拉取SDK源码,因为脚本会自动下载;

4.3 替换亚马逊连接证书

在亚马逊平台新建一个物品,创建证书,具体如何创建,看前面章节;

  • AmazonRootCA1.pem替换 components/customized_partitions/raw_data/mqtt_ca/mqtt_ca.crt

  • xxx.cert.pem替换 components/customized_partitions/raw_data/mqtt_cert/mqtt_client.crt

  • xxx.private.key替换 components/customized_partitions/raw_data/mqtt_key/mqtt_client.key

  • 注意:不需要重命名一样的文件;

4.4 编译

  • 指令一览表:
    • rm -rf build sdkconfig:删除全部编译产物;
    • ./build.py menuconfig:选择编译平台
    • ./build.py flash: 编译并烧录
    • ./build.py build: 仅仅编译,不烧录
    • ./build.py erase_flash: 擦除固件;如果提示ota data partition invalid,可以运行这个指令;

  • ①指定编译平台:执行 ./build.py menuconfig,选择平台为 ESP8266,选择下载配置,另外,MQTT协议任务栈的大小要设置为 4096,设置步骤可以见下动图;

在这里插入图片描述

  • ②编译并下载:执行 ./build.py flash,慢慢等待编译,尤其要注意编译日志是否把尴尬三个证书编译进去了?
    在这里插入图片描述

五 、连接通讯

  • AT+MQTT 对接 AWS IoT 指令:
AT+CWMODE=1
AT+CWJAP="xuhongv@iot","xuhong112233"                    //连接路由器
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"                      //设置sntp服务器
AT+CIPSNTPTIME?                                          //获取是否同步了网络时间

AT+MQTTUSERCFG=0,4,"dbdd205756d04a988d564d103841cbde","aaa","bbb",0,0,""
AT+MQTTCONN=0,"xxx-ats.iot.us-east-2.amazonaws.com",8883,1  
AT+MQTTSUB=0,"esp32/at",1
AT+MQTTPUB=0,"esp32/at","hello aws!",1,0

注意:

  1. AT+MQTTUSERCFG 中第二参数为 4, 即双向认证, 不可更改, 其他的参数随便填;
  2. AT+MQTTCONN=0,"",8883,1 中, endpoint 为准备阶段的 MQTT域名, 端口 8883 不可更改;
  3. 其余发布和订阅主题,随意;
  4. 具体的使用,可以查看API文档:MQTT_AT_Commands

截图:

在这里插入图片描述

  • 测试是否通畅,我们可以借用平台的工具:
    在这里插入图片描述

AmazonRootCA1证书下载,自行保存为pem格式:https://www.amazontrust.com/repository/AmazonRootCA1.pem

有任何疑问联系邮箱或文章留言,不要私信我,本博客已经屏蔽私信!多多支持!

  • 技术支持邮箱:support@aithinker.com 有问必回复!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值