This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3220SF:具有 MQTT 客户端演示的 CC3220、AWS 作为代理

Guru**** 2556410 points
Other Parts Discussed in Thread: CC3220SF, CC3200, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/840264/cc3220sf-cc3220-with-mqtt-client-demo-with-aws-as-broker

器件型号:CC3220SF
主题中讨论的其他器件: CC3200UNIFLASH

大家好、

我正在使用 CC3220SF Launchpad。

对于我的一个应用、我们需要 MQTT 协议(CC3220SF launchpad -充当 MQTT 客户端)来连接到中介程序并与移动应用程序(smatphone)交换消息、移动应用程序在另一侧充当 MQTT 客户端。

我在提供的示例 MQTTclient Demo 应用程序( http://dev.ti.com/tirex/explore/content/simplelink_academy_cc32xxsdk_3_20_02_00/modules/wifi/wifi_mqtt/wifi_mqtt.html#mqtt-client-demo)上构建我的应用程序,但作为安全客户端选项,我不使用 iot.eclipse.org 作为代理,而是使用 AWS 服务,我们为此创建了 AWS 帐户并获得了所需的证书。

这是否可以实现? AWS 有3个主要证书、而不像 iot。eclipse 在示例代码中仅使用1个证书?

能否有人能给我一个关于如何解决这个问题的见解?

我尝试添加证书并刷写 MQTT 客户端示例代码。但遇到以下错误。

与代理的连接失败,错误代码:-111</n></r>bridge disconnecting</n></r></r></r></r></r>机载 客户端断开连接</r></r></r>\n>.</cc3200</r></r\n>Unoggle</r>topic \n</r></cc3200</r>Undcple</r></r\n>从/Broker/To/cc32xx 取消订阅主题</r\n</r\n</r\n>取消订阅</r\n</r\n</r\n</cc3CMTRL></cc3200</r>取消订阅<</r></r></r\n</r\n</r></r\n</r\n>已完成-关闭所有线程和资源</r\n>取消订阅<</r\n</mdleL3</r></mdle</r></r></r\n</r\n</r></mdle</r></r\n</r\n</r\n>

我在 开发模式下使用 UNITflash 软件添加了证书-文件>用户文件

添加文件并使用刻录选项-> 开发模式 >生成映像->编程映像(创建和编程)编程到 CC3220sf 中,然后使用 CCS 转储我的示例代码,在这里添加了服务器地址和安全文件名

 

#define CLIENT_NUM_SECURE_FILES 3.

char * mqtT_Client_secure_files[client_NUM_SECURE_files]={"****。pem "、**" pem。crt"、"****。pem。key"};

 

我曾提到 (http://dev.ti.com/tirex/explore/content/simplelink_academy_cc32xxsdk_3_20_02_00/modules/wifi/wifi_mqtt/wifi_mqtt.html#mqtt-secure-client-demo

此致、

Sanath Rai

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sanath、

    可以使用基本 MQTT 库连接到 AWS IoT。 不建议这样做、因为您将失去许多 Amazon AWS IoT 特定功能、例如器件阴影、但仍然是可能的。

    我建议您通读此主题、看看您是否可以复制他们将 CC3200连接到 AWS IoT 的操作:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/672081/2477680#2477680

    错误-111似乎是由于服务器地址或端口不正确所致。 我建议您首先仔细检查 AWS IoT 端点地址。

    如果您需要更多说明、或者对于在不使用 AWS SDK 的情况下连接 AWS IoT 有其他问题、请告诉我。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     您好、Michael、

    感谢您的回复和链接。

    我将仔细检查并使其正常工作。

    如果有任何疑问,我会回来的。

    谢谢、此致、

    Sanath Rai

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    为了澄清问题、如果我错了、我会回答正确。

    以下是我要使用 AWS 代理的方法。

    我创建了一个亚马逊帐户、获得了服务器地址 和端口号、并下载了所需的证书、其中3个都是根证书(.pem)、私钥(.pem.key)和客户端证书(.pem.crt)。

    我已在  开发模式下使用 UNIFLASH 刷写证书-Files > Userfiles

    添加了这些文件并使用 了 Burn 选项->  Development mode > Generate Image->Program Image (Create and Program) (编程到 CC3220sf 中 )、之后使用 CCS 转储了 MQTT 客户端示例代码、其中添加 了服务器地址、端口号和安全文件名。

    这是正确的方式吗?

     

    此致、

    Sanath Rai

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    我以前遇到的错误-111是由于我们的办公室网络造成的、现在已经解决了。

    现在我收到错误456,我发现它是 sl_error_bsd_ESECBADCAFILE,表示 CA 文件错误。

    使用 OpenSSL 并已按照您提供的链接中的建议转换为 DER 格式。 以下是我用于转换3个文件的命令

    $ openssl pkcs8 -topk8 -feel PEM -outform der -in ***.pem.key -out fu4 .der.key -nocrypt
    $ openssl x509 -outform der -in CA.pem -out CA.der
    $ openssl x509 -outform der -in ***-certificate.pim.crt -out -certificate.der.crt
    这些是用于转换文件的 COORect 命令吗?
    此致、
    Sanath Rai
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sanath、

    您看到的错误与根 CA 证书文件损坏有关。 我获取 DER 格式的根 CA 的方法是只需复制本地 PC 上存在的证书副本。 我在这里的 E2E 博文中介绍了执行此操作的步骤:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/673247/2478357#2478357

    请注意,在上述帖子中,客户使用的服务需要 VeriSign 根 CA 认证 这不是 AWS 所需的证书。

    相反,请从您的 PC 复制 Starfield Class 2证书颁发机构证书。 获得证书后、覆盖您通过 Uniflash 使用的当前根 CA 证书、并再次尝试连接到 AWS。

    此致、

    Michael