0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EsDA MPC-ZC1 应用——IoT 监测控制系统(二)

ZLG致远电子 2022-09-22 11:52 次阅读

嵌入式智能物联网设备,不仅要采集上报数据,还应该具备远程控制、边缘计算、自动响应事件等能力,达到智能化、快响应等效果。

cdb3e000-39ed-11ed-b180-dac502259ad0.jpg  简介

物联网监测控制系统,不仅需要监测数据,将数据上报至物联网平台,还需要具备接收远程控制请求的能力。同时,智能化控制系统,还需要具备边缘计算能力,能够响应现场事件,并及时做出处理。本文将基于EsDAMPC-ZC1应用——IoT监测控制系统(一),继续扩展远程控制智能化控制业务。


cdb3e000-39ed-11ed-b180-dac502259ad0.jpg  业务扩展本项目通过控制风机转动,带动空气流动,从而达到降温的效果,这也是最常用的降温方案。常见于设备机柜、厂房等场景。一、硬件连接在原有的电路基础上,增加了一个风机驱动电路,如下图所示。cdce2a82-39ed-11ed-b180-dac502259ad0.png

实物连接图如下。

cdd9c4c8-39ed-11ed-b180-dac502259ad0.jpg

二、风机基础控制

风机的控制根据所选风机的类型,有多种方式,如直接DO开关、RS485通信控制等。此处选用DO输出,直接控制风机开关。

1. 节点介绍1.1 gpio_outgpio_out 节点,提供了 GPIO 输出节点,可以根据需求输出对应电平信号。1.1.1 属性

cdebe9fa-39ed-11ed-b180-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName):用于画布上显示的名称;

GPIO序号(gpio_id):GPIO引脚ID;

模式(mode):GPIO输出模式(推挽、开漏…);

初始状态(init_stat):引脚初始输出状态。

1.1.2输入

  • msg.payload:指定输出状态,0:低电平,1:高电平。

2. 控制测试

通过简单的脚本控制 gpio_out 节点驱动外部风机。

2.1 添加节点

在已有的流图中添加 timer、fscript、gpio_out 节点到画布中。

cdfbc6fe-39ed-11ed-b180-dac502259ad0.png

2.2 配置节点timer 配置如下,1s 周期输出。ce1181ce-39ed-11ed-b180-dac502259ad0.pngfscript 配置如下,保持输出高电平。ce1f1082-39ed-11ed-b180-dac502259ad0.pnggpio_out 配置如下。ce2cb3f4-39ed-11ed-b180-dac502259ad0.png

  • GPIO序号(gpio_id):P4.9;
  • 模式(mode):push pull(推挽输出);
  • 初始状态(init_stat):low(初始低电平)。

2.3 下载流图ce3f098c-39ed-11ed-b180-dac502259ad0.png可以看到风扇已经被驱动起来。ce4e2f3e-39ed-11ed-b180-dac502259ad0.gif

3. 风机智能控制

风机智能化控制,主要实现两个基础功能:

  • 根据高温信号,自动启动进行降温;
  • 支持手动启动。

3.1 节点介绍为了降低CPU的损耗,提高实时性,使用 complete 节点来取代原先的 timer。该节点用于监控指定的若干节点,当被监控的节点执行完成后,会触发 complete 节点执行。3.1.1 属性cfcb5b48-39ed-11ed-b180-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName):用于画布上显示的名称;

监控节点(monitored_nodes):指定需要监控的节点名称(json格式)。

3.1.2 输出

仅触发向下一节点执行,并不会传递任何数据。

3.2 流图测试

3.2.1 调整异常监测模块为了更好的引用异常监测模块的高低温异常判定结果,给该模块脚本添加连个全局标志变量。3.2.1.1 初始阶段添加高低温异常全局标志 global.high_temp_anomaly、global.low_temp_anomaly,如下所示。cfdb5750-39ed-11ed-b180-dac502259ad0.png

/*初始化高温预警环境变量*/
global.high_temp=30
/*初始化低温预警环境变量*/
global.low_temp=15

/*高温异常信号*/
global.high_temp_anomaly=false
/*低温异常信号*/

global.low_temp_anomaly=false

3.2.1.2 运行阶段

增加对高低温异常标志的处理,如下所示。

cff37268-39ed-11ed-b180-dac502259ad0.png

/*实际温度与高温预警温度温差*/
temp_diff=msg.temperature-global.high_temp

/*温度超过高温预警值,标记高温异常*/
if(temp_diff>=0.3){
global.high_temp_anomaly=true
}elseif(temp_diff<= -0.3) {
global.high_temp_anomaly=false
}

/*实际温度与低温预警温度温差*/
temp_diff=msg.temperature-global.low_temp

/*温度低于低温预警值,标记低温异常*/
if(temp_diff<= -0.3) {
global.low_temp_anomaly=true
}elseif(temp_diff>=0.3){
global.low_temp_anomaly=false
}

/*输出报警信号*/
if(global.high_temp_anomaly||global.low_temp_anomaly){
output.payload=1
}else{
output.payload=0

}

* 其中±0.3 的温差幅度,是为了扩大判定边界,起到软件滤波的效果,避免边缘状态引起频繁开关的情况。

3.2.2 完善风机控制逻辑为了后续更好地接收远程控制请求,需要将风机控制模块的业务逻辑进一步完善。

3.2.2.1 初始阶段

声明一个 global.fan_control 全局控制标志,用于控制风机运转状态,总共包括以下3个状态:

on:手动启动风机;

off:手动关闭风机

auto:根据温度自动控制。

脚本如下:

d01af05e-39ed-11ed-b180-dac502259ad0.png

global.fan_control="auto"

3.2.2.2 运行阶段

根据 global.fan_control 的值,执行不同的风机控制逻辑。d028d390-39ed-11ed-b180-dac502259ad0.png

if(global.fan_control=="on"){
/*手动启动*/
msg.payload=1
}elseif(global.fan_control=="off"){
/*手动停止*/
msg.payload=0
}else{
if(global.high_temp_anomaly==true){
/*高温异常自动启动*/
msg.payload=1
}else{
/*常温自动停止*/
msg.payload=0
}

}

当控制标志不为 on 或 off 时,即为 auto 模式,此时,根据 global.high_temp_anomaly 高温异常标志来决定是否启动风机。

3.2.3 添加complete节点

d035e184-39ed-11ed-b180-dac502259ad0.png

配置如下,添加节点名称 abnormal_monitoring。

d0456b54-39ed-11ed-b180-dac502259ad0.png

同时为异常监测节点添加一个节点名称 abnormal_monitoring。

d0516b84-39ed-11ed-b180-dac502259ad0.png

3.2.4 下载流图

ce3f098c-39ed-11ed-b180-dac502259ad0.png

默认控制模式为 auto,并且默认高温预警温度为 30℃,通过外部热风机加热空气温度,观察运行情况。

可以看到当温度达到预警温度时,警报灯亮起,同时风扇也跟随启动进行降温。

d06c945e-39ed-11ed-b180-dac502259ad0.gif

4.远程控制

上一期已经实现了数据上报至物联网云平台,本期为系统添加远程控制功能,其中包括3个控制命令:

  • 高温预警值配置(high_temp)
  • 低温预警值配置(low_temp)
  • 风机控制(fan_control)

4.1 云端添加命令

需要在物联网云平台(ZWS)添加所需控制命令,登录到:

https://www.zlgcloud.com4.1.1 添加风机控制命令打开设备类型页面。

d1d87e7a-39ed-11ed-b180-dac502259ad0.png

点击编辑 iot_mpc_zc1 类型。

d20754ac-39ed-11ed-b180-dac502259ad0.png选择 设备控制设置 页面,并添加 fan_control 风机控制命令,如下所示。

d2186274-39ed-11ed-b180-dac502259ad0.png

为风机控制命令添加参数,如下所示。

d22830e6-39ed-11ed-b180-dac502259ad0.png总共3个参数选项 on、off、auto,与风机控制脚本的控制标志一致。4.1.2 添加高低温预警配置命令

同样的操作,继续添加高温、低温预警配置命令,如下所示。

添加高温预警命令

d23323f2-39ed-11ed-b180-dac502259ad0.png

高温预警命令参数

d244d818-39ed-11ed-b180-dac502259ad0.png

添加低温预警命令

d2510e3a-39ed-11ed-b180-dac502259ad0.png

低温预警命令参数

d244d818-39ed-11ed-b180-dac502259ad0.png

4.1.3 所有新增命令如下

d269c88a-39ed-11ed-b180-dac502259ad0.png

4.2响应远程控制

要接收到远程云平台的控制命令,需要用到 zws_iot_data_in 节点。4.2.1 添加节点添加 zws_iot_data_in、to_json、log 到画布中,如下所示:d276e786-39ed-11ed-b180-dac502259ad0.png4.2.2 配置节点

为 zws_iot_data_in 绑定一个配置,选择 zws_iot,与 zws_iot_data_out 使用同一个配置。

d285988a-39ed-11ed-b180-dac502259ad0.png

4.2.3 运行测试点击运行,验证接收功能。

d2928482-39ed-11ed-b180-dac502259ad0.jpg

4.2.4 下发命令打开设备列表。d29d4778-39ed-11ed-b180-dac502259ad0.png进入设备详情。d2ab8f40-39ed-11ed-b180-dac502259ad0.png进入设备控制页面,并下发风机启动命令,如下所示。d2b9783a-39ed-11ed-b180-dac502259ad0.png点击发送,确保发送成功。d2c482b6-39ed-11ed-b180-dac502259ad0.png此时,可以看到接收到云端下发的命令和参数。d2d5b298-39ed-11ed-b180-dac502259ad0.png

4.2.5 添加解析节点

添加一个新的 fscript 节点,用于解析云端命令。

d2e34b4c-39ed-11ed-b180-dac502259ad0.png

4.2.6 添加解析脚本

添加脚本,解析云平台下发的命令,同时将脚本节点命名为 fan_control,后续可用于触发风机控制数据流。d2f0414e-39ed-11ed-b180-dac502259ad0.png

if(msg.name=="high_temp"){
global.high_temp=f32(msg.value)
}elseif(msg.name=="low_temp"){
global.low_temp=f32(msg.value)
}elseif(msg.name=="fan_control"){
global.fan_control=msg.value
}else{
aborted=1

}

脚本通过判断命令名称 msg.name,来解析下发的命令,同时通过 global 对象修改对应的全局变量。同时为风机控制数据流的 complete 节点添加一个监测节点名称 fan_control,如下所示。

d2fe9096-39ed-11ed-b180-dac502259ad0.png

4.2.7 下载流图

ce3f098c-39ed-11ed-b180-dac502259ad0.png

云端下发风机启动命令,效果如下。

d31c3e2a-39ed-11ed-b180-dac502259ad0.png

ce4e2f3e-39ed-11ed-b180-dac502259ad0.gif

停止命令。

d47281c6-39ed-11ed-b180-dac502259ad0.png

d480cf60-39ed-11ed-b180-dac502259ad0.gif

配置为自动模式。

d5c886d8-39ed-11ed-b180-dac502259ad0.png

外部施加热风,观察风机变化。

d06c945e-39ed-11ed-b180-dac502259ad0.gif4.2.8 完成

至此,完成了远程控制、智能降温等业务。为了可以更加深入的体会 MPC-ZC1 和 EsDA 的应用开发,在下一期文章中,计划将风机更换为大功率的厂房风机设备,真正地应用到实际场景中。

整理本期流图如下。

d73cb980-39ed-11ed-b180-dac502259ad0.png

ABOUT PRODUCT

相 关 产 品

d74e0dc0-39ed-11ed-b180-dac502259ad0.gif

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IOT
    IOT
    +关注

    关注

    186

    文章

    3986

    浏览量

    193209
收藏 人收藏

    评论

    相关推荐

    如何基于EsDA开发套件快速使用射频读卡器模块

    无线射频读写卡技术在门禁系统,电子支付领域和物联网等领域中具有越来越广泛的应用。本文将基于EsDA开发套件讲解如何快速上手并开发射频读卡器模块的相关业务,为开发者大大缩短了学习和开发时间成本。项目
    的头像 发表于 01-11 08:24 400次阅读
    如何基于<b class='flag-5'>EsDA</b>开发套件快速使用射频读卡器模块

    mpc控制是什么 mpc介绍

    MPC控制 模型预测控制(Model predictive control,MPC)从上世纪70年代问世以来,已经从最初在工业过程中应用的启发式控制
    的头像 发表于 11-10 17:44 5400次阅读
    <b class='flag-5'>mpc</b><b class='flag-5'>控制</b>是什么 <b class='flag-5'>mpc</b>介绍

    环保DCS在线监测控制系统可以接入物通博联工业智能网关吗

    环保DCS在线监测控制系统是通过数据采集网络,将环保设备连接到DCS控制系统上,实现对进水提升泵、格栅、除砂机、曝气设备、推流设备、监测仪器等设备的监控和自动控制。并将运行的数据记录下
    的头像 发表于 09-15 15:51 274次阅读

    基于EsDA MPC-ZC1 快速实现I2C 监控报警

    本文介绍如何通过EsDA开发套件,快速完成一个I2C采集数据的监控报警系统,通过该系统可以减少I2C设备的故障损失和维修成本。简介本文基于前文的一篇I2C博客文章继续拓展I2C实时采集后的监控报警
    的头像 发表于 08-23 15:16 413次阅读
    基于<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 快速实现I2C 监控报警

    EsDA — 嵌入式系统设计自动化工具

    EsDA — 嵌入式系统设计自动化工具
    的头像 发表于 06-09 10:26 367次阅读
    <b class='flag-5'>EsDA</b> — 嵌入式<b class='flag-5'>系统</b>设计自动化工具

    EsDA应用】10分钟快速实现人脸识别

    人脸识别是一种高安全性的生物识别技术,在安防、身份验证等领域被广泛应用。本文主要介绍如何基于EsDA设计的人脸特征值提取节点和特征值比对节点,快速实现人脸识别功能。简介人脸识别是一种高安
    的头像 发表于 06-08 15:01 309次阅读
    【<b class='flag-5'>EsDA</b>应用】10分钟快速实现人脸识别

    【产品应用】基于 EsDA MPC-ZC1 快速实现 I2C采集监测

    EsDA开发平台为产品上线提供动力。本文将基于EsDA开发平台,通过拖拽、连线方式,10分钟快速搭建一个I2C数据采集监测业务,为客户产品开发、部署、上线缩短周期。简介I2C是一种串行通信总线,只需
    的头像 发表于 06-08 10:13 335次阅读
    【产品应用】基于 <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 快速实现 I2C采集<b class='flag-5'>监测</b>

    网关--设备监测控制

    设备监测控制系统是一种基于计算机技术和网络通信技术的自动化控制系统,用于监测控制各种设备的运行状态和性能指标。可以实现对设备的实时监测、故
    的头像 发表于 06-06 17:26 404次阅读
    网关--设备<b class='flag-5'>监测控制</b>

    EsDA — 嵌入式系统设计自动化工具

    左右滑动查看更多    技术交流群 长按识别如下二维码可加入“ EsDA嵌入式系统设计自动化交流群 ”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询
    的头像 发表于 06-04 16:15 296次阅读
    <b class='flag-5'>EsDA</b> — 嵌入式<b class='flag-5'>系统</b>设计自动化工具

    【产品应用】基于 EsDA MPC-ZC1 快速实现 I2C采集监测

    EsDA开发平台为产品上线提供动力。本文将基于EsDA开发平台,通过拖拽、连线方式,10分钟快速搭建一个I2C数据采集监测业务,为客户产品开发、部署、上线缩短周期。    简介 I2C 是一种串行
    的头像 发表于 05-31 18:05 294次阅读
    【产品应用】基于 <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 快速实现 I2C采集<b class='flag-5'>监测</b>

    EsDA应用】蓝牙服务端节点详解

    节点和业务处理,有兴趣的可以跳转链接【EsDA应用】蓝牙客户端节点详解去查看。本文主要基于MPC_ZC1开发板以及可将节点进行拖拽连接的图形化设计工具AWFlowDesi
    的头像 发表于 05-31 09:46 511次阅读
    【<b class='flag-5'>EsDA</b>应用】蓝牙服务端节点详解

    EsDA应用】蓝牙服务端节点详解

    的相关节点和业务处理,有兴趣的可以跳转链接 【EsDA应用】蓝牙客户端节点详解 去查看。 本文主要基于MPC_ZC1开发板以及可将节点进行拖拽连接的图形化设计工具AWFlow Designer,着重对UIS8910DM平台的板载蓝牙的配套节点以及示例进行讲解。本文除了对b
    的头像 发表于 05-25 00:10 393次阅读
    【<b class='flag-5'>EsDA</b>应用】蓝牙服务端节点详解

    基于工业物联网网关的盐田远程监测控制系统解决方案

    基于工业物联网网关的盐田远程监测控制系统解决方案是一种基于物联网技术的智能化监测系统,用于实现对盐田地区各步蒸发池的实时监测和数据传输。 盐田远程
    的头像 发表于 05-24 16:42 478次阅读
    基于工业物联网网关的盐田远程<b class='flag-5'>监测控制系统</b>解决方案

    封闭煤场安全综合监测控制系统实时检测现场环境和煤温变化

    济南祥控自动化开发的封闭煤场安全综合监测控制系统集一方面通过安装各类环境检测设备对煤场环境进行数据采集和煤温监测,另一方面通过设置各项参数的报警阀值联动控制环境调节设备,来更好的管理存煤,防止煤温升高出现自燃的情况。
    的头像 发表于 05-19 17:04 937次阅读
    封闭煤场安全综合<b class='flag-5'>监测控制系统</b>实时检测现场环境和煤温变化

    EsDA应用】5分钟快速实现图像人脸检测

    人脸识别是一种高安全性的生物识别技术,广泛应用在安防、身份验证等领域。而人脸检测是进行人脸识别的重要前提,本文主要介绍如何基于EsDA设计的人脸检测节点,快速实现人脸检测功能。简介人脸识别是一种高安
    的头像 发表于 05-18 10:48 401次阅读
    【<b class='flag-5'>EsDA</b>应用】5分钟快速实现图像人脸检测