智能冶钢厂环境监控与设备控制系统(边缘物联网网关)
目录
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注入…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...