Skip to main content

Watcher 到 Node-RED 快速入门

Node-RED 是一个编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。

它提供了一个基于浏览器的编辑器,使用调色板中的各种节点可以轻松地将流程连接在一起,并且可以一键部署到其运行时环境中。

为了让我们的用户更容易地将 Watcher 的数据连接到各种其他 PaaS 平台进行更深入的数据处理。例如,从 Watcher 到 IFTTT、Telegram、Twilio 等。我们将制作一系列 Watcher & Node-RED 教程。

本教程是系列教程中的第一个,将指导您安装和使用 Node-RED,并调用 Watcher API 连接到 Node-RED。

第一部分:安装 Node.js®

要在本地安装 Node-RED,您需要一个支持的 Node.js 版本

从官方 Node.js 主页下载最新的 14.x LTS 版本的 Node.js。它会为您的系统提供最佳版本。

note

运行下载的 MSI 文件。安装 Node.js 需要本地管理员权限;如果您不是本地管理员,安装时会提示您输入管理员密码。安装时接受默认设置。安装完成后,关闭任何打开的命令提示符并重新打开,以确保获取新的环境变量。

在安装 Node.js 时,如果您使用的是没有安装过任何编程环境的计算机,我们建议您在安装 Node.js 时勾选安装必要工具的选项,这将为您省去很多必要的麻烦。

安装 Node-RED 最简单的方法是使用 Node 的包管理工具 npm。但是,我们不建议使用 npm 1.x 安装 Node-RED,而是建议升级到最新的 npm 2.x 版本。

note

Windows 上(需要 Windows 10 及以上版本),使用 Win+R 快捷键并在弹出窗口中输入 cmd 来调出终端并执行以下命令。

如果您使用的是 MacOSLinux,请在终端中执行以下命令,非 root 用户请在命令前添加 sudo

npm install -g [email protected]

Once installed, open a command prompt and run the following command to ensure Node.js and npm are installed correctly.

node --version && npm --version

You should receive back output that looks similar to:

> v16.17.0
> 2.15.12

第二部分. 安装 Node-RED

将 Node-RED 作为全局模块安装会将命令 node-red 添加到您的系统路径中。在命令提示符下执行以下命令:

npm install -g --unsafe-perm node-red

If Node-RED is installed as a global npm package, then execute the command node-red directly:

node-red

这将把 Node-RED 日志输出到终端。您必须保持终端打开以保持 Node-RED 运行。

这将允许您在 http://localhost:1880 上查看 Node-RED 编辑器。

第三部分:在 Watcher 中运行任务

告诉 Watcher 您希望它帮助您做什么。您只需要在输入框中输入一些命令。例如,检测到人时通知我如果有火灾请告诉我 等。如果您想了解更多,请跳转到这里

因此,当 Watcher 检测到火灾时,它将通过 SenseCraft APP 以及音频警报和闪烁的 RGB 灯通知您。

第四部分:Watcher 向 Node-RED 发送消息

我们提供两种方法将消息从 watcher 发送到 Node-RED:SenseCAP 节点和 HTTP 协议。您可以选择任何您喜欢的方法。

方法 1:使用 SenseCAP 节点

步骤 1:获取 Watcher API 密钥

打开您的 SenseCraft APP 并按照以下步骤获取 组织 IDAPI 密钥。我们稍后会使用它们。

页面 1页面 2页面 3
页面 4页面 5页面 6

步骤 2. 安装 SenseCAP 节点

点击三条横线图标,然后点击 Manage palette 选项。

点击 Install 选项,输入 sensecap 进行搜索,然后 安装 它。

OpenStreamdebug 模块拖拽到工作区域,然后用线 连接 它们。

双击 OpenStram 模块,然后会打开一个侧边窗口。给它命名并创建一个新账户。

为您的账户命名,并输入您刚才获得的 Organization IDAPI key

点击 Done 按钮以获取平台的所有消息,或者您可以选择您想要接收的特定消息。例如,如果您只想接收您的 Watcher 消息,您可以填入 EUI 代码,该代码可以在设备 Setting -> About Device 中找到,或者在 步骤 6 的消息中找到。

点击 Deploy 按钮。这个按钮就像编译和运行按钮。无论您做什么更改,都需要点击这个按钮。

之后,您将看到一个连接标志,这意味着它按预期工作。当 Watcher 发送消息时,您将在 Node-RED 中接收到它们。

方法 2:使用 HTTP 协议

步骤 1. 开启 HTTP 块功能

当您运行任务时,点击 Detail Configs 按钮,然后开启 HTTP Push Notification 并点击 Go Setup。您需要填入 您的计算机 IP 地址Node-RED 访问端口(默认端口是 1880)。然后点击 Update NowRun Task

页面 1页面 2页面 3页面 4

步骤 2. 在 Node-RED 中配置

首先,您需要在 Node-RED 中导入工作流。

将以下代码粘贴到其中并点击 Import 按钮。

[
{
"id": "99b783856e77b41f",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": "",
"env": []
},
{
"id": "2791b077ca7367c9",
"type": "http in",
"z": "99b783856e77b41f",
"name": "",
"url": "/v1/notification/event",
"method": "post",
"upload": false,
"swaggerDoc": "",
"x": 450,
"y": 460,
"wires": [
[
"5de4e51231d87d00"
]
]
},
{
"id": "61c50a0666f83a50",
"type": "http response",
"z": "99b783856e77b41f",
"name": "",
"statusCode": "200",
"headers": {},
"x": 830,
"y": 460,
"wires": []
},
{
"id": "5de4e51231d87d00",
"type": "function",
"z": "99b783856e77b41f",
"name": "",
"func": "// here to process data\n// for example, extract alarm info \n// msg.payload = {\n// alertMsg: msg.payload.events.text\n// }\n msg.payload = {\n code: 200,\n msg:\"ok\",\n data: msg.payload\n}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 660,
"y": 460,
"wires": [
[
"61c50a0666f83a50",
"852490a1c300cd94"
]
]
},
{
"id": "852490a1c300cd94",
"type": "debug",
"z": "99b783856e77b41f",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 840,
"y": 520,
"wires": []
}
]

现在,当 watcher 检测到人员时,它会自动向 Node-RED 发送消息~

第 5 部分. 预览图像

如果您想预览来自 Watcher 的图像,您需要在 Node-RED 中安装一个库。

如果不需要,您可以忽略这部分。

安装后,您可以在输出部分找到它,将其拖拽到您想要预览图像的位置并连接。

这一步非常重要。您需要双击图像预览节点在此节点中填写 base64 url。不要忘记点击右上角的 Done 和 Deploy 按钮。之后,当 Watcher 消息再次到来时,我们将预览图像~

恭喜!现在数据已成功从 Watcher 传输到 Node-RED。下一个 wiki 我们将引导您了解如何将数据从 Watcher 传输到其他平台,欢迎尝试~

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...