我是靠谱客的博主 敏感嚓茶,最近开发中收集的这篇文章主要介绍Espressif 8266 AT+MQTT连接AWS IoTEspressif 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连接
    

在这里插入图片描述

最后

以上就是敏感嚓茶为你收集整理的Espressif 8266 AT+MQTT连接AWS IoTEspressif 8266 AT+MQTT连接AWS IoT的全部内容,希望文章能够帮你解决Espressif 8266 AT+MQTT连接AWS IoTEspressif 8266 AT+MQTT连接AWS IoT所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部