-
智能楼宇控制系统的革新——M31系列分布式IO模块
随着物联网技术的飞速发展,智能楼宇控制系统正逐渐成为现代建筑的标配。它不仅能够提高建筑的能源效率,还能提升用户的生活品质和舒适度。在这样的背景下,分布式IO模块作为智能楼宇控制系统的核心组成部分,发挥着至关重要的作用。今天,我为大家介绍一款能够为智能楼宇控制提供高效解决方案的设备——M31系列分布式IO模块。 一、M31系列分布式IO模块的概述 M31系列分布式IO模块是由成都亿佰特电子科技有限公司研发的一款集成了数字输出(DO)、模拟输入(AI)和数字输入(DI)的主机模块,我们使用的这款为主…
-
浏览器串口助手插件,web版本串口调试助手浏览器插件 Web Serial Online 发布
Web Serial Online:串口调试的新时代 在数字化不断进步的今天,开发者和工程师面对单片机如ESP8266、ESP32以及RS485设备的调试任务时,往往需要便捷而高效的工具。我们最近推出的浏览器插件——Web Serial Online,旨在简化这一流程,提供一个无缝且直观的解决方案。 即插即用的高效工具 通过简单的几步操作,你可以开始使用Web Serial Online: 4. 选择串口后,点击“打开串口”按钮开始通信。 功能全面,操作简单 插件的界面设计直观,使得设定和操作过…
-
基于NA111 ModBus485串口服务器的工业自动化监控与控制
背景 工业自动化监控与控制是指使用技术设备和软件系统自动地操控和监视生产过程,以提高效率、质量、可靠性和安全性。这通常涉及到机械设备、电子硬件和计算软件的协调工作,通过减少人工干预来优化工业操作。在工业自动化监控与控制领域,串口服务器起着至关重要的作用,主要通过为旧式和现代工业设备提供网络连接和远程通信功能,能极大地提高工业系统的可操作性和灵活性。串口服务器在工业自动化监控与控制中的几个关键作用主要包括:设备网络化,数据集成与中心化管理, 实现远程监控和控制,增强系统的可扩展性和兼容性,提供高效…
-
边缘网关畅维通达EN6400使用测评
1. 引言 在当前快速发展的工业4.0时代,边缘计算已经成为了一个关键技术,它能够使数据处理更加接近数据源头,从而提高处理速度并降低响应时间。这一技术尤其在工业自动化领域显示出了极大的潜力,因为它能有效处理大量来自工业设备和传感器的数据,实现实时监控和控制。边缘网关作为连接传感器、控制器和中心处理系统的桥梁,不仅负责数据的采集和预处理,还负责数据的加密和传输,确保数据在传输过程中的安全和完整性。此外,边缘网关能够支持多种通信协议,包括但不限于RS485、Ethernet等,使其在各种工业环境中具…
-
自定义node-red节点中,如何编写节点配置信息弹窗
前言 最近有读者通过博客向我咨询,在自定义node-red节点时,如何编写该节点的配置页面,就是我们通常见到的,双节节点打开的信息弹窗。如下图: 上面两张图,展示了inject节点与mqtt in 节点的配置弹窗。在弹窗中,除了上面的删除,取消,完成,和下面的失效按钮。中间部分都是需要开发者自己编写的。你需要什么按钮,需要哪些输入框,还有文本域。 节点配置弹窗是用户配置,修改节点配置数据的主要方式。 下面就教大家如何编写这部分的页面配置弹窗是编写在 节点的html 文件里 并且写在 注意scri…
-
在monaco中引入额外ts类型库,极大地增强编辑器体验
前言 在之前的文章中,我们介绍了如何在monaco中为某一个方法增加注释,可以通过codelen 也可以通过Marker来显示某个变量,常量,或方法的文档。但这种方法不太适合大规模的库,比如一个js库有上百个方法,作为一名懒惰的程序员不可能将每一个方法都添加到monaco中。那么本篇文章就来给大家介绍一种借助typescript的类型声明文件,来增强编辑器的体验。不仅仅能够显示某个方法的详细文档,还有该方法的自动完成。 核心方法只有一个 addExtraLib() addExtraLi…
-
将vue js语言支持添加注册到monaco editor中
前言 最近在使用gitlab的web ide时发现当编写一个 vue组件时,文件的后缀名为.vue。在编辑器的右上角会显示当前的编程语言时vue,并且高亮语法或标签,格式化,折叠都表现很优秀。但是其实monaco是不支持vuejs的,作为一名前端开发者,我们有时需要在monaco编辑器中编写vue组件,所以我就利用业余时间尝试 在讲vuejs集成到monaco中。确切说vuejs并不是一个编程语言,它和html很类似,但也有很多差异,这里就不展开讲了。本文主要我是如何探索,实践将vuejs集成到…
-
monaco editor 与 vscode 两个项目的联系与异同点
前言 很多人知道前端代码编辑monaco editor 与vscode 有关系,但却不清楚其中的细节,本篇文章就带大家了解一下两者的关系和异同点。 表面对比 首先,这两个项目都是来自微软,其中vscode 项目Github 144K star,是基于CS架构,客户端-服务端架构。主要的技术栈是elector,ts。 而monaco editor则是33.4k star,是一个bs架构,浏览器-服务端架构,主要的技术栈是typescript。 深层关系 以上信息对于使用过二者的同学基本都知道。 那…
-
VS Code 插件开发概览
前言 VS Code作为开发者的代码开发利器,越来越受开发者的喜爱。像我身边的前端,每天80%的开发工作都是在VS Code上完成的。随着人们对它的使用,不再满足简单的优雅,舒服写代码这一基本需求。有些人利用它进行摸鱼,看小说,查股票,看文章,下五子棋。当你在VS Code的插件市场输入摸鱼二个字时,会有20多个插件供你选择。 本篇文章就来概述一下 VS Code的能力,并帮你快速建立插件文档的索引。 插件功能 插件能够实现以下功能 组件的各大模块 案例大集合 插件的官方案例大集合 h…
-
在flowforge中使用模版配置来自定义自己的node-red实例
添加模版设置 在FlowForge中,每个项目都是从模板创建的。模板为项目定义了一组预配置的选项。这包括运行时设置- 比较常见就是 Node-RED settings.js文件中设置的值。 模板还定义了项目可以自定义哪些选项。 本篇文章就来解释一下如何向模板对象中添加新的Node-RED运行时选项,以便开发者可以为单个实例进行自定义,并传递到底层Node-RED settings.js文件。 对于简单的布尔/字符串/数字类型来说,可以直接定义。对于其他类型(对象/数组),就变得稍微复杂,目前官方…
-
修复开源VS Code 插件Trino Driver的三个小问题
前言 最近产品中使用到一款SQLTools的VS Code插件。该插件可以在VS Code中实现数据库管理,而且支持非常多的数据源类型,官方的数据源类型有CockroachDB,MariaDB,MySQL,PostgreSQL,SQLite,Microsoft SQL Server/Azure ,另外还有很多社区的数据源驱动。而我们使用管理的数据源类型是Trino,图标是一个小兔子。使用到的组件是Trino Driver但在使用这个插件时,存在两个问题。 问题 问题1是,Trino Driver…
-
在FlowForge中的如何管理远程设备,安装代理工具及配置证书
FlowForge中的设备 FlowForge平台除了可以创建多个Node-RED实例,还可以用来管理远程设备。只需要在设备上安装官方提供的工具包,它可以用来链接到平台,并接受平台的指令。 本篇文章就来介绍一下如何管理远程设备 安装设备代理工具包 官方提供的设备代理工具包是一个公开的npm仓库,@flowforge/flowforge-device-agent。 为了方便使用,你可以将它全局安装在远程设备上。安装命令 如果你想要使用Docker容器,而不是一个npm包,那么在运行容器是,需要挂载…
-
FlowForge 使用教程 团队资源管理,超管功能
前言 本篇文章结合FF的操作来给大家解释一下,FF在团队管理上都与那些资源可以操作。 团队创建 使用超管第一次登录FF平台,默认什么资源都没有,你只能先去创建一个团队才能继续往下操作。在FF平台上,团队就代表一个租户,也是一种资源隔离的手段。创建团队可以通过右上角按钮,超管也可以选择切换到某一个团队下查看相应的资源。如果要删除团队,需要进入团队内容,在团队设置页面。 如果你要查看系统中所有的团队状态,需要在右上角,个人头像下下的 Admin Settings 。 在FF平台上,有很多菜单。 这三…
-
FlowForge 重要组件及概念
FlowForge 概念 FlowForge(以下简称FF)能够使创建和管理Node-RED实例变得非常简单。为了实现这一点,FlowForge引入了很多概念,本篇文章就来简单聊一聊这些概念,他们是FF的重要组成部分,了解他们能够帮助我们理解整个产品的组成架构。 项目 在FF中,每一个Node-RED实例就代表一个项目。在FF应用中,你可以创建创建,启动,停止一个项目,也可以查看它的日志。 每一个项目都代表一个Node-RED实例,但在集成这些实例时,可以使用不同的自定义配置。 在Docker和…
-
在windows系统上安装flowforge
前言 前面两章都介绍了flowforge的起源和特性,并没有将如何使用它,本章节开始,将开始介绍它的使用。本篇主要讲解在windows系统上如何安装flowforge。 预备环境 在windows系统上安装flowforge需要Nodejs的版本在16及以上,并且Windows版本为 10 或 11。 安装 安装步骤第一步:在c盘下创建flowforge目录,第二步:下载最新版本的资源压缩包,https://github.com/flowforge/installer/releases/late…
-
node-red 的 devops平台 FlowForge 特性简介,有什么用处
前言 上一篇文章,我们简单了解了一下flowforge这个平台,它是用来弥补node-red的不足,一个社区的多租户,devops平台。并且介绍了为什么要使用flowforge。那么本篇文章就来讲解一下这个平台的特性。 特性 首先flowforge是一个开源的平台,仓库地址 https://github.com/flowforge/flowforge其次它有一个sass平台,不是在共有云上,用户可以注册,付费使用。另外它的版本也分社区版和企业版。以下是它的几大特性 支持大规模 易于实例管理,易于…
-
开源物联网Node-RED的DevOps平台FlowForge 概览
前言 使用过node-red 的朋友都很清楚,node-red有很多的优点,编写极少代码就能实现业务,丰富的节点让它可以满足大部分的业务场景,不用重启应用就可以重新部署的新的流.。。。。。。等等特点都让开发者对其爱不释手。但说到它的缺点,那也是有的。不支持多租户,多用户数据未做隔离,数据没有持久化到数据库。随着node-red的迭代,官方人员也意识到,在面对更加复杂的业务场景时,node-red的短板就显的尤为突出,这已经限制了node-red进入更大的市场,比如pass平台。于是官方开始思考开…
-
复杂布局结构,树形组件集成表格组件,每个节点代表一行
前言 本篇文章介绍一种比较复杂的排版方式,是一种树形组件集成了表格组件,树的每一个节点都具有一行配置。对比产品页面如下: 需求分析 看个这个页面,我们首先想到的是,一个树组件,和一个表格组件。如果要把右侧当成表格组件坐起来是比较复制的。因为涉及到树节点的折叠,对应的行也要折叠。所以最简单的办法是,模拟右侧的表格,将每一行写到树节点中。这样,折叠节点时,对应的行也相应被折叠。 代码实现 顶部的表头是一个单独的div实现,向右偏移。 左侧的树使用element-plus的树组件来展示。每一个节点应该…
-
node-red editor-client模块 源码解析
前言 上篇文章 我们讲解了Node-RED中的editor-api模块。它主要是用于提供给前端接口。本篇我们一起看一下Node-RED中的editor-client模块。该模块是前端代码,它决定了我们看到的界面。如果你要修改Node-RED的界面,那么你需要仔细研究它。下面让我们一起来看看吧。 editor-client 在packages/node_modeles/editor-client目录中。主要是四个核心目录 在locales目录下,存放了各个语言版本的翻译。zh-CN为中文简体zh-…
-
Node-RED editor-api 部分源码解析
背景 最近总有读者来向我询问如何定制开发Node-RED,他们想基于自己的项目做一些定制开发。比如调整Node-RED的布局,主题色,增加一些按钮。或者将一些其他功能集成进去。接下来的几篇文章我们就来分析一下NODE-RED的源码。 NODE-RED的核心代码主要在packages/node_modules/@node-red 该目录下。根据最新版,该目录下有6个子目录,分别是: 本篇首先讲解一下editor-api该目录的作用 及重要源码。方便开发人员开发时能够快速理解,并找到对应的…
-
在node-red中处理yaml,csv格式的数据格式
前言 在前面的章节中我介绍了如何在Node-RED中处理json与xml格式的数据。但随后又有读者向我询问,在node-red中如何处理yaml格式的数据,以及csv格式的数据。yaml格式的数据是随着这几年云原生而大行其道的数据格式。因为不需要中括号,格式优雅,而收到开发人员的喜爱。云原生中的资源定义都可以使用yaml文件来定义。CSV格式是实施分隔的文本文件。可以与excel中的数据互相转化。 YAML格式的数据处理 处理yaml格式数据主要使用的是yaml节点。该节点可以实现 在YAML格…
-
基于极狐GitLab OpenAPI与低代码Node-RED开发一个人项目Pipeline管理(查询流水线,创建流水线,重新触发流水线)
前言 最近在使用GitLab CI/CD时发现一个使用“不太顺畅”的使用场景。具体是这样的:作为一名开发者,有时需要同时负责几个前端项目的部署修复a项目的bug后需要部署到测试环境,修复b项目的bug后需要部署到测试环境。。。。。 由于各种原因,这种场景的部署并非是自动部署的,需要负责人去手动创建部署流水线。比如为了给测试人员提供一个可靠,稳定的的测试环境,会采用手动部署环境。 这就导致一个问题,我需要先进入A项目,点击流水线,选择对应分支,创建一个流水线。然后再进入B项目,重复以上操作。过程是…
-
在node-red中实现音频播放动态文本,及轮询循环显示Tab
背景 作为一名研究Node-RED的博主,经常会有读者留言向我询问一些问题的解决方案。本篇文章就谈一谈最近遇到的两个问题,比较典型。拿出来分析一下,大家可以学习学习。一共有二个问题:1:在node-red中如何实现调用系统音频播放动态文本?2:如何实现dashboard中的3个tab循环显示? 问题描述 第一个问题是要使用调用系统的音频硬件来播放动态内容,这种场景很常见,比如检测到一个设备的温度过高,在Node-RED接收到设备的告警后,会播放设备的报警音频。比如“设备A温度过高,请及时处理。”…
-
node-red中http request节点各种请求详解
前言 在node-red中,如果你想要请求外部资源,比如获取当地天气,这个时候就可以使用http request节点,这个节点可以让你的node-red应用集成各种接口,数据。不受跨域的限制,可以访问大部分的http接口。支持的请求方法也比较全,GET,PUT,POST,PATCH或DELETE都是可以的。并且支持自定义头部,cookie,请求地址模板化,上传文件,请求超时。等各种强大的功能。本篇文件就来详细介绍一下他的各种用法,帮助大家快速地掌握起来,提升工作效率。 节点配置概述 该节点 有输…
-
node-red中创建自定义节点 JavaScript 文件API编写详解
前言 在node-red中如果你没有找到自己需要的节点时,那么你可以自定义一个节点来满足自己的需求。之前的文章中,我有简单介绍过如何创建一个节点,并以转换大小写来举例。例子虽然简单,但可以让大家了解创建自定义节点的步骤以及一个节点的组成部分。那么本篇将会聚焦在自定义节点的js文件中。详细讲解其中的api,及其他配置项。通过之前的文章我们知道,节点的js文件是一个节点的核心文件,用于收取配置参数,处理业务逻辑,并向下游发送数据。下面让我们一起看看吧。 自定义节点JavaScript 文件 节点构建…
-
node-red中有关用户登录鉴权的研究
前言 默认地,node-red编辑器可以被任何访问的用户操作,包括修改节点,流数据,重新部署流。这种默认的部署方式只适用于运行在可靠的网络中。下面我就给大家介绍一下,在公网上部署node-red后,如何对其进行安全加固和权限验证。主要分为三部分 开启https node-red默认是使用http来进行访问,如果要配置https访问,你需要在node-red的配置文件setting文件中配置一下https部分的内容在配置文件中 https配置项可以是一个json静态数据,也可以是一个函数。完整的配…
-
如何在NodeRed中,处理设备的json,xml格式的数据
前言 在使用node-red处理各种业务场景时,我们时常会遇到各种各样的数据格式,最常见的是json数据格式,其次还有xml,yaml,以及csv格式的数据格式。这些都是需要我们对其数据格式有一点解析和转化的能力,今天这篇文章我就来教大家如何处理json 和 xml数据格式。 node-red中json格式的转换 在node-red中处理json数据格式是最简单的。最主要的原因是node-red本身就是使用javascript语言来编写的。而javascript中最常用的就是json数据格式。声…
-
切换环境,切换项目的架构设计方案
最近在项目中遇到了这样一个问题,在我们的系统中,有一个项目的概念,用户可以创建多个项目,每个项目中又有多个环境, 当用户点击项目名称后,会进入一个项目的内页,左侧菜单栏会有切换环境的功能。而每个环境下会有很多资源,如文章,用户,角色,以及流水线。 那么在切换一个项目的环境后,要求停留在当前的页面,并获取当前环境下的文章,用户,角色,等数据。 路由大致是这样 /p/pid/e/eid/job pid为项目id,eid为环境id。当切换环境后,只会改变当前url中的eid参数。 …
-
Node-RED 3.0升级,特性介绍
前言 最近给我的树莓派上的Node-RED(以下简称NR)做了一下升级,从2.x升级到得了3.0。这是一个比较大的版本升级,在用户体验方面,NR有了有很大的提升。下面让我们一起来看一如何升级以及,3.0新增了那些特性 升级3.0 由于之前的NR是直接使用npm来进行安装的,所以此处升级也比较简答,运行以下命令即可 sudo npm install -g --unsafe-perm node-red npm 是一个nodejs 包管理器。当不指定版本时,会下载最新的版本到版本。 需要注意的是,如何…