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

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

3天内不再提示

【Z站推荐】EsDA MPC-ZC1 应用——IoT 监测控制系统(一)

ZLG致远电子 2022-09-16 10:38 次阅读

本文将基于 MPC-ZC1 工控单板,通过 EsDA 设计工具,分享如何搭建出一个常用的物联网监测控制系统19980076-3536-11ed-9ade-dac502259ad0.jpg 简介在大多数嵌入式物联网应用场景中,温度、湿度、电压、电流等基本数据的采集是必不可少的。且需将数据上报至物联网平台,并支持云端远程控制。对于安全性、实时性要求较高的场合,还需要支持本地数据处理和及时响应。本文将基于MPC-ZC1工控单板,通过EsDA设计工具,搭建出一个常用的物联网监测控制系统。
19980076-3536-11ed-9ade-dac502259ad0.jpg 前期准备

可通过 EsDA MPC-ZC1 系列文章,掌握 EsDA 开发流程:

  • EsDAMPC-ZC1入门(一)——软件安装
  • EsDAMPC-ZC1入门(二)——LED控制
  • EsDAMPC-ZC1应用——串口服务器(一)
  • EsDAMPC-ZC1应用——串口服务器(二)

一、项目需求

项目开发前,先对项目需求进行梳理和拆解,主要有以下几点:

采集温湿度数据;

温度异常报警;

数据上报云端物联网平台;

控制风机降温;

接收云端控制命令。

二、业务框图

根据项目需求,大致将系统划分为以下几大模块:

19b7a462-3536-11ed-9ade-dac502259ad0.png

1. 温湿度采集

  • 采集环境温湿度;
  • 可配置周期性采集。

2. 异常警报

可配置警报温度阈值;

输出高温异常警报提示;

输出低温异常警报提示。

3. 云端监控

接入物联网平台;

上报数据至云平台;

接收云平台控制命令;

  • 组态设计。

4. 风机降温

  • 可配置降温温度阈值;
  • 控制风机开关。


19980076-3536-11ed-9ade-dac502259ad0.jpg 业务开发

一、温湿度采集

本项目选用通用的 RS485 接口温湿度变送器来实现温湿度采集,该设备使用 Modbus RTU 通信协议。AWFlow 集成了通用的 RS485 温湿度变送器节点,包括 modbus_master_rtu 、th_transmitter_in 2个节点。

1. 节点介绍

1.1 modbus_master_rtuModbus RTU 主机(客户端)配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用。该节点提供了Modbus RTU 主机通信服务。1.1.1 属性

19d03784-3536-11ed-9ade-dac502259ad0.png

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

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

端口(port):用于索引串口设备;

波特率(baudrate):串口波特率参数

数据位(bytesize):数据位参数;

校验位(parity):串口奇偶校验位参数;

停止位(stopbits):串口停止位参数;

响应超时(respond_timeout):通信应答超时时间。

* 配置节点(config类型)只存在节点属性,不具备输入输出功能。

1.2 th_transmitter_in

通用 Modbus RTU 温湿度变送器节点,负责读取指定从机设备温湿度数据。1.2.1 属性19dcfe2e-3536-11ed-9ade-dac502259ad0.png

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

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

modbus配置参数(modbus):绑定一个Modbus RTU配置节点;

从机ID(slave_id):从机(服务端)地址;

温度寄存器地址(temp_addr):温度数据所在的寄存器地址;

湿度寄存器地址(humidity_addr):湿度数据所在的寄存器地址;

输出周期(period):轮询读取寄存器数据的周期。

1.2.2 输入

* pump类型节点通常不具备数据输入。

1.2.3 输出

  • slaveID:从机(服务端)地址,通常用于后级节点区别设备;
  • temperature:温度数据,float 类型;
  • humidity:湿度数据,float 类型。

1.3 to_json

由于 th_transmitter_in 节点是以 temperature 和 humidity 属性输出数据,不能直接使用 log 节点输出到调试窗口,所以我们通过 to_json 将属性转换成 json 数据进行输出。1.3.1 属性

19ed1e76-3536-11ed-9ade-dac502259ad0.png

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

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

模板(template):可指定字符进行替换操作。

1.3.2 输入

msg:用于转换的对象

1.3.3 输出

payload:转换后的 json 字符串数据;

payloadType:数据类型,json;

payloadLength:数据长度。

2.采集测试

我们将温湿度数据采集并打印到调试窗口,验证数据的正确性。

2.1 添加节点

添加 th_transmitter_in、to_json、log 节点到画布上。

19f91eba-3536-11ed-9ade-dac502259ad0.png

2.2 配置节点

双击 th_transmitter_in 节点,打开属性面板。1a0907f8-3536-11ed-9ade-dac502259ad0.png

选择“添加新的 modbus_master_rtu 节点”,点击编辑配置,进入配置节点属性面板。

1a1d927c-3536-11ed-9ade-dac502259ad0.png

端口:Uart1

波特率:9600

数据位:8bits

校验位:None

停止位:1bits

响应时间:0

完成串口参数配置,回到 th_transmitter_in 配置界面。1a32e7d0-3536-11ed-9ade-dac502259ad0.png

从机ID:1

温度寄存器地址:0

湿度寄存器地址:1

输出周期:1000

可以看到已经创建了一个新的配置节点,名为 modbus_master_rtu。同时配置传感器从机地址和寄存器地址,点击完成,完成节点配置。

* 传感器从机ID、寄存器地址可根据实际产品手册进行配置。

2.3 绘制流图

连接 th_transmitter_in、to_json、log 节点。

1a3d2bd2-3536-11ed-9ade-dac502259ad0.png

2.4 下载验证

确保硬件正确连接。1a4f597e-3536-11ed-9ade-dac502259ad0.jpg

选择流图下载接口,并点击运行按钮。

1a62cf68-3536-11ed-9ade-dac502259ad0.jpg

1a7551b0-3536-11ed-9ade-dac502259ad0.png

完成流图下载,通过调试窗口可以看到读回的传感器数据。

1a7eeefa-3536-11ed-9ade-dac502259ad0.png

二、异常警报

这里以实现对高温、低温2个阈值的监测,作为异常警报条件,以一个红色LED作为警报提示。此处,需要用到 fscript、led 2个节点来实现异常警报业务。

* fscript、led 节点使用可参考以往教程

1. 添加节点添加 fscript、led 节点到画布上。
1a8cb148-3536-11ed-9ade-dac502259ad0.png

2. 配置节点

双击 fscript 节点,打开属性面板,这里需要配置 Initialize、Function 2个阶段的脚本。1a9c05bc-3536-11ed-9ade-dac502259ad0.png

/* 初始化高温预警环境变量*/

global.high_temp = 30

/* 初始化低温预警环境变量*/

global.low_temp = 15

在脚本加载阶段,初始化了2个变量,分别为 high_temp 和 low_temp,用于保存高温预警和低温预警的温度判定值。

此处使用 global 对象的属性来做为变量,相当于全局的环境变量。后续可以通过其他脚本来访问和修改此2个变量,为后续可以动态修改这2个参数做准备。

1aa8a268-3536-11ed-9ade-dac502259ad0.png

/* 当温度大于高温阈值 或 低于低温阈值,则属于异常 */

if (msg.temperature >= global.high_temp ||

msg.temperature <= global.low_temp) {

/* 点亮警报信号 */

output.payload = 1

} else {

/* 熄灭报警信号 */

output.payload = 0

}

脚本运行阶段,通过判断输入的温度值 msg.temperature 是否超过预警值边界,如超过,则向后级节点输出有效预警信号,否则输出无效信号。

led 节点配置为红色LED。1abb0250-3536-11ed-9ade-dac502259ad0.png

3.绘制流图

连接 th_transmitter_in、fscript、led节点。1acec20e-3536-11ed-9ade-dac502259ad0.png

4. 下载验证

选择流图下载接口,并点击运行按钮。

1a62cf68-3536-11ed-9ade-dac502259ad0.jpg

1a7551b0-3536-11ed-9ade-dac502259ad0.png

完成流图下载,通过外部暖风机加热周围空气,可以看到温度值逐渐上升。

1af55e78-3536-11ed-9ade-dac502259ad0.png

当超过高温预警值(30℃)时,红色LED被点亮。

1b03422c-3536-11ed-9ade-dac502259ad0.png

三、云端监控

云端监控业务,需要实现设备接入上报数据远程控制 3部分功能。

本项目,选择同为 EsDA 组成部分的 ZWS(ZLG物联网平台)作为云服务平台。

* 可通过ZLG物联网平台教程深入学习 ZWS 的应用:

https://www.zlgcloud.com/index.html#/home/service

1.接入云端

登录https://www.zlgcloud.com/

1.1 ZWS-创建设备

1.1.1 创建设备类型

打开设备类型管理页面。

1b1c0dfc-3536-11ed-9ade-dac502259ad0.png

点击添加类型。

1b2a0c40-3536-11ed-9ade-dac502259ad0.png

选择basic模板,并将新设备类型命名为iot_mpc_zc1 。

1b364a46-3536-11ed-9ade-dac502259ad0.png

点击确定,完成设备类型的创建。

1.1.2 添加设备

打开设备列表页面。

1b43e96c-3536-11ed-9ade-dac502259ad0.png

点击添加设备。

1b5016a6-3536-11ed-9ade-dac502259ad0.png

选择新建的 iot_mpc_zc1 类型,并将设备的名称和ID命名为 mpc_zc1_0。

1b625fbe-3536-11ed-9ade-dac502259ad0.png

*设备名称和设备ID并不一定要一致,此处仅为了方便描述。

点击保存,完成设备添加。

1b720f40-3536-11ed-9ade-dac502259ad0.png

返回设备列表。

1b825198-3536-11ed-9ade-dac502259ad0.png

可以在设备列表中看到新添加的设备,并且设备处于离线状态。

1b956292-3536-11ed-9ade-dac502259ad0.png

1.2 ZC1-连接云端

接入 ZWS 并上报数据需要使用到 zws_iot、zws_iot_data_out 2个节点。

1.2.1 zws_iot

zws_iot 配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用,主要用于配置 ZWS 服务所需参数,并提供与 ZWS 云平台通信的服务

1.2.1.1 属性

1ba63360-3536-11ed-9ade-dac502259ad0.png

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

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

是否连接(connection_status):使能立即连接;

设备类型(dev_type):ZWS 三元组-设备类型;

设备ID(dev_id):ZWS 三元组-设备ID;

设备密钥(dev_secret):ZWS 三元组-设备密钥;

固件版本(firmware_version):设备固件版本,产品自定;

设备心跳周期(keep_alive_interval):心跳周期。

*配置节点(config类型)只存在节点属性,不具备输入输出功能。

1.2.2 zws_iot_data_out

ZWS 数据上报节点,提供ZWS数据点上报服务。

1.2.2.1 属性

1bb41d0e-3536-11ed-9ade-dac502259ad0.png

  • 名称(name):节点名称,用于索引查找本节点;
  • 显示名称(displayName):用于画布上显示的名称;
  • 设备配置(config):绑定一个 zws_iot 配置节点;
  • 数据上报方式(output_type):选择上报数据方式;
  • 目标键值对(key_names):指定上报的数据点名称。

1.2.2.2输入

payload:当上报方式为 RAW 类型时有效;

其他属性:当与 key_names 匹配时有效。

① 添加节点

添加 zws_iot_data_out 节点到画布上。

1bc5349a-3536-11ed-9ade-dac502259ad0.png

② 配置节点

双击 zws_iot_data_out 节点,打开属性面板。

1bd579ea-3536-11ed-9ade-dac502259ad0.png

选择“添加新的 zws_iot 节点”,点击编辑配置,进入配置节点属性面板。

1be42a94-3536-11ed-9ade-dac502259ad0.png

是否连接:conncected

设备类型:iot_mpc_zc1

设备ID:mpc_zc1_0

设备密钥:以个人创建的设备密钥为准

* 只需配置立即连接和ZWS三元组(类型、ID、密钥)即可,其他默认。三元组信息必须与云端设备一致。

1bf0f5c6-3536-11ed-9ade-dac502259ad0.png

完成 zws_iot 参数配置,回到 zws_iot_data_out 配置界面。

1c01d2a6-3536-11ed-9ade-dac502259ad0.png

选择创建的配置 zws_iot,其他参数保持默认。

③ 绘制流图连接 th_transmitter_in、zws_iot_data_out节点。

1c117c06-3536-11ed-9ade-dac502259ad0.png

④ 下载验证

选择流图下载接口,并点击运行按钮。

1a62cf68-3536-11ed-9ade-dac502259ad0.jpg1a7551b0-3536-11ed-9ade-dac502259ad0.png

完成流图下载,等待片刻,可以从ZWS平台看到设备已经上线。

1c41c79e-3536-11ed-9ade-dac502259ad0.png

2. 上报数据

ZWS 平台需要配置与设备上报的数据对应的数据点,才能正确展示接收到的数据内容。

2.1 ZWS-添加数据点2.1.1 添加温度数据点打开设备类型页面。1b1c0dfc-3536-11ed-9ade-dac502259ad0.png点击编辑 iot_mpc_zc1 类型。

1c766e04-3536-11ed-9ade-dac502259ad0.png

点击添加新数据点。

1c8a269c-3536-11ed-9ade-dac502259ad0.png

添加温度数据点,点击保存。

1c964418-3536-11ed-9ade-dac502259ad0.png

2.1.2 添加湿度数据点

继续添加湿度数据点。1ca52a0a-3536-11ed-9ade-dac502259ad0.png2.2 ZC1-上报温湿度

要在ZWS云平台正确显示出上报的数据,则需要上报与添加的的数据点匹配的数据。

2.2.1 配置节点

双击 zws_iot_data_out 节点,打开属性面板。

1cb4ecba-3536-11ed-9ade-dac502259ad0.png

选择 Key_Values 上报方式,同时配置 temperature,humidity 2个键名。

* temperature,humidity 键名必须与ZWS数据点一致。2.2.2 下载验证

保存并下载流图。

1a7551b0-3536-11ed-9ade-dac502259ad0.png

完成流图下载,等待设备上线。

1c41c79e-3536-11ed-9ade-dac502259ad0.png

进入设备详情。

1cd8ee30-3536-11ed-9ade-dac502259ad0.png

查看实时数据。

1cec3986-3536-11ed-9ade-dac502259ad0.png

可以看到,温度、湿度数据已经可以正确上报。

至此,已经完成了温湿度采集、异常警报、数据上报等业务,将在后续章节,继续完成远程控制、风机降温、云端组态等业务。

最后整理已完成流图,如下:

1cfb9f34-3536-11ed-9ade-dac502259ad0.png1d0b119e-3536-11ed-9ade-dac502259ad0.jpg1d1eb564-3536-11ed-9ade-dac502259ad0.jpg

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

    关注

    2870

    文章

    41639

    浏览量

    358412
收藏 人收藏

    评论

    相关推荐

    如何基于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 5402次阅读
    <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 310次阅读
    【<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 402次阅读
    【<b class='flag-5'>EsDA</b>应用】5分钟快速实现图像人脸检测