智能冶钢厂环境监控与设备控制系统(边缘物联网网关)
目录
1、项目背景
2、项目功能介绍
3、模块框架
3.1 架构框图
3.2 架构介绍
4、系统组成与工作原理
4.1 数据采集
4.2 指令控制
4.3 其他模块
4.3.1 网页、qt视频流
4.3.2 qt搜索进程
5、成果呈现
6、问题解决
7、项目总结
1、项目背景
这个项目的背景是钢铁行业的数字化转型和智能化升级。随着工业4.0的发展,钢铁生产企业面临着提高生产效率、优化生产流程、降低成本和减少环境污染等挑战。为了应对这些挑战,钢铁企业需要引入先进的数字化技术,实现对生产过程的远程监控和智能化控制。
钢铁生产过程中涉及到诸多复杂的参数和环境因素,如温度、湿度、氧气含量、烟气排放等,传统的人工监控和调节方式已经无法满足生产的需求。因此,引入智能冶钢厂环境监控与设备控制系统,可以实现对生产过程中各项参数的实时监测和智能化控制,从而提高生产效率、优化生产流程,并最终达到降低成本和减少环境污染的目的。
同时,智能冶钢厂环境监控与设备控制系统也符合国家对工业生产过程环境保护和安全生产的要求,有利于提升企业的社会责任形象,促进可持续发展。因此,这个项目的背景是钢铁行业数字化转型的大环境下,钢铁企业迫切需要引入智能化技术来提升生产水平和管理水平,实现高质量、高效率、可持续发展的生产模式。
2、项目功能介绍
-
数据采集和传输模块:该模块负责采集生产过程中的各种参数数据,如温度、湿度、氧气含量、烟气排放等,通过传感器将这些数据上传至云端服务器或本地服务器。
-
数据存储和处理模块:该模块负责将采集到的数据进行处理和分析,并将结果存储在数据库中,以便后续的查询和分析。
-
远程监测和控制模块:该模块负责远程实时监测和控制生产过程中的各项参数,如温度、压力、流量、钢铁传送带、排气扇等,以及自动化调节和优化生产过程。
-
报警和预警模块:该模块负责监测生产过程中的异常情况,并发出相应的报警和预警,以便及时采取措施避免事故发生。
-
界面和操作指导模块:该模块主要是提供给用户管理员良好的界面体验,提供美观简洁的操作界面显示数据和控制设备。
3、模块框架
3.1 架构框图
3.2 架构介绍
用户层:主要是网页端、qt客户端、阿里云。实时接收对应模块传输上来的数据,并且以图形化界面的形式显示出来。对于控制硬件设备,下发相应格式的数据帧给对应模块,经过一系列处理完成控制。
网关层:本层主要是上下两层的中间枢纽,负责上传数据,下达命令等;充当一个中转站,是本架构设计中必不可缺的一层。各个进程间的通信通过套接字、共享内存、消息队列来实现。
设备层:Modbus Slave 软件模拟的多个设备以及STM32各个外设组成的设备层。模拟实际工厂中设备情况。
4、系统组成与工作原理
如图3-1所示,该项目主要分为三层,每层具体的通信以及配合工作的原理如下介绍。
4.1 数据采集
Modbus Slave 模拟工业设备相关参数。STM32连接各类外设。
Modbus服务器通过ModbusTCP协议读寄存器或线圈的数据或状态,具体的帧格式:事务处理标识符|协议标识符|长度标识符|单元标识符|功能码|数据。通过向TCP客户端发送此类帧格式,成功采集到数据或状态。
STM32服务器其实就是一个TCP服务器,32通过ESP8266配置相应的模式具有了联网的功能,两者之间的交互通过TCP进行数据交互。
Modbus服务器和STM32服务器将采集到的数据通过共享内存共享到某一块具体的地址空间以供别的进程获取数据。
- 网页端:网页服务器进程获取特定段的共享内存的地址,服务器再解析相应数据,然后通过HTTP协议上传JSON格式的数据给xxx.html。然后解析节点数据完成数据采集显示。
- QT端:上报进程获取到共享内存的数据,然后该进程解析数据,通过MQTT协议发送JSON格式的数据帧到qt客户端,客户端解析节点数据完成后,在相应组件显示数据。
- 阿里云:阿里云服务器同样获取共享内存内的数据,解析数据封装为JSON格式,然后通过MQTT协议发送给响应进程,进程解析显示数据。
4.2 指令控制
- 网页端:通过点击相应按钮,发出相应指令给网页服务器,过程中使用的协议也是HTTP完成数据通信。网页服务器进程发送数据帧到消息队列中,供给相应服务器(Modbus服务器、STM32服务器)读取消息,然后下发到具体的设备完成控制。
- QT端:通过点击相应按钮,发出相应指令给qt服务器(使用的MQTT协议),然后同样发送到消息队列中,供给相应服务器(Modbus服务器、STM32服务器)读取消息,然后下发到具体的设备完成控制。
- 阿里云:同样如此,使用阿里云提供的LINKSDK压缩包,进行部分处理之后,同样完成类似操作控制具体的硬件设备。
4.3 其他模块
4.3.1 网页、qt视频流
视频流模块都是使用开源的mjpg-stream工具来开发的,mjpg-streamer 提供了一种简单而有效的方式来实现实时视频流的传输和展示,重定向输出流到对应端,一个以HTTP方式传输,一个以UDP方式传输。
视频处理过程可能会出现分辨率不合适导致视频流传输错误,可以通过相应配置解决问题。该模块运行在虚拟机上,将采集到的视频流传输到网页端和QT端,提供监控功能,保证工厂正常运转。
4.3.2 qt搜索进程
qt广播搜索本公司的所有产品,然后建立TCP连接传输设备信息。具体的实现可以参照我的以往的博客http://t.csdnimg.cn/gdbSm
5、成果呈现
6、问题解决
- WIFI模块的模式配置,发送AT指令,但是一直连接不上服务器。
解决:wifi连接的5G,模块不支持5G,更改网络连接。
- Modbus服务器采集数据错误,有时出现乱码。
解决:具体的帧格式的起始地址和数量和Modbus Slave设备端不统一,更改地址及数量。
- 网页端接收数据错误。
解决:在传JSON格式的时候,发送数据长度没指定好,导致出现乱码,规定长度并且清空缓冲区解决问题。
- 视频采集模块无法正常传输数据。
解决:以为是代码的问题,结果更改分辨率即可。
- 阿里云在获取数据之后就无法再次去控制设备了。
解决:由于对前端不是很了解,自己查资料F12检查,看到好像自己数据类型的键报错,结果发现表示范围0-100,而我传输数据两千多,导致界面卡死。重新配置设备参数解决问题。
- 上报QT的数据以及设备信息总是出问题。
解决:这一块的程序相对复杂且繁琐,数据帧的格式不统一导致接收数据错误,JSON格式数据传输错误,多线程中传参取地址不对。将数据格式全部统一、避免数据的冲突,并且多加几条容错判断,解决上述问题。
7、项目总结
智能冶钢厂环境监控与设备控制系统的实施为冶钢厂提供了实时监测、远程控制和智能预警的功能,提高了生产效率、降低了能耗,并确保了冶钢过程的安全稳定运行。在项目实施过程中,我克服了各种挑战,取得了良好的成果和效益。

相关文章:
智能冶钢厂环境监控与设备控制系统(边缘物联网网关)
目录 1、项目背景 2、项目功能介绍 3、模块框架 3.1 架构框图 3.2 架构介绍 4、系统组成与工作原理 4.1 数据采集 4.2 指令控制 4.3 其他模块 4.3.1 网页、qt视频流 4.3.2 qt搜索进程 5、成果呈现 6、问题解决 7、项目总结 1、项目背景 这个项目的背景是钢铁行业的…...
【Python】conda镜像配置,.condarc文件详解,channel镜像
1. conda 环境 安装miniconda即可,Miniconda 安装包可以到 http://mirrors.aliyun.com/anaconda/miniconda/ 下载。 .condarc是conda 应用程序的配置文件,在用户家目录(windows:C:\users\username\),用于…...
实战章节:在Linux上部署各类软件
详细资料见文章的资源绑定 一、前言 1.1 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没…...
铭飞CMS list 接口 SQL注入漏洞复现
0x01 产品简介 铭飞CMS是一款基于java开发的一套轻量级开源内容管理系统,铭飞CMS简洁、安全、开源、免费,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,专注为公司企业、个人站长快速建站提供解决方案 0x02 漏洞概述 铭飞CMS在5.2.10版本以前list 接口处存在sql注入…...
Linux指令初始
1.ls指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 ls 常用:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。 …...
Nginx命令---启动nginx
介绍 使用命令启动nginx。 命令 nginx目录/bin/nginx...
【UE5】监控摄像头效果(下)
目录 效果 步骤 一、多摄像机视角切换 二、摄像头自动旋转巡视 三、摄像头跟踪拍摄 效果 步骤 一、多摄像机视角切换 1. 打开玩家控制器“MyPlayerController”,添加一个变量,命名为“BP_SecurityCameraArray”,类型为“BP_SecurityCa…...
binkw32.dll丢失怎么办?这5个方法都可以解决binkw32.dll丢失问题
binkw32.dll文件是什么? binkw32.dll是一个动态链接库文件,它是Windows操作系统中的一个重要组件。它包含了许多用于处理多媒体文件的函数和资源,如视频、音频等。当我们在电脑上打开或播放某些多媒体文件时,系统会调用binkw32.d…...
C语言-每日刷题练习
[蓝桥杯 2013 省 B] 翻硬币 题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果…...
Qt设置类似于qq登录页面(ikun)
头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QWindow> #include <QIcon> #include <QLabel> #include <QMovie> #include <QLineEdit> #include <QPushButton>QT_BEGIN_NAMESPACE namespace Ui { class…...
Qt 如何使用VTK显示点云
开发环境 ubuntu 20.04 VTK 8.2 编译VTK 下载源码 git clone --recursive https://gitlab.kitware.com/vtk/vtk.git 使用版本管理工具,切换版本到8.2 更改编译选项,这里使用cmake-gui进行配置 1、编译类型修改为Release 2、安装路径可以设置…...
Ganache结合内网穿透实现远程或不同局域网进行连接访问
文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络,提供图形化界面,log日志等;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…...
Qt槽函数不响应不执行的一种原因:ui提升导致重名
背景: 一个包含了组件提升的ui,有个按钮的槽函数就是不响应,于是找原因。 分析: 槽函数的对应一是通过connect函数绑定信号,二是on_XXX_signal的命名方式。界面上部件的槽函数通常是第二种。 我反复确认细节&#…...
vuepress路径问题,导致图片不显示
图片不显示,报 Uncaught SyntaxError: Unexpected token <错误 很可能就是:路径配置原因 1.当设置为 / 时,VuePress 会假设你的站点将部署到服务器的根路径, 例如 https://yourdomain.com/。 2.生成的页面链接和资源引用将以…...
QT 重定向qdebug输出到自绘界面
因为在嵌入式中调试qt需要查看输出信息,特意写了一个类用户便捷查看qdebug信息 界面如下: 提供了开始,停止,保存,清空,退出功能,具体代码下文给出 文件如下 #ifndef QDEBUGREDIRECT_H #define QDEBUGREDIRECT_H /**qdebug 重定向类 定向到界面控件*李吉磊 2023.12.7* */#in…...
前端(一):HTML+CSS
参考课程:23最新版web前端开发_哔哩哔哩_bilibili 文档:GitHub - codeNiuMa/HTML-md-file: 学习HTML课程时的资料 目录 1 HTML 1.1 骨架 DOCTYPE html标签 head标签 body标签 title标签 meta标签 1.2 标签标题h1 1.3 段落p 1.4 水平线 1.5 图片img 1.6 …...
如何使用Matlab完成窗口与子窗口
目录 一、前言 二、主窗口与主窗口按钮 三、子窗口 四、调用函数并显示在子窗口中的文本框中 五、关闭子窗口 一、前言 有时候需要借用Matlab完成一个图窗功能,但是我们的程序不仅拥有功能,还拥有一些子功能,那么我们该如何借助Matlab完…...
Threejs之相机基础
参考资料 正投影相机…相机控件MapControls 知识点 注:基于Three.jsv0.155.0 正投影相机正投影相机-Canvas尺寸变化包围盒Box3地图案例(包围盒、正投影)相机动画(.position和.lookAt())不同方向的投影视图旋转渲染结果(.up相机上方向)管道漫游案例OrbitControls…...
2024SIA上海国际轴承工业展览会 ▎参行业盛会 展轴研风采
2024SIA上海国际轴承工业展览会 内容:1、轴承制品展区:2、轴承设备展区:3、轴承零件展区: 国际轴承展丨轴承工业展丨轴承装备展丨上海轴承展丨上海轴承工业展丨上海轴承装备展 2024上海国际轴承工业展览会将会于2024年7月24-26日…...
SQLMap介绍
预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
