欢迎回到我们的第二篇文章,关于使用 Arduino、 Heroku Node-RED 不到一天的时间内创建一个强大的双向物联网原型。如果您错过了第一部分,我们介绍了设置 Node-RED、添加安全性以及部署到 Heroku。在本文中,我们将介绍如何在Arduino板上创建嵌入式系统,将它们连接到我们的Node-RED实例,自定义草图,并创建一个允许我们的设备相互通信的流程。让我们开始吧。

什么是Arduino IoT Cloud?

为了将物理设备(板)连接到互联网,我们将使用Arduino IoT Cloud,设备管理器和数据可视化工具。在 https://create.arduino.cc 上 设置帐户后,我们可以创建我们的第一个 数字孪生。

数字孪生是系统的逻辑在线表示形式。在Arduino中,这被称为“事物”或“应用程序”。我们需要创建两个不同的应用程序——一个用于传感器,另一个用于执行器。然后,我们可以将物理设备(我们的MKR1010板之一)与其关联。

场景如下:我们希望其中一个设备读取环境亮度(传感器设备),另一个MKR1010(执行器设备)上的LED矩阵在亮度值超过一定限制时显示ON,否则关闭。

首先,我们需要创建一个新事物并给它起一个名字。我将我的EnvSensors称为EnvSensors。然后,我们需要关联一个设备。为此,请单击“配置新设备”。

在配置设备之前,请务必拔下 MRK1010 上的所有扩展板,并使用 USB 微型电缆将其插入电脑。安装设备后,您可以为其分配名称。我称之为SensorsBoard。

Setup device UI

在第一阶段,系统将识别电路板;它应该找到一个MKR1010。然后,它将草图上传到电路板,以自动将SSL证书放入安全元件中,以便将来进行加密通信。此过程需要几分钟,因此请耐心等待。

Uploading Sketch

一旦完成,我们可以继续创造我们的东西。我们需要创建至少一个属性,亮度,以开始从我们的设备收集数据。

Creating a Property

属性变量名称将为亮度。类型将为照度。我们还将为模糊度设置最小值 0,为高亮度设置最大值 1000。然后我们将权限设置为“只读”,因为我们只能从传感器读取;我们不能给它们写值。接下来,我们希望定期发送亮度值,因此我们将频率设置为一秒间隔。

最后,单击“添加属性”并检查以确保将传感器板设置为关联设备。

现在我们可以单击“编辑草图”,这将打开一个 Web IDE。Arduino IoT Cloud 会自动创建一个模板来发送我们之前指定的数据——我们只需要从传感器读取数据。

要从板上读取传感器,我们必须将 MKR ENV 屏蔽放在 MKR WIFI 1010 的顶部。然后,我们可以再次将 USB 电缆插入电路板并在最终上传之前稍微修改草图。

Plugging USB into Board在软件方面,我们需要添加一个库来读取传感器的值。以下行就足够了:

#include <Arduino_MKRENV.h>

然后,为了避免在初始化之前尝试读取数据,我们继续循环,直到库加载并与传感器通信:

JavaScript

 

xxxx
1
1
 如果环境。开始()){
2
println“无法初始化 MKR ENV 屏蔽!”);

3
1);
4
}

这就是奇迹发生的地方!自动生成 thingProperties.h 的文件命名已经为我们声明了亮度变量:

浮动亮度;

JavaScript

 

xxxx
1