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

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

3天内不再提示

物联网监测控制系统解决方案

AGk5_ZLG_zhiyua 来源:ZLG致远电子 作者:ZLG开发者社区 2022-09-21 15:36 次阅读

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



简介

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

业务扩展


本项目通过控制风机转动,带动空气流动,从而达到降温的效果,这也是最常用的降温方案。常见于设备机柜、厂房等场景。


一、硬件连接


在原有的电路基础上,增加了一个风机驱动电路,如下图所示。eea6abb6-397b-11ed-9e49-dac502259ad0.png

实物连接图如下。

eee75e90-397b-11ed-9e49-dac502259ad0.jpg

二、风机基础控制

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

1. 节点介绍


1.1 gpio_outgpio_out 节点,提供了 GPIO 输出节点,可以根据需求输出对应电平信号


1.1.1 属性

ef197da8-397b-11ed-9e49-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 节点到画布中。

ef3151e4-397b-11ed-9e49-dac502259ad0.png

2.2 配置节点timer 配置如下,1s 周期输出。

ef523fda-397b-11ed-9e49-dac502259ad0.png

fscript 配置如下,保持输出高电平。

ef8c3550-397b-11ed-9e49-dac502259ad0.png

gpio_out 配置如下。

efaa9c7a-397b-11ed-9e49-dac502259ad0.png
  • GPIO序号(gpio_id):P4.9;
  • 模式(mode):push pull(推挽输出);
  • 初始状态(init_stat):low(初始低电平)。
2.3 下载流图


efd16cb0-397b-11ed-9e49-dac502259ad0.png


可以看到风扇已经被驱动起来。

efe361b8-397b-11ed-9e49-dac502259ad0.gif

3. 风机智能控制

风机智能化控制,主要实现两个基础功能:
  • 根据高温信号,自动启动进行降温;
  • 支持手动启动。
3.1 节点介绍为了降低CPU的损耗,提高实时性,使用 complete 节点来取代原先的 timer。该节点用于监控指定的若干节点,当被监控的节点执行完成后,会触发 complete 节点执行。


3.1.1 属性

f239cff6-397b-11ed-9e49-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,如下所示。

f24bce40-397b-11ed-9e49-dac502259ad0.png

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

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

global.low_temp_anomaly=false

3.2.1.2 运行阶段

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

f2923952-397b-11ed-9e49-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:根据温度自动控制。

脚本如下:

f2c57ad8-397b-11ed-9e49-dac502259ad0.png

global.fan_control="auto"

3.2.2.2 运行阶段

根据 global.fan_control 的值,执行不同的风机控制逻辑。

f2daeefe-397b-11ed-9e49-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节点

f343549e-397b-11ed-9e49-dac502259ad0.png

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

f3a1b368-397b-11ed-9e49-dac502259ad0.png

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

f3d33668-397b-11ed-9e49-dac502259ad0.png

3.2.4 下载流图

efd16cb0-397b-11ed-9e49-dac502259ad0.png

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

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

f40f6fb6-397b-11ed-9e49-dac502259ad0.gif

4.远程控制

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

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

4.1 云端添加命令

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

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

f65a18de-397b-11ed-9e49-dac502259ad0.png

点击编辑 iot_mpc_zc1 类型。

f69d3b1e-397b-11ed-9e49-dac502259ad0.png


选择设备控制设置页面,并添加 fan_control 风机控制命令,如下所示。

f6b8c136-397b-11ed-9e49-dac502259ad0.png

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

f7774db8-397b-11ed-9e49-dac502259ad0.png

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

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

添加高温预警命令

f79375a6-397b-11ed-9e49-dac502259ad0.png

高温预警命令参数

f7d048aa-397b-11ed-9e49-dac502259ad0.png

添加低温预警命令

f7f07634-397b-11ed-9e49-dac502259ad0.png

低温预警命令参数

f7d048aa-397b-11ed-9e49-dac502259ad0.png

4.1.3 所有新增命令如下

f81fb458-397b-11ed-9e49-dac502259ad0.png

4.2响应远程控制

要接收到远程云平台的控制命令,需要用到 zws_iot_data_in 节点。4.2.1 添加节点添加 zws_iot_data_in、to_json、log 到画布中,如下所示:f873f1bc-397b-11ed-9e49-dac502259ad0.png


4.2.2 配置节点

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

f8e06f54-397b-11ed-9e49-dac502259ad0.png

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

f90a7f74-397b-11ed-9e49-dac502259ad0.jpg

4.2.4 下发命令打开设备列表。

f924b056-397b-11ed-9e49-dac502259ad0.png


进入设备详情。

f93fe0c4-397b-11ed-9e49-dac502259ad0.png


进入设备控制页面,并下发风机启动命令,如下所示。


f955fe54-397b-11ed-9e49-dac502259ad0.png


点击发送,确保发送成功。


f9ab1aec-397b-11ed-9e49-dac502259ad0.png


此时,可以看到接收到云端下发的命令和参数。


f9c4cd02-397b-11ed-9e49-dac502259ad0.png

4.2.5 添加解析节点

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

fa037624-397b-11ed-9e49-dac502259ad0.png

4.2.6 添加解析脚本

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



fa2674e4-397b-11ed-9e49-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,如下所示。

fa451fd4-397b-11ed-9e49-dac502259ad0.png

4.2.7 下载流图

efd16cb0-397b-11ed-9e49-dac502259ad0.png

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

fa817f6a-397b-11ed-9e49-dac502259ad0.png

efe361b8-397b-11ed-9e49-dac502259ad0.gif

停止命令。

fbf353be-397b-11ed-9e49-dac502259ad0.png

fc20e6e4-397b-11ed-9e49-dac502259ad0.gif

配置为自动模式。

fdb9401e-397b-11ed-9e49-dac502259ad0.png

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

f40f6fb6-397b-11ed-9e49-dac502259ad0.gif


4.2.8 完成

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

整理本期流图如下。

ff63a5c6-397b-11ed-9e49-dac502259ad0.png


审核编辑:汤梓红

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

    关注

    41

    文章

    5948

    浏览量

    108579
  • 物联网
    +关注

    关注

    2865

    文章

    41532

    浏览量

    358089

原文标题:EsDA MPC-ZC1 应用——IoT 监测控制系统(二)

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于PAC的核能发电厂的维护和监测控制系统(国外)

    基于PAC的核能发电厂的维护和监测控制系统(国外)
    发表于 08-03 23:41

    【Tisan联网申请】联网跑步机控制系统

    申请理由:我们准备开发新款物联网跑步机控制系统,前期用过上海汉枫的wifi模块、庆科的EMW3162模块。新项目对wifi模块的成本有要求,想了解一下你们的产品!项目描述:开发项目:联网
    发表于 10-15 10:09

    【Tisan联网申请】基于联网小车控制系统

    申请理由:我是武汉理工大学的学生,我们学校正在进行校创申报。我的项目是基于联网小车控制系统,我现在正在做这个项目。现在由于我的经费不够,恰好这里有免费的
    发表于 10-15 10:09

    【Tisan联网申请】基于智能家居远程控制系统

    申请理由:开发一套智能家居的联网套件,每个设备作为一个结点。想探讨一下这个开发板的解决方案,对于智能家居方面应用的前景。项目描述:开发一套智能家居的
    发表于 10-21 10:18

    【GoKit申请】基于联网技术的无线智能家居控制系统

    申请理由:近来报名参加了市里的一个科技创新大赛,项目名称即为基于联网技术的无线智能家居控制系统,希望GoKit开发套件能够助我们一臂之力。项目描述:通过手机app实现网络实时监测
    发表于 11-02 10:48

    【WRTnode2R申请】基于联网技术的无线智能家居控制系统

    申请理由:近来报名参加了市里的一个科技创新大赛,项目名称即为基于联网技术的无线智能家居控制系统,希望WRTnode 2R能够助我们一臂之力。项目描述:通过手机app实现网络实时监测
    发表于 11-02 10:55

    【Tisan联网申请】智能家电控制系统

    申请理由:我们团队在做一个基于2440的智能智能家电控制系统,想通过wifi将家里的电器设备连接到2440上,通过远程控制家电设备,想通过Tisan联网开发板实现电器连接项目描述:实
    发表于 11-06 09:45

    【Tisan联网申请】智能娱乐学习控制系统

    申请理由: 在智能家居领域中常见的是蓝牙或者zigbee的形式,常见的解决方案也是基于STM32的系统例如机智云。Tisan联网开发板由核心板和底板组成。Tisan的核心板基于乐鑫的
    发表于 11-12 23:16

    能否简化设计流程的同时,快速开发复杂的温室控制系统

    和时间表上面临风险。如果搭配使用 Cypress Semiconductor、SparkFun Electronics 和 Wurth Electronics 的电路板和器件解决方案,能否简化设计流程的同时,快速开发复杂的温室控制系统
    发表于 01-25 09:48

    Inventek联网照明解决方案包括哪些内容?

    Inventek联网照明解决方案包括哪些内容?灯具控制器和电源管理系统由那几个部分组成?
    发表于 05-17 06:53

    求一种联网传感器的解决方案

    在精彩纷程的联网世界,传感器是联网解决方案发挥用武之地的基础所在。传感器将遍布于各个领域,随时随地收集各种信息,
    发表于 09-16 06:30

    怎样去设计一种基于联网和STM32的智能温室大棚控制系统

    基于联网和STM32的智能温室大棚控制系统有何功能?怎样去设计一种基于联网和STM32的智能温室大棚
    发表于 10-14 07:14

    设备联网、数据监测和采集、传感控制等信息化整体解决方案

    为辅通讯组网技术、面向工业级客户,提供设备联网、数据监测和采集、传感控制等信息化整体解决方案,可提供定制化开发服务。
    发表于 03-02 16:34

    基于MPC-ZC1工控单板的物联网监测控制系统设计

    本文将基于 MPC-ZC1 工控单板,通过 EsDA 设计工具,分享如何搭建出一个常用的物联网监测控制系统
    的头像 发表于 09-15 12:06 923次阅读

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

    基于工业物联网网关的盐田远程监测控制系统解决方案是一种基于物联网技术的智能化监测系统,用于实现对
    的头像 发表于 05-24 16:42 471次阅读
    基于工业物<b class='flag-5'>联网</b>网关的盐田远程<b class='flag-5'>监测控制系统</b><b class='flag-5'>解决方案</b>