Espressif 针对 AWS IoT 的应用有专门的仓库 esp-aws-iot,可以很方便的在 ESP 芯片上开发 AWS IoT 的应用。这次就以 tls_mutual_auth 示例来演示下如何在 ESP32-C3 上开发 AWS IoT 应用。
AWS IoT端操作
AWS IoT 端主要是创建 Things,并下载对应的证书文件即可。
-
登陆 AWS,在 Services 中输入 IoT Core,进入控制台。
-
在 IoT Core 控制台左边的
All devices
选项中选择Things
选项,之后点击Create things
创建 things。
-
选择 things 的数量,这里选择
Create single thing
-
指定
thing
的属性。这里仅仅简单的输入Thing name
即可进入下一步。
-
自动产生与创建的
thing
相配套的证书。这些证书在后面会被编译进bin
文件中。
-
创建
policy
。证书是用来验证设备的合法性,而policy
则侧重于权限控制。
-
设置
policy
。除了指定policy name
之外,还需要指定Policy action
和Policy resource
这两个属性。Policy action
是一个选项框,里面有对这个thing
的权限控制。比如iot: Connect
可以设置这个thing
只能连接到 AWS IoT,不能做任何的订阅和发布操作。其余的权限控制可以参考对应的说明。这里选择*
开打开所有的权限设置。
-
选择刚创建好的
policy
。
-
下载证书。这一步非常重要,因为要将
thing
对应的设备证书,公钥,私钥和 CA 证书一起下载下来。
-
获取
Endpoint
。在 IoT Core 控制台左边的Settings
页面中获取到Endpoint
。后面要在menuconfig
中设置。
ESP32-C3 端操作
-
拷贝证书至
tls_mutual_auth/main/certs
目录下,这里仅仅需要拷贝设备证书,私钥和 CA 证书文件即可。不过名字要修改一下:AmazonRootCA1.pem
修改为root_cert_auth.pem
*-private.pem.key
修改为client.key
*-certificate.pem.crt
修改为client.crt
-
设置
menuconfig
中的MQTT_BROKER_ENDPOINT
修改为实际的Endpoint
。 -
配置 WIFI 的
SSID
和PASSWORD
等信息即可。