示例:使用 AWS IoT Core 客户端 SL 库
描述
这个例子 AWS IoT Core Client SL Example.project
演示如何使用该库 AWS IoT Core Client SL
。
这 AWSDeviceShadow
应用程序展示了如何写入和读取“设备影子”。
这 AWSPubSub
应用程序展示了如何使用包含的功能块来发布和订阅消息。
这 AWS_JSON_DeviceShadow
应用程序展示了如何使用 JSONBuilder 来更新“设备影子”。
入门
安装客户证书
使用对设备进行身份验证 AWS IoT Core
是使用客户证书完成的。客户端证书可以通过 AWS Web 界面生成,下载并安装在相应的设备上
在控制器上生成 CSR 文件(证书签名请求)。然后使用此文件生成证书。
您可以在下一节中找到有关如何执行此操作的说明。
证书和私钥通过 AWS 创建、下载并安装在设备上。
使用 CSR 文件生成证书
这个包裹 CODESYS Security Agent 必须安装在您的计算机上。
有关更多信息,请参阅: CODESYS 安全代理
您需要一个 AWS 账户。
插入设备 (
Thing
) 在AWS IoT Core
通过网络界面。你可以使用你的设备(
Things
) 在下面的导航侧面板中Manage > All Devices > Things
查看和管理。在示例项目中,打开
AWSPubSub
应用。将端点设置为
AWSIoTClient.sHostname
输入。例子:
xxxxxxxxxxxxxxx.iot.yyyyyyyy.amazonaws.com)
你可以在导航侧面板中找到你的终端节点
Connect > Domain configurations
。如有必要,您还可以在那里创建新的端点。将先前分配的设备名称(“事物名称”)设置为输入
AWSIoTClient.sClientId
。使用输入
AWSIoTClient.sCertCNPrefix
当ClientId
主机名相同。这样可以防止加载不正确的证书(例如,WebServer
)。提示
如果未显示输入,则执行 重置引脚 命令。
例子:
sCertCNPrefix := 'AWSClient', sClientId := 'MyHostname';
证书的“通用名称”(CN) 是
AWSClient@MyHostname
将应用程序加载到控制器上并启动它。
该应用程序现在将尝试建立与 AWS 的加密连接,但由于缺少证书,这将失败。尽管如此,这个设置实验在下面是相关的。
设置旗帜
xEnable
的AWSIoTClient
上TRUE
。在设备编辑器中,选择选项卡 SPS 外壳。
运行以下命令:
cert-getapplist
输出显示了具有指定设备名称和编号的组件。
注意:如果您之前没有尝试连接到 AWS,则不会显示该设备(步骤 5)。
运行以下命令:
cert-createcsr <number> encoding=Base64
将
<number>
替换为步骤 8 中获得的号码。生成 CSR 文件可能需要几秒钟。在设备编辑器中,在 “类别” 下 日志,则在生成后输出相应的消息。
在设备编辑器中,选择选项卡 文件。
从以下位置复制 CSR 文件
cert/export
目录到本地文件系统。使用生成的 CSR 文件,您现在可以通过 AWS Web 界面创建证书。
在导航侧面板中,你可以使用
Security > Certificates
获取所有证书的管理概览。通过命令创建
Add certificate > Create certificate
带有导出的 CSR 文件的新证书。下载证书和根证书。
在里面选择 CODESYS 菜单命令 查看-> 安全屏幕。
将您的客户证书安装在 你自己的证书。
将根证书安装在 可信证书。
点击 在线 → 冷重置 并启动应用程序。
再次尝试设置功能模块的连接
AWSIoTClient
现在是输出吗AWSIoTClient.xConnectedToBroker
上TRUE
设置。连接已正确建立。
重要
如果您从控制器上卸载通过 CSR 创建的证书,则重新安装该证书后它将不再起作用。
这是因为卸载时私钥信息会被删除。在这种情况下,必须为设备创建新证书。
系统要求和限制
编程系统 | CODESYS Development System 版本 3.5.18.0 或更高版本 |
运行时系统 | CODESYS Control Win 版本 3.5.18.0 或更高版本 注意:使用免费的 |
附加组件 | - |
其他要求 | AWS 账户(AWS IoT 核心) |
注意
下載 项目