机房自动化监控手把手分享给你 - 番外1:声光报警实现

本文主要是介绍机房自动化监控手把手分享给你 - 番外1:声光报警实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文章是一个机房自动化监控实际项目系列文章的番外篇,有个朋友问能否补充一个声光报警的实现,我仔细一想:虽然我不在这个项目中实现声光报警,但我在其他项目用过,使用的设备器件成本很低。那就以这个项目为背景,添加这个声光报警功能吧。

如果你不了解这个系列的文章,直接看这篇可能会有点迷糊。这个系列文章非常详细,真的可以说是手把手拉着你在现场做实际的项目一样。如果你还不了解前面的内容,请参考

机房自动化监控手把手分享给你 - 0 总体说明

机房自动化监控手把手分享给你 - 1 项目前期准备

机房自动化监控手把手分享给你 - 2 温湿度传感器的对接

机房自动化监控手把手分享给你 - 3 漏水传感器的对接 

机房自动化监控手把手分享给你 - 4 空调设备对接

机房自动化监控手把手分享给你 - 5 电流监测模块对接

机房自动化监控手把手分享给你 - 6 UPS设备对接

机房自动化监控手把手分享给你 - 7 监控画面制作

机房自动化监控手把手分享给你 - 8 短信报警实现

机房自动化监控手把手分享给你 - 9 程序部署

1 声光报警硬件准备

我们的机房声光报警一般情况下,不需要使用影视剧里面那种夸张的效果:声音巨响、还旋转着散发着红光,然后巨大的基地里面上百号人都可以听到,紧张地到处奔跑!当然,你也可以给你的用户安装这样的玩意——可以保证,在办公室你会被用户k死。

我推荐一款声光报警,如下:

这种声光报警器可以安装在监控箱上,内部只需要给它供电24V直流电就行。很明显,我们需要有个可控制的开关给这个供电控制通断。因此,我们还需要一个开关量输出模块,并且这个模块支持Modbus RTU协议,方便接入监控箱的串口服务器的RS485接口中。

我在网上给你随便找了一个开关量输入输出模块,因为我们只需要控制一路,所以给你选择体积最小的。

那么接下来我们就可以把这个接入到之前项目的电路中了。

2 接入电路

电路图非常简单,如下图:

此电路我们把开关量模块和之前的温湿度、漏水传感器都接在同一个RS485总线上, 并且给开关量模块使用监控箱中的24V直流电。

此模块因为是2路继电器输出,每个输出有一个常开、常闭和一个公共端,我们把24V+接入OUT1的公共口,常开口接声光报警器的一个输入,另一个输入接24V-。这样,只要开关量模块OUT1口有输出,内部继电器吸合,常开口就会闭合,声光报警器就接通24V电源了——也就能发出声光了。

接下来,我们就在之前实际项目软件配置的基础上,加入这个些设备数据。

3 软件配置

假设这个模块配置好的地址是21,RS485接口是(9600 N 8 1)——和我们之前项目总线参数一样,OUT1,OUT2输出对应modbus地址是 00001,00002。

3.1 配置报警输出数据标签

我们打开项目管理界面,在通道ch1下鼠标右键,选择“New Device",在弹出的编辑对话框中填写如下:

添加这个开关量模块对应的设备,然后选中这个swio节点,右边选择"Properties"属性选项卡,修改Modbus Device Address=21。

 接下来,点击"[Tags]选项卡",在里面添加开关量读写数据标签:

这个设备目前就一个声光报警数据标签,其他都不需要配置了。这样就完成了设备接入和标签数据的定义。 

3.2 运行测试

此时,就可以给设备供电,启动项目,然后在标签列表的”Write"列,写入1,点击右边的写入按钮,就可以测试开关量模块Out1是否吸合,声光报警器是否发声。

写入0,就关闭声光报警。

 

由于我们没有实际的设备,以上就没有具体显示数据了。 

3.3 使用IOT-Tree的任务(Task)触发声光输出

此声光报警可以使用之前报警定义作输出,但考虑到之前项目并没有用的任务控制功能,我们此次就以这个例子为契机,使用IOT-Tree Server提供的任务功能,做声光报警输出。

IOT-Tree中的任务是定时运行的JS脚本,我们可以设置任务(Task)-活动(Action)。每个Action含重复运行的JS脚本。在项目启动时,任务也会启动,里面的脚本会被定时运行。任务可以让我们对被监控现场,实现复杂的控制功能。

我们本次控制逻辑非常简单:当发现UPS非online状态时,则输出上面定义的开关量信号=true,否则就关闭。

3.3.1 新建任务和活动

我们在项目中间组织树上方,点击"Tasks"图标,右边选项卡就多了此项目的任务管理界面。

点击"+Add Task",在弹出的对话框口填写如下信息: 

除了任务名称和标题,我们设置Interval MS=5000,也即是任务每间隔5000毫秒运行一次。点击Ok之后,在此任务右边,点击“+” 添加任务内部的活动:

这个活动在任务中被任务调度,一个任务可以有多个活动,并且任务内部的活动共享任务间隔运行的线程。每个活动有自己的JS控制脚本。点击Ok之后,可以看到活动有 init script,run in loop script,end script

3.3.2 编写任务JS脚本 

其中,init script表示任务启动时,会被调用一次,你可以在里面定义JS变量或初始化工作,方便后续使用。run in loop script则是任务运行中,会被定时调用的JS脚本。

我们点击此按钮,弹出JS编辑窗口,左边有以项目$prj为根的js运行上下文。我们写入一段如下代码(如果对成员关系不了解,可以参考左边的全局成员已经内部的树形内容):

let ups_online = upseth.apc9631.ups_st_online ;
let av_out = ch1.swio.aud_vis ;if(ups_online._pv==false)
{// trigger av outif(av_out._pv==false)av_out._pv = true;
}
else
{ // no alertif(av_out._pv==true)av_out._pv = false;
}

这段代码非常简单,首先判断upseth.apc9631.ups_st_online这个数据标签的值,是否为false。如果==false,则表明UPS非online状态,需要报警。此时判断ch1.swio.aud_vis这个标签值是否在报警状态,如果不是则给这个标签写入true(这个会触发IOT-Tree到开关量模块的写指令)。

否则,如果需要解除报警,则写入false。为了避免每次都有写指令产生,需要对当前值进行判断。

保存之后,我们就可以启动项目进行测试了。你可以尝试手工对UPS切换by pass状态,这样就可以查看运行效果。

4 总结

本章是一个之前项目系列的补充文档。但里面有着你及可能遇到的开关量输出和任务控制功能。是对之前系列文章的一个很好的补充。 

这篇关于机房自动化监控手把手分享给你 - 番外1:声光报警实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/585006

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount