教程:使用 AWS IoT 设备开发工具包将设备连接到 AWS IoT Core
本教程演示如何将设备连接到 AWS IoT Core,以便它可以与 AWS IoT 收发数据。完成本教程后,您的设备将配置为连接到 AWS IoT Core,您将了解设备如何与 AWS IoT 通信。
主题
先决条件
在开始本教程之前,请确保您具有:
-
已完成 AWS IoT Core 入门教程
在本教程中,您必须在某部分 配置您的设备,请为您的设备选择 连接 Raspberry Pi 或其他设备 选项,然后使用 Python 语言选项来配置设备。
注意
在该教程中使用的终端窗口保持开启,因为您还将在本教程中使用它。
-
可以运行 AWS IoT Device SDK v2 for Python。
本教程介绍了如何使用 Python 代码示例将设备连接到 AWS IoT Core,这些示例需要一个功能相对强大的设备。如果您使用的是资源受限的设备,则这些代码示例可能无法适用于这些设备。在这种情况下,使用 教程:使用 AWS IoT Device SDK for Embedded C 教程可能会更成功。
-
获取连接到设备所需的信息
要将设备连接到 AWS IoT,您必须拥有有关事物名称、主机名和端口号的信息。
注意
您也可以使用自定义身份验证将设备连接到 AWS IoT Core。您传递给授权方 Lambda 函数的连接数据取决于您使用的协议。
-
事物名称:您要连接到的 AWS IoT 事物的名称。您必须已将设备注册为 AWS IoT 事物。有关更多信息,请参阅 使用 AWS IoT 管理设备。
-
主机名:特定于账户的物联网端点的主机名。
-
端口号:要连接到的端口号。
您可以使用 AWS IoT Python SDK 中的
configureEndpoint方法来配置主机名和端口号。myAWSIoTMQTTClient.configureEndpoint("random.iot.region.amazonaws.com", 8883) -
为 AWS IoT 准备好您的设备。
在 AWS IoT Core 入门教程,您已准备好您的设备以及 AWS 账户,所以它们能够进行通信。本部分回顾了准备工作的各个方面,这些方面涉及与 AWS IoT Core 进行的任何设备通信。
对于要连接到 AWS IoT Core 的设备:
-
您必须具有 AWS 账户。
如果您没有账户,则 设置 AWS 账户 中的流程将介绍如何创建 AWS 账户。
-
在该账户中,您必须具有以下为您在 AWS 账户 和区域中的设备定义的 AWS IoT 资源。
创建 AWS IoT 资源 中的流程介绍了如何为您的 AWS 账户 和区域中的设备创建这些资源。
-
使用 AWS IoT 注册并激活以验证设备的设备证书。
该证书通常使用 AWS IoT 事物对象创建并随附其上。虽然设备不需要某个事物对象才能连接到 AWS IoT,但它会使设备获得额外的 AWS IoT 功能。
-
附加到设备证书的策略,该证书授权其连接到 AWS IoT Core 并执行您希望它执行的所有操作。
-
-
能够访问您的 AWS 账户 的设备端点的互联网连接。
设备端点在 AWS IoT 设备数据和服务端点 中描述,并且可以在 AWS IoT 控制台中的设置页面
看到。 -
诸如 AWS IoT Device SDK 提供的通信软件。本教程使用 AWS IoT Device SDK v2 for Python
。
查看 MQTT 协议
在我们讨论示例应用程序之前,它能有助于了解 MQTT 协议。与其它网络通信协议(如 HTTP)相比,MQTT 协议具有一些优势,这使得它成为了物联网设备的常用选择。本部分回顾的是适用于本教程的 MQTT 的主要方面。有关如何将 MQTT 与 HTTP 进行比较的信息,请参阅 为设备通信选择应用程序协议。
MQTT 使用发布/订阅通信模型
MQTT 协议在其主机上使用发布/订阅通信模式。此模式与 HTTP 使用的请求/响应模式不同。借助 MQTT,设备可以与由唯一客户端 ID 标识的主机建立会话。要发送数据,设备会将主题标识的消息发布到主机中的消息代理上。要接收来自消息代理的消息,设备通过在订阅请求中向消息代理发送主题筛选条件,来订阅主题。
MQTT 支持持久会话
消息代理接收来自设备的消息,并将消息发布到已订阅消息的设备。借助持久会话(即使在初始设备断开连接时,仍能保持活动状态的会话),设备可以检索在断开连接时发布的消息。在设备端,MQTT 支持服务质量级别(QoS),以确保主机接收设备发送的消息。
查看 pubsub.py Device SDK 示例应用程序
本部分将回顾本教程中适用的来自 AWS IoT Device SDK v2 for Python 中的 pubsub.py 示例应用程序。在这里,我们将回顾它如何连接到 AWS IoT Core 来发布和订阅 MQTT 消息。下一部分介绍了一些练习,帮助您了解设备如何与 AWS IoT Core 连接及通信。
通信协议
pubsub.py 示例演示了使用 MQTT 和 MQTT over WSS 协议进行的 MQTT 连接。AWS 通用运行时(AWS CRT)
MQTT
pubsub.py 示例在 mqtt_connection_buildermtls_from_path(此处显示)以使用 MQTT 协议建立与 AWS IoT Core 的连接。mtls_from_path 使用 X.509 证书和 TLS v1.2 对设备进行身份验证。AWS CRT 库处理该连接的较低级别的详细信息。
mqtt_connection = mqtt_connection_builder.mtls_from_path( endpoint=args.endpoint, cert_filepath=args.cert, pri_key_filepath=args.key, ca_filepath=args.ca_file, client_bootstrap=client_bootstrap, on_connection_interrupted=on_connection_interrupted, on_connection_resumed=on_connection_resumed, client_id=args.client_id, clean_session=False, keep_alive_secs=6 )
endpoint您的 AWS 账户物联网设备端点
在示例应用程序中,此值将从命令行传入。
cert_filepath设备证书文件的路径。
在示例应用程序中,此值将从命令行传入。
pri_key_filepath使用其证书文件创建的设备私有密钥文件的路径
在示例应用程序中,此值将从命令行传入。
ca_filepathRoot CA 文件的路径。仅当 MQTT 服务器使用信任存储中尚未存在的证书时才需要此项。
在示例应用程序中,此值将从命令行传入。
client_bootstrap处理套接字通信活动的通用运行时对象
在示例应用程序中,此对象会在调用
mqtt_connection_builder.mtls_from_path前实例化。on_connection_interruptedon_connection_resumed当设备连接中断和恢复时调用的回调函数
client_id在 AWS 区域 中唯一标识此设备的 ID
在示例应用程序中,此值将从命令行传入。
clean_session启动新的持久会话,或者(如果会话已存在)重新连接到现有会话
keep_alive_secs保持活动状态值(以秒为单位),在
CONNECT请求中发送。在此时间间隔内将自动发送 ping。如果服务器在此值的 1.5 倍之后没有收到 ping,假定连接丢失。
基于 WSS 的 MQTT
pubsub.py 示例在 mqtt_connection_builderwebsockets_with_default_aws_signing(此处显示)以使用借助 WSS 的 MQTT 协议建立与 AWS IoT Core 的连接。websockets_with_default_aws_signing 使用 Signature V4 通过 WSS 创建 MQTT 连接对设备进行身份验证。
mqtt_connection = mqtt_connection_builder.websockets_with_default_aws_signing( endpoint=args.endpoint, client_bootstrap=client_bootstrap, region=args.signing_region, credentials_provider=credentials_provider, websocket_proxy_options=proxy_options, ca_filepath=args.ca_file, on_connection_interrupted=on_connection_interrupted, on_connection_resumed=on_connection_resumed, client_id=args.client_id, clean_session=False, keep_alive_secs=6 )
endpoint您的 AWS 账户物联网设备端点
在示例应用程序中,此值将从命令行传入。
client_bootstrap处理套接字通信活动的通用运行时对象
在示例应用程序中,此对象会在调用
mqtt_connection_builder.websockets_with_default_aws_signing前实例化。regionSignature V4 身份验证使用的 AWS 签名区域。在
pubsub.py中,它将在命令行中传递输入的参数。在示例应用程序中,此值将从命令行传入。
credentials_providerAWS 提供用于身份验证的凭证
在示例应用程序中,此对象会在调用
mqtt_connection_builder.websockets_with_default_aws_signing前实例化。websocket_proxy_optionsHTTP 代理选项(如果使用代理主机)
在示例应用程序中,此值在调用
mqtt_connection_builder.websockets_with_default_aws_signing前初始化。ca_filepathRoot CA 文件的路径。仅当 MQTT 服务器使用信任存储中尚未存在的证书时才需要此项。
在示例应用程序中,此值将从命令行传入。
on_connection_interruptedon_connection_resumed当设备连接中断和恢复时调用的回调函数
client_id在 AWS 区域 中唯一标识此设备的 ID。
在示例应用程序中,此值将从命令行传入。
clean_session启动新的持久会话,或者(如果会话已存在)重新连接到现有会话
keep_alive_secs保持活动状态值(以秒为单位),在
CONNECT请求中发送。在此时间间隔内将自动发送 ping。如果服务器在此值的 1.5 倍之后没有收到 ping,则假定连接丢失。
HTTPS
HTTPS 怎么样?AWS IoT Core 支持发布 HTTPS 请求的设备。从编程的角度来看,设备会像其它应用程序一样将 HTTPS 请求发送到 AWS IoT Core。有关从设备发送 HTTP 消息的 Python 程序示例,请参阅使用 Python 的 requests 库的 HTTPS 代码示例。本示例将使用 HTTPS 将消息发送到 AWS IoT Core,以便 AWS IoT Core 将其解释为 MQTT 消息。
尽管 AWS IoT Core 支持来自设备的 HTTPS 请求,请务必查看 为设备通信选择应用程序协议 的消息,以便您可以对要使用哪种协议进行设备通信做出明智决定。
持久会话
在示例应用程序中,将 clean_session 参数设置为 False 即表示连接应该是持久连接。实际上,这意味着此调用打开的连接将重新连接到现有持久会话(如果存在)。否则,它会创建并连接到新的持久会话。
对于持久会话,如果设备未连接,则发送到设备的消息将由消息代理存储。当设备重新连接到持久会话时,消息代理会向设备发送它已订阅的所有已存储的消息。
如果没有持久会话,设备将不会接收设备未连接时发送的消息。使用哪个选项取决于您的应用程序,以及是否必须传达设备未连接时发生的消息。有关更多信息,请参阅 MQTT 持久会话。
服务质量
当设备发布和订阅消息时,可以设置首选的服务质量(QoS)。AWS IoT 支持用于发布和订阅操作的 QoS 级别 0 和 1。有关 AWS IoT 中 QoS 级别的更多信息,请参阅 MQTT 服务质量(QoS)选项。
适用于 Python 的 AWS CRT 运行时为其支持的 QoS 级别定义了这些常量:
| MQTT QoS 级别 | SDK 使用的 Python 符号值 | 描述 |
|---|---|---|
| QoS 级别 0 | mqtt.QoS.AT_MOST_ONCE |
无论是否收到消息,均只会尝试发送一次消息。如果出现诸如设备未连接或存在网络错误的情况,则消息可能根本不会发送。 |
| QoS 级别 1 | mqtt.QoS.AT_LEAST_ONCE |
消息将重复发送,直至收到 PUBACK 确认。 |
在示例应用程序中,发布和订阅请求的 QoS 级别为 1 (mqtt.QoS.AT_LEAST_ONCE)。
-
发布时的 QoS
当设备发布 QoS 级别为 1 的消息时,它会重复发送消息,直至从消息代理收到
PUBACK响应。如果设备未连接,消息将在重新连接后排队等待发送。 -
订阅时的 QoS
当设备订阅 QoS 级别为 1 的消息时,消息代理会保存设备订阅的消息,直到这些消息可以发送到设备。消息代理会重新发送消息,直至收到设备发出的
PUBACK响应。
消息发布
成功建立同 AWS IoT Core 的连接后,设备可以发布消息。pubsub.py 示例通过调用 mqtt_connection 对象的 publish 操作来完成此操作。
mqtt_connection.publish( topic=args.topic, payload=message, qos=mqtt.QoS.AT_LEAST_ONCE )
topic标识消息的消息主题名称
在示例应用程序中,这是从命令行传入的。
payload格式化为字符串的消息有效载荷(例如,JSON 文档)
在示例应用程序中,这是从命令行传入的。
JSON 文档是一种常见的有效载荷格式,并且由其它 AWS IoT 服务所认可;但是,消息有效载荷的数据格式,可以是发布者和订阅者同意的任何内容。但在某些情况下,对于大多数操作来说,其它 AWS IoT 服务只能识别 JSON 和 CBOR。
qos此消息的 QoS 级别
消息订阅
从 AWS IoT 和其它服务及设备接收消息时,设备会按其主题名称订阅这些消息。设备可以通过指定主题名称来订阅单个消息,也可以通过指定主题筛选条件来订阅一组消息(筛选条件中可以包含通配符)。pubsub.py 示例使用此处显示的代码订阅消息并注册回调函数,以便在收到消息后处理消息。
subscribe_future, packet_id = mqtt_connection.subscribe( topic=args.topic, qos=mqtt.QoS.AT_LEAST_ONCE, callback=on_message_received ) subscribe_result = subscribe_future.result()
topic要订阅的主题。这可以是主题名称或主题筛选条件。
在示例应用程序中,这是从命令行传入的。
qos在设备断开连接时,消息代理是否应该存储这些消息。
mqtt.QoS.AT_LEAST_ONCE的值(QoS 级别 1),创建连接时需要指定持久会话 (clean_session=False)。callback要调用以处理已订阅消息的函数。
mqtt_connection.subscribe 函数返回未来和数据包 ID。如果订阅请求成功初始化,则返回的数据包 ID 大于 0。要确保消息代理已接收并注册订阅,您必须等待异步操作的结果返回,如代码示例所示。
回调函数
pubsub.py 示例中的回调函数会在设备接收订阅的消息时处理这些消息。
def on_message_received(topic, payload, **kwargs): print("Received message from topic '{}': {}".format(topic, payload)) global received_count received_count += 1 if received_count == args.count: received_all_event.set()
topic-
消息的主题
这是收到的消息的特定主题名称,即使您订阅了主题筛选条件也是如此。
payload-
消息有效载荷
此格式是特定于应用程序的格式。
kwargs可能的其它实际参数,如
mqtt.Connection.subscribe中所述。
在 pubsub.py 示例中,on_message_received 仅显示主题及其有效载荷。它还会计算在达到限制后收到的结束程序的消息。
您的应用程序将评估主题和有效载荷,以确定要执行的操作。
设备断开和重新连接
pubsub.py 示例包括在设备断开连接和重新建立连接时调用的回调函数。您的设备对这些事件采取的操作是特定于应用程序的。
当设备首次连接时,它必须订阅主题才能接收。如果设备在重新连接时存在会话,则会恢复其订阅,并在设备重新连接后,将来自这些订阅的所有存储消息发送到设备。
如果设备的会话在重新连接时不再存在,则必须重新订阅其订阅。持久会话的生命周期有限,当设备断开连接太长时间时,可能会过期。
连接设备并与 AWS IoT Core 通信
本部分介绍了一些练习,可帮助您探索将设备连接到 AWS IoT Core 的不同方面。在这些练习中,您将使用 AWS IoT 控制台中的 MQTT 测试客户端pubsub.py
在本部分中,您将:
对于这些练习,您将从 pubsub.py 示例程序开始操作。
注意
这些练习假定您已完成 AWS IoT Core 入门教程 教程并使用该教程中的设备终端窗口。
订阅通配符主题筛选条件
在本练习中,您将修改用于调用 pubsub.py 的命令行以订阅通配符主题筛选条件,并根据消息主题处理收到的消息。
练习流程
在本练习中,假设您的设备包含温度控制和光控。它使用这些主题名称来标识有关的消息。
-
在开始练习之前,请尝试根据 AWS IoT Core 入门教程 教程在您的设备上运行此命令,确保一切都准备就绪,可正常进行练习。
cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpointyour-iot-endpoint您看到的输出应该与您在入门教程看到的一样。
-
在本练习中,请更改这些命令行参数。
操作
命令行参数
效果
添加
--message
""配置
pubsub.py以仅侦听添加
--count
2收到两条消息后结束程序
更改
--topic
device/+/details设定要订阅的主题筛选条件
对初始命令行进行这些更改将得到此命令行。在设备的终端窗口中输入此命令。
python3 pubsub.py --message "" --count 2 --topic device/+/details --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpointyour-iot-endpoint程序应该类似如下所示:
Connecting to a3qexamplesffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-24d7cdcc-cc01-458c-8488-2d05849691e1'... Connected! Subscribing to topic 'device/+/details'... Subscribed with QoS.AT_LEAST_ONCE Waiting for all messages to be received...如果您在终端上看到类似的内容,则表示您的设备已准备就绪,并侦听主题名称以
device开始并以结束/detail的消息。所以,让我们来测试吧。 -
以下是您的设备可能会收到的几条消息。
主题名称
消息有效载荷
device/temp/details{ "desiredTemp": 20, "currentTemp": 15 }device/light/details{ "desiredLight": 100, "currentLight": 50 } -
在 AWS IoT 控制台中使用 MQTT 测试客户端,将上一步中描述的消息发送到您的设备。
-
在 AWS IoT 控制台中打开 MQTT 测试客户端
。 -
在订阅主题中,在订阅主题字段输入主题筛选条件:
device/+/details,然后选择订阅主题。 -
在 MQTT 测试客户端中的订阅列中,选择 device/+/details。
-
对于上表中的每个主题,请在 MQTT 测试客户端中执行以下操作:
-
在发布中,在表中输入主题名称列的值。
-
在主题名称下方的消息有效载荷字段中,在表中输入消息有效载荷列的值。
-
观看
pubsub.py运行所在的终端窗口,并在 MQTT 测试客户端中选择发布到主题。
您应该看到该消息是由终端窗口中的
pubsub.py接收的。 -
-
练习结果
有了这个,pubsub.py,使用通配符主题筛选条件订阅消息,接收消息并在终端窗口中显示这些消息。请注意您如何订阅单个主题筛选条件,并调用回调函数来处理具有两个不同主题的消息。
处理主题筛选条件订阅
在上一练习的基础上,修改 pubsub.py 示例应用程序以评估消息主题并根据主题处理订阅的消息。
练习流程
评估消息主题
-
将
pubsub.py复制到pubsub2.py。 -
在您常用的文本编辑器或 IDE 中打开
pubsub2.py。 -
在
pubsub2.py中,查找on_message_received函数。 -
在
on_message_received中,在以print("Received message开头的行之后和在以global received_count开头的行之前插入以下代码。topic_parsed = False if "/" in topic: parsed_topic = topic.split("/") if len(parsed_topic) == 3: # this topic has the correct format if (parsed_topic[0] == 'device') and (parsed_topic[2] == 'details'): # this is a topic we care about, so check the 2nd element if (parsed_topic[1] == 'temp'): print("Received temperature request: {}".format(payload)) topic_parsed = True if (parsed_topic[1] == 'light'): print("Received light request: {}".format(payload)) topic_parsed = True if not topic_parsed: print("Unrecognized message topic.") -
保存更改并使用此命令行运行修改后的程序。
python3 pubsub2.py --message "" --count 2 --topic device/+/details --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpointyour-iot-endpoint -
在 AWS IoT 控制台中打开 MQTT 测试客户端
。 -
在订阅主题中,在订阅主题字段输入主题筛选条件:
device/+/details,然后选择订阅主题。 -
在 MQTT 测试客户端中的订阅列中,选择 device/+/details。
-
对于此表中的每个主题,请在 MQTT 测试客户端中执行以下操作:
主题名称
消息有效载荷
device/temp/details{ "desiredTemp": 20, "currentTemp": 15 }device/light/details{ "desiredLight": 100, "currentLight": 50 }-
在发布中,在表中输入主题名称列的值。
-
在主题名称下方的消息有效载荷字段中,在表中输入消息有效载荷列的值。
-
观看
pubsub.py运行所在的终端窗口,并在 MQTT 测试客户端中选择发布到主题。
您应该看到该消息是由终端窗口中的
pubsub.py接收的。 -
您应在终端窗口中看到类似的内容。
Connecting to a3qexamplesffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-af794be0-7542-45a0-b0af-0b0ea7474517'... Connected! Subscribing to topic 'device/+/details'... Subscribed with QoS.AT_LEAST_ONCE Waiting for all messages to be received... Received message from topic 'device/light/details': b'{ "desiredLight": 100, "currentLight": 50 }' Received light request: b'{ "desiredLight": 100, "currentLight": 50 }' Received message from topic 'device/temp/details': b'{ "desiredTemp": 20, "currentTemp": 15 }' Received temperature request: b'{ "desiredTemp": 20, "currentTemp": 15 }' 2 message(s) received. Disconnecting... Disconnected!
练习结果
在本练习中,您添加了代码,以便示例应用程序能够识别并处理回调函数中的多条消息。有了这个,您的设备便可以接收消息并对它们采取行动。
您的设备接收和处理多条消息的另一种方式是单独订阅不同的消息,并将每个订阅分配给自己的回调函数。
从您的设备发布消息
您可以使用 pubsub.py 示例应用程序从您的设备发布消息。虽然它会按原样发布消息,但消息不能作为 JSON 文档读取。本练习修改了示例应用程序,以便能够在可以被 AWS IoT Core 读取的消息有效载荷中发布 JSON 文档。
练习流程
在本练习中,以下消息将以 device/data 主题发布。
{ "timestamp": 1601048303, "sensorId": 28, "sensorData": [ { "sensorName": "Wind speed", "sensorValue": 34.2211224 } ] }
准备 MQTT 测试客户端以监控本练习中的消息
-
在订阅主题中,在订阅主题字段输入主题筛选条件:
device/data,然后选择订阅主题。 -
在 Subscriptions(订阅)列中,选择 device/data(设备/数据)。
-
将 MQTT 测试客户端窗口保持打开状态,等待来自设备的消息。
使用 pubsub.py 示例应用程序发送 JSON 文档
-
在您的设备上,将
pubsub.py复制到pubsub3.py。 -
编辑
pubsub3.py来更改其所发布消息的格式。-
在文本编辑器中打开
pubsub3.py。 -
查找此代码行:
message = "{} [{}]".format(message_string, publish_count) -
将其更改为:
message = "{}".format(message_string) -
查找此代码行:
message_json = json.dumps(message) -
将其更改为:
message = "{}".json.dumps(json.loads(message)) -
保存您的更改。
-
-
在您的设备上运行此命令以发送消息两次。
python3 pubsub3.py --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --topic device/data --count 2 --message '{"timestamp":1601048303,"sensorId":28,"sensorData":[{"sensorName":"Wind speed","sensorValue":34.2211224}]}' --endpointyour-iot-endpoint -
在 MQTT 测试客户端中,检查它是否已解释并格式化了消息有效载荷中的 JSON 文档,如下所示:
预设情况下,pubsub3.py 也会订阅它发送的消息。您应该看到它在应用程序的输出中收到了消息。终端窗口应类似如下所示。
Connecting to a3qEXAMPLEsffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-5cff18ae-1e92-4c38-a9d4-7b9771afc52f'... Connected! Subscribing to topic 'device/data'... Subscribed with QoS.AT_LEAST_ONCE Sending 2 message(s) Publishing message to topic 'device/data': {"timestamp":1601048303,"sensorId":28,"sensorData":[{"sensorName":"Wind speed","sensorValue":34.2211224}]} Received message from topic 'device/data': b'{"timestamp":1601048303,"sensorId":28,"sensorData":[{"sensorName":"Wind speed","sensorValue":34.2211224}]}' Publishing message to topic 'device/data': {"timestamp":1601048303,"sensorId":28,"sensorData":[{"sensorName":"Wind speed","sensorValue":34.2211224}]} Received message from topic 'device/data': b'{"timestamp":1601048303,"sensorId":28,"sensorData":[{"sensorName":"Wind speed","sensorValue":34.2211224}]}' 2 message(s) received. Disconnecting... Disconnected!
练习结果
有了这个,您的设备可以生成要发送到 AWS IoT Core 的消息以测试基本连通性并提供 AWS IoT Core 来处理的设备消息。例如,您可以使用此应用程序从您的设备发送测试数据以测试 AWS IoT 规则操作。
查看结果
本教程中的示例为您提供了有关设备如何与 AWS IoT Core(这是 AWS IoT 解决方案的一个基础部分)通信的基础知识实践经验。当您的设备能够与 AWS IoT Core 通信时,他们可以将消息传递给 AWS 服务及其可以执行操作的其它设备。同样,AWS 服务和其它设备可以处理消息发回到您的设备所产生的信息。
如果您准备好进一步探索 AWS IoT Core,请尝试以下教程: