Arduino接口与Node-RED监测网页上的温度和湿度
扫描二维码
随时随地手机看文章
Node-RED是一个非程序员使用物联网的可视化工具,它可以用来更快地构建应用程序,减少物联网产品的“上市”时间。Node-RED可以以新颖有趣的方式轻松地将硬件设备、api和其他在线服务连接在一起。Node-RED是一个开源物联网工具,由IBM新兴技术组织实施。它是用JavaScript编写的,在NodeJS平台上工作。
Node-RED以基于模块的方式运行,其中预定义的模块以图形方式连接以执行Node-RED上的操作序列,或者换句话说,它直接访问来自Arduino,树莓派等微控制器板的数据,使用预定义的端口号。或销。在本教程中,我们将使用Arduino将DHT11传感器读数发送到Node-RED仪表板。同样,我们也将Arduino与ThingSpeak连接起来,设计了一个气象站。
在本教程中,我们将只关注Arduino和Node-RED。在本教程中,我们将介绍如何在windows上安装和设置Node-RED。然后,我们还将在Node-RED上设计一个仪表板,并使用不同的输入、输出和功能节点来创建流。
组件的要求
硬件组件
•Arduino Uno
•DHT11传感器
•跳线
软件应用程序和在线服务
•Arduino IDE
•node . js
•Node-RED
线路图
DHT11传感器与Arduino接口的电路图如下所示,原理图是使用Fritzing软件绘制的。
DHT11是一款流行的3针传感器,可以测量温度和湿度。该传感器采用单线协议,易于与Arduino等开发板一起使用。DHT11的Vcc引脚与Arduino的3.3v引脚连接,GND引脚与Arduino的GND引脚连接。而数据引脚与Arduino的2号引脚连接。连接完成后,我的硬件是这样的。
正如你所看到的,我已经使用了简单的雌性到雄性的连接线来进行连接。完整的设置是由连接到我的电脑的USB端口供电。我们之前将DHT11与Arduino连接,构建物联网气象站。
代码的解释
Arduino Node-RED的完整程序可以在本教程的末尾找到。为这个项目编程Arduino UNO不需要太多的努力,因为它只使用一个DHT传感器库。Arduino板必须测量来自DHT11传感器的温度和湿度值,并使用COM端口串行发送。该串行信息随后将由Node-RED进行处理。
因此,通过初始化所需的库、Arduino引脚和变量来开始编程。
string函数用于将float变量转换为字符串。这里可变的温度和湿度被转换成字符串。
在void loop()中,dht11传感器计算温度和湿度值并分别存储为temp和hum变量。串行打印用于在串行监视器上打印温度和湿度值。
将Arduino与笔记本电脑连接,正确选择主板和端口,然后点击Upload按钮。上传代码后,打开串口监视器。设置串口显示器的波特率为9600。
设置Node-RED
1. 安装node . js
从Node.js官方主页下载最新版本的Node.js。在撰写本教程时,可用的版本是10.16.0。下载完成后,运行下载的MSI文件,在默认路径下安装Node.js。
安装完成后,打开命令提示符并运行以下命令,以确保Node.js和npm已正确安装。
您应该会收到包含我们的包的版本号的返回输出。我的是这样的。
2. 安装Node-RED
要在系统上安装Node-RED,请在命令提示符下运行以下命令:
Node-RED没有预先安装Arduino、Serial Port和Dashboard的节点。因此,使用以下命令安装这些节点:
•安装Arduino节点
•安装串口节点
•安装Dashboard节点
3. 运行Node-RED
安装完成后,在命令提示符中使用以下命令运行node-red:
将本地服务器链接复制到您的浏览器以访问Node-RED。您应该看到如下所示的窗口,在桌面上显示节点红色启动。
•节点库是节点的列表,这些节点代表与设备相关的硬件、协议和软件特性
•电流流或流是节点连接在一起以创建程序的地方
•调试控制台就像Arduino串行监视器一样,可以提供值
•部署按钮用于将流上传到目标硬件
•信息控制台提供关于突出显示/选定对象的信息
在Node-RED中创建流
要开始,请将输入Serial节点拖到流部分中
现在编辑,双击节点,弹出窗口将打开。在该窗口中,输入连接Arduino的串口,在波特率部分选择9600。
在此之后,向下滚动节点调色板并将两个Function节点拖到流部分,一个用于温度,另一个用于湿度。
双击第一个函数,输入它的名称和程序。
这个函数的Java代码如下:
Node-RED从串行监视器接收ASCII码格式的湿度和温度值。要在Node-RED Dashboard上显示这些值,我们需要将ASCII代码转换为实际值。因此,要做到这一点,上面使用java程序。在这个程序中,除小数点和逗号外,每个ASCII码都减去48。
在Temp函数之后,现在双击第二个函数:
该函数的Java代码如下:
如上所述,该程序用于将湿度值从ASCII码格式更改为实际值。完成温度和湿度功能后,向下滚动并将两个Debug节点拖到流程部分。
要设计Dashboard,请向下滚动节点调色板到Dashboard,并将两个Gauge拖到Temperature和humidity的flow部分。
最后的流程是这样的
通过将以下代码导入到Node-RED服务器,您可以直接在Node-RED服务器上创建此流。
为此,单击菜单按钮,然后单击Import ->剪贴板。在剪贴板窗口中,粘贴下面给出的代码。
Node-RED代码
现在可以部署流了。我们可以使用deploy按钮在Node-RED上部署流。
要访问Node-RED仪表板,请在浏览器中复制链接。Node-RED仪表盘看起来像这样:
通过在你的路由器转发端口,这个网页可以从互联网上的任何地方访问。这就是Node-RED如何用于图形化编程和构建基于物联网的应用程序。
本文编译自iotdesignpro