arduino安装包_Win10系统安装NodeRed并通过串口连接Arduino

Node-Red是一个流行的基于Node的JavaScript工具库,可以使用图形化的方法快速进行JavaScript项目开发,用于网站、物联网项目等不同场景。对于习惯LabVIEW一类图形化编程语言的用户,或者并非软件专业的工程师与爱好者而言,是一个呗用于项目开发的非常方便的工具。Node-Red的开发需要依赖Node环境,因此,无论在Windows下还是Linux系统中,都需要安装Node作为基础。
Arduino是应用非常广泛的开源物联网开发平台之一, 在Node-red中可以通过几个不同的发行包来连接Arduino,直接以图形化的方式进行物联网项目开发。

158089815136820fbd27c95a8c530ab5.png

1.Windows系统安装Node-Red的几种方法

1.1 使用Docker安装Node-red

目前大部分公开资料中关于Windows下安装Docker的说明都是过期的,旧版Docker的安装需要启用HyperV虚拟机,而新版的Docker对Windows的支持已经要友好许多,Windows 10专业版和企业版可以直接安装桌面版的Docker,家庭版的Windows则需要启用WSL2功能来进行安装。Windows10专业版和企业版安装Docker的步骤可参见,Windows家庭版安装步骤同样在Docker官网的 中可以看到。

一般来说,在国内由于网络环境的原因,需要配置Docker仓库镜像为国内镜像,以提高镜像下载速度。提供了基于Docker安装与使用Node-Red的方法。电脑中安装Docker后,可在终端运行以下命令来运行Node-Red。为了实现运行数据的持久化,在硬盘中新建文件夹(此处为D:dockerdataode_red_data)用于存储Docker数据。也可以使用docker create volume node_red_data在Docker默认的存储路径中创建卷node_red_data来存储数据。

 docker run -it -p 1880:1880 -v D:dockerdataode_red_data:/data --name mynodered nodered/node-red

以上命令各参数含义如下:

docker run         //新建并运行一个Docker容器-it         //给容器附着一个终端,用以监视容器的运行状况-p 1880:1880         //将宿主机的1880端口(前一个)映射到容器内部的1880端口-v D:dockerdataode_red_data:/data  //将外部存储数据卷映射为内部/data。以实现数据存储持久化--name mynodered     //为容器命名nodered/node-red      //用于建立容器的镜像(image) ,如果本地没有该镜像,则从Docker仓库下载一个--device=/dev/ttyS0   //将外部串口ttyS0映射给Docker镜像,该命令在Windows版Docker下不可用

在创建完容器后,以后可以用以下命令管理容器:

docker start mynodered //启动mynodered容器docker stop mynodered  //停止mynodered容器docker attach mynodered //为mynodered容器附着一个终端docker rm mynodered //删除mynodered容器docker pull nodered/node-red //拉去一个node-red镜像。如果要升级容器镜像,可以执行本命令拉取并重新生成容器

nodered启动后,打开浏览器输入localhost:1880即可打开nodered编辑界面开始程序设计。

20e3093dbae705ed21b968efd29d8322.png

1.2 Windows系统中直接安装node-red

在windows下直接安装node-red,需要先安装nodejs。在windows下可以通过下载官网安装包或通过nvm-windows安装。安装完nodejs后,可以通过运行以下命令安装node-red:

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

注意: 上述命令中的--unsafe-perm参数,是为了保证npm的运行权限。出于安全考虑,npm默认不支持以 root 用户(或windows管理员)运行,即使你用 root 用户身份运行了,npm 也会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就无法执行。为了避免这种情况,要么需要专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,保证运行时的用户和npm用户一致,而不会切换到 nobody 上。
安装完成后,打开终端,运行node-red即可启动nodered。nodered启动后,打开浏览器输入localhost:1880即可打开nodered编辑界面开始程序设计。注意:如果node是使用nvm-windows进行安装的,可能在运行node-red时会由于缺少settings.js文件而无法启动的错误。这是由于系统未下载安装该文件造成的。需要下载settings.js文件,并复制到C:甥敳獲.node-red文件夹下。

1.3 在Windows 10的Linux子系统WSL中安装node-red

Windows10提供了功能非常强大的WSL功能,可以兼容各种主要发行版本的Linux,以Ubuntu18.04为例,在使用nvm安装了node之后,可以通过以下命令来安装并运行node-red。

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

nodered启动后,打开浏览器输入localhost:1880即可打开nodered编辑界面开始程序设计。

2.使用Node-Red通过串口连接Arduino

2.1 Node-Red安装附加包的方法

Windows版本的Docker不支持访问串口,这在Docker官方项目的Issue中以及Docker官方论坛多个主题下已经经过反复讨论,截止目前,Docker的Windows版本也暂时并没有支持串口和USB等外部设备的计划,因此,对于在Windows下通过Docker安装的Node-Red,目前是没有办法访问串口的。如果是Linux下运行Docker,则可能通过前节的--device参数将串口提供给Docker容器进行操作。
在Windows或者WSL(或者Ubuntu系统)下,要使用Node-Red通过串口连接Arduino,需要先安装相应的包,在Node-red下安装附加包,一种方式是通过编辑界面菜单选择节点管理,然后在安装界面搜索需要的包(如下图)。另外一种则是在在nodered的安装目录下运行安装命令npm install 来进行软件包安装。

dab4b050c892e9ee471418da0f405217.png


连接Arduino常用的包有两个,一个是node-red-node-arduino,另一个是基于流行的johnny-five包的npm install node-red-contrib-gpio。在WSL或者Ubuntu等linux发行版中,按照上述两种方式中的任一种进行安装即可。
在windows下,需要先安装windows-build-tools,否则可能出现node-gyp rebuild error编译错误导致软件包安装无法完成。windows-build-toos的安装,需要在windows下以管理员权限运行PowerShell,并在PowerShell中输入以下命令:npm install --global --production windows-build-tools@4.0.0,等待系统下载并安装python,jvm等编译器即可。这里指定windows-build-tools版本为4.0.0是因为该版本是目前测试可用的,其他版本可能造成一些不稳定。
除了该命令外,github上也有手动进行编译环境搭建的方法(没有测试):

1.输入python --version检查系统路径中是否有安装python,以及python的版本2.下载并安装python2.7 并进行安装,将python2的路径添加的环境变量中3.检查并安装 .NET 4.5.1+ 4.下载并安装Visual C++ Build Tools 2015 ,安装Window 8.1或Windows 10 SDK。5. 配置npm 参数 msvs_version 为2015: npm config -g set msvs_version 2015

2.2 Arduino固件下载

要使用Node-red通过串口操作Arduino,首先需要通过Arduino官方IDE下载Firmate固件到Arduino中。在Arduino官方IDE中打开示例,Firmate中的StandardFirmate并上传到Arduino班子中。这样Arduino即具备了通过串口远程操作的条件。

8e27791a35a80f5b7fbb21e0d67828a0.png

2.3 Node-Red配置并使用串口

安装完node-red-node-arduino包后,可导入官方的节点示例文件:

 [{"id":"d7663aaf.47194","type":"arduino-board","device":""},{"id":"dae8234f.2517e","type":"inject","name":"0.5s tick","topic":"","payload":"","payloadType":"date","repeat":"0.5","crontab":"","once":false,"x":150,"y":100,"z":"359a4b52.ca65b4","wires":[["56a6f8f2.a95908"]]},{"id":"2db61802.d249e8","type":"arduino out","name":"","pin":"13","state":"OUTPUT","arduino":"d7663aaf.47194","x":570.5,"y":100,"z":"359a4b52.ca65b4","wires":[]},{"id":"56a6f8f2.a95908","type":"function","name":"Toggle output on input","func":"// If it does exist make it the inverse of what it was or else initialise it to false// (context variables persist between calls to the function)context.level = !context.level || false;// set the payload to the level and returnmsg.payload = context.level;return msg;","outputs":1,"noerr":0,"x":358,"y":100,"z":"359a4b52.ca65b4","wires":[["2db61802.d249e8"]]}]

导入后节点示意如下图,双击Pin13节点打开编辑界面,编辑Arduino节点,配置串口为当前连接的串口。在Windows系统下,可以通过控制面板-设备管理器看到Arduino对应的串口编号,如果该串口为COM5,则需要将端口号相应配置为COM5,在Ubuntu等Linux子系统下,一般为类似/dev/ttyUSB1或者/dev/ttyS5的形式。注意:在Windows10内置的WSL子系统中,linux系统的串口号与Windows下一一对应,如果在Windows下看到Arduino的串口为COM5,则相应的在WSL中的地址为/dev/ttyS5。

afc326d5c302a24f54091a6f91c6dfbc.png

2.4 Linux及WSL中串口操作权限的配置

在Linux或者WSL系统中,由于串口权限默认仅赋予dialout用户组,因此,需要将当前用户添加到dialout用户组中,才具备操作串口的权限。使用以下命令将当前用户添加到dialout用户组中。adduser $(whoami) dialout。
在WSL下,可能需要修改串口文件的操作权限,如果windows下串口为COM5,则相应地:sudo chmod 666 /dev/ttyS5。
修改完成后,即可通过终端命令操作串口,或者使用node-red等软件通过串口来操作Arduino了。

stty -F /dev/ttyS5 115200 //设置串口速率screen /dev/ttyUSB0 9600  //使用screen以9600速率打开串口,退出终端使用Ctrl+A k命令。
ArduinoNode-RED接口以监控网页上的温度和湿度。 硬件部件 Arduino UNO × 1个 DHT11温湿度传感器(4针) × 1个 软件应用程序和在线服务 Arduino IDE Node-RED是非程序员使用物联网的可视化工具,可用于更快地构建应用程序并减少IoT产品的“上市时间”。Node-RED可用于以新颖有趣的方式轻松地将硬件设备,API和其他在线服务连接在一起。Node-RED是一种开源物联网工具,已由IBM Emerging Technology组织实施。它是用JavaScript编写的,并且可以在NodeJS平台上工作。 Node-RED采用基于模块的方法,其中图形化连接了预定义模块以在Node-RED上执行操作序列,换句话说,它使用预定义端口号直接访问Arduino,Raspberry Pi等微控制器板的数据。或密码。在本教程中,我们将使用Arduino将DHT11传感器读数发送到Node-RED仪表板。同样,我们还将Arduino与ThingSpeak连接在一起,以设计气象站。 在本教程中,我们将仅关注ArduinoNode-RED 。在整个教程中,我们将介绍如何在Windows安装和设置Node-RED 。然后,我们还将在Node-RED上设计一个仪表板,并使用不同的输入,输出和功能节点来创建流。 下面显示了将DHT11传感器与Arduino接口的电路图,该原理图是使用Fritzing软件绘制的。 DHT11是一种流行的3针传感器,可以测量温度和湿度。该传感器采用单线协议工作,易于与Arduino等开发板一起使用。DHT11的Vcc引脚与Arduino的3.3v引脚连接,而GND引脚与Arduino的GND引脚连接。当数据引脚与Arduino的第二引脚连接时。连接完成后,我的硬件如下所示 如您所见,我使用简单的母对公连接线进行连接。完整的设置由连接到我的计算机的USB端口供电。我们之前将DHT11与Arduino连接以构建IOT气象站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值