# AWS IoT Core

[AWS IoT Core] 为互联设备（如传感器、执行器、嵌入式设备、无线设备和智能设备）通过 MQTT 连接到 AWS 云提供了安全的双向通信。

[MQTT] 是一种轻量级的消息传输协议，专为物联网设备和应用程序设计。它采用发布与订阅模型，允许设备和应用程序通过中间代理（Broker）进行通信。MQTT拥有轻量级、高效率和可靠性等诸多优点，特别适用于边缘硬件资源有限，需要高效地传输实时数据，以及对通信延迟和带宽占用有要求的场景。
MQTT协议在工业互联网中得到广泛选择和应用，它为工业互联网带来了实时数据交换、设备互通性、资源节约和稳定可靠等诸多价值，成为工业互联网通信的重要基石。

Neuron 支持 MQTT 插件作为其数据汇聚上报的方式之一。 Neuron AWS IoT 插件基于 [MQTT 插件]，提供对 AWS IoT Core 的便捷接入。

[MQTT]: https://mqtt.org
[MQTT 插件]: ../mqtt/overview.md
[AWS IoT Core]: https://docs.aws.amazon.com/iot/

## 添加插件

在**北向应用**标签页，点击 **添加应用** 添加节点。

## 应用配置

以下是使用 AWS IoT 插件配置节点时可用的参数：

| 字段               | 说明                                                         |
| ------------------ | ------------------------------------------------------------ |
| **客户端 ID**      | MQTT 通信的客户端 id，必填。                                 |
| **QoS 等级**       | MQTT 通信的服务质量等级，可选，默认为 QoS 0 。               |
| **上报数据格式**   | 上报数据的 JSON 格式：<br />· *values-format*：数据被分成 `values` 和 `errors` 的子对象。<br />· *tags-format*：数据被放在一个数组中。关于通信数据格式，见 [数据上下行格式](../mqtt/api.md#数据上报) |
| **写请求主题**     | 接收点位写入请求的 MQTT 主题。关于通信数据格式，见 [数据上下行格式](../mqtt/api.md#写-tag) |
| **写响应主题**     | 发送点位写入响应的 MQTT 主题。                               |
| **设备数据终端节点** | AWS IoT 设备数据终端节点。                                 |
| **根 CA 证书**     | AWS IoT 设备数据终端节点根 CA 证书"。                        |
| **设备证书**       | 在 AWS IoT 控制台中创建事物时创建的设备证书 。               |
| **私有私钥**       | 在 AWS IoT 控制台中创建事物时创建的私有密钥 。               |

## 添加订阅

完成插件的添加和配置后，我们将继续通过订阅南向设备实现数据的转发。

完成设备配置后，在**北向应用**页，点击设备卡片/设备列进入**组列表**页。点击**添加订阅**，并进行如下设置：

- **南向设备**：选择要订阅的南向设备，例如，modbus-tcp-1；

- **组**：选择南向设备下的某个组，例如，group-1。

- **主题**：指定上报主题，例如 /neuron/mqtt/upload。

<img src="./assets/subscribe_topic.png" style="border:thin solid #E0DCD9; width: 60%" alt="Neuron version 2.4.0 MQTT subscribe interface">

上报数据的确切格式由**上报数据格式**参数控制，行为与 MQTT 插件一样。更多详细信息，请参阅 [数据上下行格式](../mqtt/api.md#data-upload)。

## 教程

[使用 Neuron 将数据桥接到 AWS IoT](./example.md) 教程演示了如何使用 AWS IoT 插件连接 AWS IoT Core。
