解决方案:Neuron+eKuiper 实现工业物联网数据采集、清理与反控
优采云 发布时间: 2022-11-28 16:37解决方案:Neuron+eKuiper 实现工业物联网数据采集、清理与反控
点击第一步申请卡ekuiper-1任意空白处,进入订阅群界面,如下图。
点击右上角的添加订阅按钮,添加订阅;在下拉框中选择南向设备,这里我们选择上面搭建的modbus-plus-tcp-1设备;在下拉框中选择要订阅的群组,这里我们选择上面建的群组-1;单击提交以完成订阅。点击北向应用管理,点击应用卡片中的工作状态开关,使应用进入运行状态。
至此,Neuron 已经配置好数据采集,并将采集到的数据发送到北向的 eKuiper 通道。
eKuiper管理器配置
eKuiper manager 是一个管理多个 eKuiper 实例的 Web 管理界面。因此,我们需要设置管理器管理的eKuiper实例。详细设置请参考eKuiper管理控制台的使用。
eKuiper 管理可以使用 REST API、命令行和管理控制台。在接下来的教程中,我们主要使用 REST API 进行管理,包括流程和规则创建。
创建流程
使用以下命令创建一个名为 neuronStream 的流。其中type属性设置为neuron,表示流将连接到neuron。neuron 中采集
的所有数据都会被发送,所以 eKuiper 中的多个规则会针对同一个数据进行处理,所以 stream 属性 shared 设置为 true。
curl -X POST --location http://127.0.0.1:9081/streams \
-H 'Content-Type: application/json' \
-d '{"sql":"CREATE STREAM neuronStream() WITH (TYPE=\"neuron\",FORMAT=\"json\",SHARED=\"true\");"}'
采集
规则
Neuron 流程建立后,我们可以在 eKuiper 中创建任意数量的规则,对采集到的数据进行各种计算和处理。本文以两条采集规则为例,实现边采集到云端的场景。更多eKuiper的数据处理能力,请参考扩展阅读部分。
清理数据到云端
假设Neuron中设置的两个标签的真实含义是:
此规则将获取的神经元数据缩放到正确的精度并将其重命名为有意义的名称。结果发送到云端的MQTT动态主题
{组名}[1]。创建规则的 REST 命令如下。其中,规则的名称为ruleNAll,规则的SQL计算采集到的值,选择node_name、group_name等元数据。在动作中,规则的结果被发送到云端的 MQTT 代理,主题是一个动态名称。根据前面的配置,我们采集
的node_name是modbus-plus-tcp-1,group_name是group-1。因此,在MQTT X中,可以通过订阅主题modbus-plus-tcp-1/group-1来获取计算结果。
curl -X POST --location http://127.0.0.1:9081/rules \
-H 'Content-Type: application/json' \
-d '{
"id": "ruleNAll",
"sql": "SELECT node_name, group_name, values->tag1/10 as temperature, values->tag2 as humidity FROM neuronStream",
"actions": [{
"mqtt": {
"server": "tcp://cloud.host:1883",
"topic": "{{.node_name}}/{{.group_name}}",
<p>
" />
"sendSingle": true
}
}]
}'
</p>
打开MQTT X,连接云代理,订阅modbus-plus-tcp-1/group-1主题,可以得到如下结果。由于采集频率是每100ms一次,所以这里接收到的数据也是以类似的频率。
修改 Modbus TCP 模拟器中的数据以获得更改后的输出。
采集
变化数据到云端
当采集频率高,数据变化频率低时,用户通常会采集大量冗余的重复数据,全部上传到云端会占用大量带宽。eKuiper在应用层提供了去重功能,可以创建规则来采集
变化的数据。修改以上规则,增加过滤条件,只有采集到的标签数据发生变化时才发送数据。新规则变为:
curl -X POST --location http://127.0.0.1:9081/rules \
-H 'Content-Type: application/json' \
-d '{
"id": "ruleChange",
"sql": "SELECT node_name, group_name, values->tag1/10 as temperature, values->tag2 as humidity FROM neuronStream WHERE HAD_CHANGED(true, values->tag1, values->tag2)",
"actions": [{
"mqtt": {
"server": "tcp://cloud.host:1883",
"topic": "changed/{{.node_name}}/{{.group_name}}",
"sendSingle": true
}
}]
}'
打开MQTT X,连接云代理,订阅changed/modbus-plus-tcp-1/group-1主题,接收数据频率大大降低。修改 Modbus TCP 模拟器中的数据以接收新数据。
通过神经元进行设备控制
得益于 Neuron sink 组件,eKuiper 可以在数据处理后通过 Neuron 控制设备。以下规则中,eKuiper接收MQTT指令,动态反控Neuron。
假设一个应用场景,用户通过向云端MQTT服务器的某个主题发送控制命令来控制部署在边缘的设备,例如设置目标设备的期望温度。首先,我们需要在 eKuiper 中创建一个 MQTT 流,以接收其他应用程序发送到命令 MQTT 主题的命令。
curl -X POST --location "http://127.0.0.1:9081/streams" \
-H 'Content-Type: application/json' \
<p>
" />
-d '{"sql":"CREATE STREAM mqttCommand() WITH (TYPE=\"mqtt\",SHARED=\"TRUE\",DATASOURCE=\"command\");"}'
</p>
接下来,我们创建一个规则,根据规则从这个 MQTT 流中读取数据,并通过 Neuron 写入数据。同上,假设tag1为温度传感器的十进制读数。该规则读取MQTT payload中的温度值,乘以10作为tag1的值;使用负载中的 nodeName 和 groupName 字段作为写入 Neuron 的动态节点和组名。
curl -X POST --location http://127.0.0.1:9081/rules \
-H 'Content-Type: application/json' \
-d '{
"id": "ruleCommand",
"sql": "SELECT temperature * 10 as tag1, nodeName, groupName from mqttCommand",
"actions": [{
"log": {},
"neuron": {
"nodeName": "{{.nodeName}}",
"groupName": "{{.groupName}}",
"tags": [
"tag1"
]
}
}]
}'
规则运行后,打开MQTT X,将如下格式的JSON字符串写入命令主题。需要注意的是,你应该确保节点和组已经在 Neuron 中创建。在本教程的配置中,仅创建了 modbus-plus-tcp-1 和 group-1。
{
"nodeName": "modbus-plus-tcp-1",
"temperature": 24,
"groupName": "group-1"
}
打开Neuron的数据监控,可以看到tag1的数据变成了240,说明反控成功。
同时,上面创建的两个规则应该选择新值。
解决方案:基于单片机的多点温度采集系统设计开题报告
一、研究目的及意义
随着人类科技和生产力的发展,生产和生活中人工操作的比例不断降低,科技产生的自动化机器不断提高着人们的生活和生产水平。
其中,多点温度采集系统是机器代替人工的典型例子,将人从挥之不去的温度监测任务中解放出来,让人们安心安排其余更重要的工作。
同时,与人工测温相比,多点温度采集系统具有测温准确、测量范围广、使用简单方便等优点。
其余内容已隐藏,需要先付费才能查看本文全部内容!
二、课题的重点和难点
温度信息的采集是多点温度采集系统的关键。翻阅相关文献,数字温度传感器和铂热电阻温度传感器是市场上常用的两种温度采集方案。
方案一:使用铂金热电阻温度传感器获取温度信息。
" />
铂电阻温度传感器是由铂制成的热敏电阻,其阻值会随着温度的变化而有规律地变化。
其余内容已隐藏,需要先付费才能查看本文全部内容!
三、*敏*感*词*研究现状(文献综述)
温度是反映物体冷热程度的物理量,与我们的日常生活密切相关。
早在2000多年前,人们就非常重视温度。相传在我国古代,有一种物候学的方法,通过时间序列轮换和自然气象变换的方法来预测温度。
随着时间的推移,人们对温度精度的要求越来越高。在农牧业中,大型粮仓需要监测数百个点的温度,掌握每个点在不同时间的温度变化,以提高库容,同时有效避免霉变;在工业上,一些特殊环境对生产条件的要求越来越高。为了测量的及时性和准确性,超过一半的测量点用于温度测量。
其余内容已隐藏,需要先付费才能查看本文全部内容!
4. 研究协议
在这个项目中,首先我会选择合适的芯片,设计合理可行的电路。
" />
其次,由于C语言简单易用,所以本软件将使用C语言编写程序。
考虑到程序中可能存在错误,我将各个模块的程序分别编写,最后由main函数调用。
其余内容已隐藏,需要先付费才能查看本文全部内容!
五、工作计划
2022.1.14---2022.3.4 根据自身能力,确定合理的期末项目,阅读导师指定的相关文件,做好开题前的准备工作。
2022.3.23---2022.3.25 完成开学报告。
了解选题相关背景知识,详细规划步骤,为选题展开和论文写作打下基础。
其余内容已隐藏,需要支付5元才能查看本文全部内容!