Espressif 8266 AT+MQTT连接AWS IoT

Espressif 8266 AT+MQTT连接AWS IoT

本文章为ESP8266 AT+MQTT连接AWS IoT教程。

使用ESP8266 AT+MQTT连接AWS IoT可以分别以下两个部分

  • AWS IoT端操作
  • ESP8266端操作

AWS IoT端操作

AWS云端操作主要目的有两个:

  1. 创建Things
  2. 下载CA证书、Client端证书及Client端密钥

AWS云端操作步骤可以分为以下三步:

  1. Register a single AWS IoT thing
  2. Create a policy
  3. Attach policy

Register a single AWS IoT thing

首先必须要有一个AWS云账号,注册需要用到信用卡,这里不再过多阐述。

  1. 登陆进AWS之后,点击Services下的IoT Core
    在这里插入图片描述
  2. 点击Manage下的Things,进入Things页面
    在这里插入图片描述
  3. 点击Create按钮,选择Register a single AWS IoT thing,点击Create a single thing
    在这里插入图片描述
  4. 输入一些必要信息,主要是Name字段。这里我们定义Name字段wechat_test。然后点击Next按钮进入下一步。
    在这里插入图片描述
    5. 点击Create certificate按钮
    在这里插入图片描述
    6. 下载Client端证书、公钥及私钥。千万注意只能在此步骤中下载证书
    在这里插入图片描述
    7. 下载CA证书。千万注意只能在此步骤中下载证书
    在这里插入图片描述
    8. 激活。
    在这里插入图片描述
    9. 点击Done按钮完成操作。
    在这里插入图片描述
    10. 创建成功后会在Things页面显示wechat_test信息
    在这里插入图片描述

Create a policy

  1. 点击刚才创建的wechat_test, 进入wechat_test页面
    在这里插入图片描述
    2. 点击页面中的Security,查看证书细节。
    在这里插入图片描述
    3. 复制证书ARN,后续步骤会用到。
    在这里插入图片描述
    4. 点击Policies,进入Policies页面。点击Create按钮
    在这里插入图片描述
    5. 输入必要信息。这里我们定义Name字段wechat_test_policyAction字段为iot:*。Resource ARN字段为*。Effect选项勾选Allow。然后点击Create按钮创建。
    在这里插入图片描述
    6. 创建成功后会在Policies页面显示wechat_test_policy信息
    在这里插入图片描述

Attach policy

  1. 点击Secure选项下的Certificates,进入Certificates页面
    在这里插入图片描述

  2. 搜索框中键入在Create a policy中保存的证书ARN号。然后点击Attach policy
    在这里插入图片描述

  3. 选择我们在Create a policy步骤中创建的policy
    在这里插入图片描述

ESP8266端操作

ESP8266端只需运行ESP-AT固件即可。

ESP8266端需要有3个地方注意

  1. ESP8266 AT固件默认配置MQTT TASK的堆栈大小为2048,在AWS认证过程中会出现堆栈溢出导致ESP8266固件从新运行的情况,可以通过在menuconfig->Component config->ESP-MQTT Configuration->MQTT task stack size默认配置MQTT堆栈大小2048扩大到4096

  2. AWS验证需要设备提供证书,所以在AT指令MQTTUSERCFG中,scheme参数需要置为4
    在这里插入图片描述

  3. 执行MQTTCONN指令host参数AWS云wechat_test页面Interact选项HTTPS显示的host
    在这里插入图片描述
    ESP8266端的操作可以分为以下三步:

    1. 替换证书:将在AWS云端操作过程中下载的Client端证书替换ESP8266 AT固件中原本的Client端证书。
    2. 扩大MQTT TASK堆栈:将ESP8266 AT固件中默认的MQTT TASK堆栈大小由默认2048扩大到4096。
    3. 连接:运行AT MQTT指令连接AWS。

替换证书

从AWS云上下载的文件总共有4份,分别是:

  1. AmazonRootCA1.pem
  2. 4d7b3171f4-certificate.pem.crt
  3. 4d7b3171f4-public.pem.key
  4. 4d7b3171f4-private.pem.key

其中文件4d7b3171f4-public.pem.key是不需要用到的(原因可参考SSL/TLS的证书生成过程)。

  • AmazonRootCA1.pem ------> components/customized_partitions/raw_data/mqtt_ca/mqtt_ca.crt
  • 4d7b3171f4-certificate.pem.crt ------> components/customized_partitions/raw_data/mqtt_cert/mqtt_client.crt
  • 4d7b3171f4-private.pem.key ------> components/customized_partitions/raw_data/mqtt_key/mqtt_client.key

扩大MQTT TASK堆栈

通过在menuconfig->Component config->ESP-MQTT Configuration->MQTT task stack size默认配置2048扩大到4096
在这里插入图片描述

连接

AT指令如下:

  • AT+GMR	//查看AT固件版本信息
    

在这里插入图片描述

  • AT+CWMODE=1	//设置为Station模式
    
  • AT+CWJAP="espressif","1234567890"	//连接上WI-FI
    
  • AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"	//设置SNTP服务器阿里云
    
  • AT+CIPSNTPTIME?	//查询时间(每个证书都有有效时间,在校验证书的时候会检查证书是否过期)
    
  • AT+MQTTUSERCFG=0,4,"wechat_test","username","password",0,0,""	//配置MQTT信息
    															    //username对应AWS云的账户名
    															    //password对应AWS云的密码
    
  • AT+MQTTCONN=0,"a1wbhbgmakdwjt-ats.iot.us-west-2.amazonaws.com",8883,1	//端口为8883
    
  • AT+MQTTCLEAN=0	//断开MQTT连接
    

在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式工程狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值