当前位置:   article > 正文

node-red 插件使用教程_noedered插件

noedered插件

一  java 编写 coap 客户端与服务端

概述:

CoAP是为物联网而生,短小精悍,它底层基于UDP协议的,其它具体参考百度百科,本例子是基于Californium框架。

1、先决条件
java环境

eclipse工具

Maven插件(有最好,不需要手动下载jar引入,没有的话手动引入)

2、下载Californium框架核心jar
californium-core.jar : 包括CoAP核心部分

element-connector.jar  包括适用于UDP和DTLS的java套接字抽象层

scandium.jar: 包括DTLS

  1. <dependency>
  2.         <groupId>org.eclipse.californium</groupId>
  3.         <artifactId>californium-core</artifactId>
  4.         <version>2.0.0-M7</version>
  5.     </dependency>
  6.     <dependency>
  7.         <groupId>org.eclipse.californium</groupId>
  8.         <artifactId>element-connector</artifactId>
  9.         <version>2.0.0-M7</version>
  10.     </dependency>
  11.   <dependency>
  12.         <groupId>org.eclipse.californium</groupId>
  13.         <artifactId>scandium</artifactId>
  14.         <version>2.0.0-M7</version>
  15.     </dependency>

3、创建java工程或Maven工程,创建一个Server类

  1. import org.eclipse.californium.core.CoapResource;
  2. import org.eclipse.californium.core.CoapServer;
  3. import org.eclipse.californium.core.coap.CoAP.ResponseCode;
  4. import org.eclipse.californium.core.server.resources.CoapExchange;
  5.  
  6. public class HelloCoAPServer {
  7.  
  8.     public static void main(String[] args) {
  9.         CoapServer server = new CoapServer();//主机为localhost 端口为默认端口5683
  10.         server.add(new CoapResource("hello"){//创建一个资源为hello 请求格式为 主机:端口\hello
  11.  
  12.             @Override
  13.             public void handleGET(CoapExchange exchange) { //重写处理GET请求的方法
  14.                 exchange.respond(ResponseCode.CONTENT, "Hello CoAP!");  
  15.             }
  16.             
  17.         });
  18.         server.add(new CoapResource("time"){ //创建一个资源为time 请求格式为 主机:端口\time
  19.  
  20.             @Override
  21.             public void handleGET(CoapExchange exchange) {
  22.                 Date date = new Date();
  23.                 exchange.respond(ResponseCode.CONTENT,
  24.                         new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
  25.             }
  26.             
  27.         });
  28.         server.start();
  29.     }
  30. }


4、创建一个客户端:

  1. public class GETClient {
  2.  
  3.     public static void main(String[] args) throws URISyntaxException {
  4.         URI uri = null;
  5.         uri = new URI("localhost:5683/hello");  //创建一个资源请求hello资源,注意默认端口为5683
  6.         CoapClient client = new CoapClient(uri);
  7.         CoapResponse response = client.get();
  8.         if(response !=null){
  9.             System.out.println(response.getCode());  //打印请求状态码
  10.             System.out.println(response.getOptions());  //选项参数
  11.             System.out.println(response.getResponseText());  //获取内容文本信息
  12.             System.out.println("\nAdvanced\n");    // 
  13.             System.out.println(Utils.prettyPrint(response));  //打印格式良好的输出
  14.         }
  15.     }
  16. }


5、测试
先运行HelloCoAPServer的main方法

然后运行GETClient的main方法

6、日志:

  1. 2.05
  2. {"Content-Format":"text/plain"}
  3. Hello CoAP!
  4.  
  5. Advanced
  6.  
  7. ==[ CoAP Response ]============================================
  8. MID    : 10763
  9. Token  : [aab3ac5818d1e598]
  10. Type   : ACK
  11. Status : 2.05
  12. Options: {"Content-Format":"text/plain"}
  13. RTT    : 26 ms
  14. Payload: 11 Bytes
  15. ---------------------------------------------------------------
  16. Hello CoAP!
  17. ===============================================================

node-red安装node-red-contrib-coap

 

 

安装之后拖拽配置

coap请求节点配置如下

 

 

coap 服务端节点配置如下

 

服务端响应节点配置如下,获取get请求参数

可以自定义响应的格式,注意访问coap服务器的时候,如果有配置hosts,应该使用hosts访问这个地址

 

三 msyql插件 node-red-node-mysql

1. 安装

2.配置调试

 找到mysql组件,然后编辑节点

 配置新的节点

设置参数

组件连接

sql编写组件

内容

 

 

三 kafka组件

 

输入输出kafka组件

配置添加节点

 

四 http

 

 

部署后访问nodered端口的/test路径

http://127.0.0.1:1880/test?a=1&b=3

 

 

串口插件

使用方式如下博客

https://blog.csdn.net/geek_monkey/article/details/80755719

串口安装权限异常等问题失败 使用离线安装

  1. sudo npm install node-pre-gyp --save
  2. sudo npm install serialport --unsafe-perm --build-from-source --save
  3. npm i npm to update 
  4. npm install -g serialport

 

node-red 自定义插件

先找到对应的自定义插件所在的目录

 

将后缀的demo删除后重启nodered,输入组件中会多一个sample,即为自定义组件

修改自定义组件内容 99-sample.js

核心部分

 

编码格式为js语法,但是部分api不存在.例如数组遍历map不存在

按照自己的要求修改好之后,重启node-red

 

 

node-red全局变量

使用函数组件

编辑内容

  1. if (local.action===undefined)//获取全局变量,如果不存在,赋默认值
  2. {
  3.   local.action="站立";
  4.   local.x=0;
  5.   local.y=0;
  6. }else{//如果存在,进入计算
  7.     switch(msg.payload.token){
  8.         case "move_x":
  9.             local.x+=parseInt(msg.payload.value)
  10.             break;
  11.         case "move_y":
  12.              local.y+=parseInt(msg.payload.value)
  13.             break;
  14.     }
  15. }
  16. context.set('data',local);//保存全局变量

函数节点使用16进制字节数组

msg.payload = Buffer.from([0x12,0x22,0xd3,0x23])

 

node-red的用户权限与密码配置

首先找到配置文件,启动node-red的时候,启动日志会显示配置文件位置,如下图所示

修改配置文件

找到这个位置,放开注释

password是经过加密处理的

permissions 表示用户权限,分为 读写 -> *    只读  -> read

获取加密后的秘钥

首先进入找到加密工具所在的目录

进入开始转化秘钥

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" mypassword

 

得到的$2a$08$Dk6dTjxEPi85sObY1HRYZ.QDoB53m/J5M1MFulhgKTvpwuuC5AzOW表示新的秘钥,将他写入配置文件setting中的pasword中,即下一次登录使用的密码为mypassword

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/993458
推荐阅读
相关标签
  

闽ICP备14008679号