Azure FreeRtos中间件和DPS,在ESP32上



我正在做一个项目,在ESP32上使用Azure FreeRTOS中间件堆栈。

我想介绍DPS来提供我所有即将推出的3K设备。

Stack有一个DPS选项,但我想要一些建议,因为我想为所有3K设备生成一个全局bin文件。我希望DPS在IoT Hub上创建设备,并为设备提供必要的密钥,以便它可以为每个设备id生成SAS令牌。

设备ID将是ESP32设备的序列号或mac号。

我想避免的是为每个设备创建一个单独的bin文件。

这可能吗?还是我错过了理解DPS?

DPS不会为每个设备提供必要的密钥。要使用Azure IoT(DPS或Hub(,您必须在设备上闪存每个设备的凭据,这通常在制造阶段完成。

当你使用DPS组注册时,你从DPS中获得一个组密钥,并使用一个公式生成每个设备的密钥(散列组密钥和注册/设备id(,你需要一种方法将3k个密钥闪存到生产线上的3k个设备。

DPS实际上是自动提供设备的。你没有额外的步骤。

让我解释一下是怎么做的。

步骤1:你必须从Azure门户网站做一次的事情:

  • 您创建/拥有一个Azure物联网中心并正在运行
  • 你的创建/你有azure DPS启动和运行
  • 您使用DPS中的对称密钥创建/拥有组注册
  • 您保留了您的团体注册的主键,以便稍后使用。让我们把主键称为"key">

步骤2:编程

来自您的固件源代码:

  1. 编写一个代码函数,返回设备唯一的设备ID。你可以使用一个后面跟着设备MAC地址的字符串,这通常是从Wifi接口(或以太网接口(获得的。例如:"3Kdevice-3454e210228c"所有设备的前缀都相同,但每个设备的十六进制数字后缀不同。让我们把这个字符串称为REG_ID
  2. 编写一个代码函数,为其运行的设备创建对称密钥,该密钥来自注册的主键(又名key(和注册ID(又名REG_ID(。您可以通过执行SHA256来实现这一点(请参阅DPS文档(。让我们将计算的对称密钥称为"SYM_key">
  3. 使用azure SDK通过向DPS提供注册ID(又名REG_ID(和计算的对称密钥(SYM_key(来从DPS获取凭据
  4. 您可以使用在第3点获得的凭据连接到物联网中心

相关内容

  • 没有找到相关文章

最新更新