简介
Google IoT Core 是一个针对 IoT 应用场景的云端设备管理平台。node-red-contrib-google-iot-core
是一款专门用于 Node-RED 的扩展包,它提供了一些节点,可以方便地进行设备的注册、连接和消息的下发等操作,进而实现 IoT 应用中的设备管理和数据交互。
在本文中,我们将会介绍如何使用node-red-contrib-google-iot-core
扩展包将一个简单的设备接入到 Google IoT Core 中进行数据上传。
准备工作
在开始使用 node-red-contrib-google-iot-core
扩展包之前,你需要事先准备以下工作:
- 安装 Node-RED
- 安装
node-red-contrib-google-iot-core
扩展包 - 创建一个 Google Cloud 项目,并开启 Google IoT Core 服务
创建设备
在 Google IoT Core 服务中,我们需要先创建一个设备来进行后续的操作。首先,打开 Google Cloud 控制台,在左侧导航栏中找到“IoT Core”服务,进入该服务后,进入“设备管理”页面,创建一个新设备。
在创建设备的页面中,我们需要填写设备的 ID 和设备的注册证书。设备 ID 即为你所创建的设备的唯一标识,建议使用一个易于辨识的名称。注册证书是一个由 Google 云服务签发的数字证书,用来对设备进行身份验证。我们可以使用 Google Cloud 的在线工具自动生成该证书,也可以使用其他工具手动生成并导入到 Google Cloud 中。
创建设备后,在设备列表中找到该设备,点击设备 ID 右侧的“查看”按钮,在弹出的页面中可以看到该设备的注册信息和连接信息。
在该页面中,我们需要记录下 rsa_private_key
和 private_key_id
两个值,这是后续在 Node-RED 中连接设备时需要使用的信息。
创建 Node-RED 流程
在 Node-RED 中安装 node-red-contrib-google-iot-core
扩展包后,在左侧工具栏中可以找到与 google-iot
相关的节点,如下图所示:
在本例中,我们将使用 google-iot-in
和 google-iot-out
两个节点实现设备的注册和数据的传输。首先,我们创建一个 google-iot-in
节点,用于注册设备并获取设备的证书和注册信息。
在该节点中,我们需要点击“Add an google-iot-in-config configuration”按钮,进行设备的配置。在弹框中,填写设备的注册信息和连接信息,分别对应上述所提到的 rsa_private_key
和 private_key_id
。
配置完成后,该节点已经可以用于设备的注册和连接,我们可以进行测试,使用该节点输出设备的证书信息。
接下来,我们需要创建一个 google-iot-out
节点,用于将设备的数据发布到 Google IoT Core 中。在该节点中,我们同样需要配置设备的注册信息和连接信息,并在“Payload”中填写发布的数据内容。
配置完成后,该节点可以用于设备数据的上传。我们可以创建一个简单的 inject
节点,定时输出一些测试数据,作为设备数据上传的触发器。
至此,我们的 Node-RED 流程已经创建完成。
示例代码
下面是该示例的全部 Node-RED 流程:
[{"id":"b260f136.c2a32","type":"google-iot-ingoogle-iot-in-config","z":"","projectId":"<project-id>","registryId":"<iot-registry-id>","region":"<region>","deviceId":"<device-id>","key":"<rsa-private-key>","keyId":"<private-key-id>"},{"id":"552efedf.1ea4b4","type":"google-iot-out","z":"dbcec38b.ab81","name":"send to google iot core","googleiotconfig":"b260f136.c2a32","x":720,"y":160,"wires":[[]]},{"id":"38f03de.5cc5d88","type":"inject","z":"dbcec38b.ab81","name":"send-test-data","props":[{"p":"payload"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Hello World!","payloadType":"str","x":290,"y":160,"wires":[["552efedf.1ea4b4"]]}]
上述代码中,<project-id>
表示 Google Cloud 项目 ID,<iot-registry-id>
为 Google IoT Core 中的 IoT Registry ID, <region>
和 <device-id>
分别表示设备所在的地理区域和设备 ID,<rsa-private-key>
和 <private-key-id>
为 Google IoT Core 中生成的注册证书信息。
总结
在本文中,我们介绍了 npm
包 node-red-contrib-google-iot-core
的使用方法,并提供了一个简单的示例,希望读者可以通过本文了解如何在 Node-RED 中方便快捷地接入 Google IoT Core 并进行设备数据的传输。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005730381e8991b448e92bf