概述
Espressif 8266 AT+MQTT连接AWS IoT
本文章为ESP8266 AT+MQTT连接AWS IoT教程。
使用ESP8266 AT+MQTT连接AWS IoT可以分别以下两个部分:
- AWS IoT端操作
- ESP8266端操作
AWS IoT端操作
AWS云端操作主要目的有两个:
- 创建Things
- 下载CA证书、Client端证书及Client端密钥
AWS云端操作步骤可以分为以下三步:
- Register a single AWS IoT thing
- Create a policy
- Attach policy
Register a single AWS IoT thing
首先必须要有一个AWS云账号,注册需要用到信用卡,这里不再过多阐述。
- 登陆进AWS之后,点击Services下的IoT Core。
- 点击Manage下的Things,进入Things页面。
- 点击Create按钮,选择Register a single AWS IoT thing,点击Create a single thing。
- 输入一些必要信息,主要是Name字段。这里我们定义Name字段为wechat_test。然后点击Next按钮进入下一步。
5. 点击Create certificate按钮。
6. 下载Client端证书、公钥及私钥。千万注意只能在此步骤中下载证书。
7. 下载CA证书。千万注意只能在此步骤中下载证书。
8. 激活。
9. 点击Done按钮完成操作。
10. 创建成功后会在Things页面显示wechat_test信息。
Create a policy
- 点击刚才创建的wechat_test, 进入wechat_test页面。
2. 点击页面中的Security,查看证书细节。
3. 复制证书ARN,后续步骤会用到。
4. 点击Policies,进入Policies页面。点击Create按钮。
5. 输入必要信息。这里我们定义Name字段为wechat_test_policy。Action字段为iot:*。Resource ARN字段为*。Effect选项勾选Allow。然后点击Create按钮创建。
6. 创建成功后会在Policies页面显示wechat_test_policy信息。
Attach policy
-
点击Secure选项下的Certificates,进入Certificates页面。
-
在搜索框中键入在Create a policy中保存的证书ARN号。然后点击Attach policy。
-
选择我们在Create a policy步骤中创建的policy。
ESP8266端操作
ESP8266端只需运行ESP-AT固件即可。
ESP8266端需要有3个地方注意:
-
ESP8266 AT固件默认配置MQTT TASK的堆栈大小为2048,在AWS认证过程中会出现堆栈溢出导致ESP8266固件从新运行的情况,可以通过在menuconfig->Component config->ESP-MQTT Configuration->MQTT task stack size将默认配置MQTT堆栈大小从2048扩大到4096。
-
AWS验证需要设备提供证书,所以在AT指令MQTTUSERCFG中,scheme参数需要置为4。
-
执行MQTTCONN指令时host参数为AWS云中wechat_test页面中Interact选项下HTTPS显示的host。
ESP8266端的操作可以分为以下三步:- 替换证书:将在AWS云端操作过程中下载的Client端证书替换ESP8266 AT固件中原本的Client端证书。
- 扩大MQTT TASK堆栈:将ESP8266 AT固件中默认的MQTT TASK堆栈大小由默认2048扩大到4096。
- 连接:运行AT MQTT指令连接AWS。
替换证书
从AWS云上下载的文件总共有4份,分别是:
- AmazonRootCA1.pem
- 4d7b3171f4-certificate.pem.crt
- 4d7b3171f4-public.pem.key
- 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复