1

我正在尝试使用 SARA-R410-02B 模块 (NB-IoT) 通过 MQTT 或 HTTPS 将数据输入 Azure IoT-Hub。Microsoft 的 IoT-Hub MQTT 指南指出:

  • 对于用户名字段,使用 {iothubhostname}/{device_id}/?api-version=2018-06-30,其中 {iothubhostname} 是 IoT 中心的完整 CName。

    例如,如果 IoT 中心的名称是 contoso.azure-devices.net,并且设备的名称是 MyDevice01,则完整的用户名字段应包含:contoso.azure-devices.net/MyDevice01/?api-version= 2018-06-30

  • 对于密码字段,使用 SAS 令牌。SAS 令牌的格式与 HTTPS 和 AMQP 协议的格式相同:

    SharedAccessSignature sig={signature-string}&se={expiry}&sr={URL-encoded-resourceURI}

这意味着用户名(和密码)将超过我在 SARA-R410 上的 30 个字符的限制。有没有办法解决?在 HTTPS 方面我也有同样的限制。

我发现使用 x.509 证书可以解决密码限制,但用户名保持不变。

4

2 回答 2

0

如果您的设备能够进行 X.509 身份验证,那么它将解决您的密码问题,但正如您所指出的,它不会解决您的用户身份问题。您可以在没有 api 参数的情况下尝试它,看看它是否会采用默认值。如果它有效,那会给你一些角色来玩。

如果做不到这一点,您将需要设置一个应用程序来接收遥测数据并将其转发到集线器。例如将所有内容发布到蚊式服务器并让应用程序订阅并转发。不幸的是,增加了更多的管理和故障点。

于 2020-01-14T00:36:16.037 回答
0

我试过不使用 HTTP 的 api 参数,但它不起作用。我在覆盖方面有一些问题,所以我还没有尝试过 MQTT,但我猜结果会是一样的吗?

我从 u-blox 得到了答复。他们说可以通过在 SARA-R410 上使用套接字实现 MQTT 协议来解决这个问题。这似乎是最好的解决方案。

于 2020-01-17T08:18:21.517 回答