为了毕设,今天折腾了一天来准备网络环境。
首先是选择NODE-RED的原因
Node-Red是IBM提供一个基于浏览器的编辑器,帮助我们可以简单的通过拖拽的方式,来实现功能的IoT开发的工具,它是基于Node.js开发的可是话工具。我们可以利用Node-Red对硬件,API和云服务进行编程。
安装
我的环境是ubuntu1604的阿里云服务器。
获取软件最直接快速的方法 = 直接上官网 https://nodered.org/ 选择Documentation >> Getting Started 进入 选择 Running on Raspberry Pi (debin系的linux均采用此入口)
首先安装git
```bash
sudo apt install build-essential git
这一步一般都没问题,然后 如果你的网络环境好的话(足够科学) 直接复制这条命令 进去下载。
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
该脚本将:
删除Node-RED和Node.js的预打包版本(如果存在)
使用NodeSource安装当前的Node.js LTS版本。如果检测到已经从NodeSource安装了Node.js,则将确保它至少是Node 8,否则将其保留下来
使用npm安装最新版本的Node-RED
(可选)安装有用的Pi特定节点的集合
设置Node-RED作为服务运行,并提供一组与该服务一起使用的命令
Node-RED也已经为Raspbian仓库打包,并出现在“推荐软件”列表中。这允许使用进行安装, apt-get install nodered并包括Raspbian打包的Node.js版本,但不包括npm。
虽然起初使用这些软件包很方便,但我们强烈建议您 改用上面的安装脚本。
在本地运行
与在本地运行Node-RED一样,您可以使用该node-red命令在终端中运行Node-RED。然后可以通过按Ctrl-C或关闭终端窗口来停止它。
由于Raspberry Pi的内存有限,您将需要使用附加参数启动Node-RED,以告知底层Node.js进程比其他情况更快地释放未使用的内存。
为此,您应该使用替代node-red-pi命令并传入 max-old-space-size参数。
node-red-pi --max-old-space-size=256
作为服务运行
Pi的安装脚本还将其设置为作为服务运行。这意味着它可以在后台运行,并可以在启动时自动启动。
提供了以下命令来使用该服务:
node-red-start-这将启动Node-RED服务并显示其日志输出。
按Ctrl-C或关闭窗口并不能停止服务; 它一直在后台运行
node-red-stop -这将停止Node-RED服务
node-red-restart -这将停止并重新启动Node-RED服务
node-red-log -这显示服务的日志输出
您也可以通过选择Menu -> Programming -> Node-RED菜单选项在Raspbian Desktop上启动Node-RED服务。
开机自动启动
如果要在打开或重新启动Pi时运行Node-RED,可以通过运行以下命令使服务自动启动:
sudo systemctl enable nodered.service
要禁用该服务,请运行以下命令:
sudo systemctl disable nodered.service
打开编辑器
Node-RED运行后,您可以在浏览器中访问编辑器。
如果您在Pi桌面上使用浏览器,则可以打开地址:http:// localhost:1880。
这时候你可能会发现你并不能从Google浏览器进入你的node-red界面 ,那么可能是因为你的1880端口未开放。(这一步非常重要 我查了很久才查出问题所在。)
开放防火墙,由于我开启的服务是在1880端口,所以以下演示开放1880
iptables -I INPUT -p tcp --dport 1880 -j ACCEPT
另外需要在阿里云添加安全组,这个很简单 自己搜就可以搜到。
之后就可以很愉快的在公网访问到你的NODE-RED项目了。
建议使用PM2来管理Nodejs服务:
https://www.cnblogs.com/CyLee/p/8997358.html