毕业设计--离心机数据采集系统

作者:刘依哲    发布于:

I完成工作
1.利用摄像头模块ESP32-CAM完成模型箱内图像的采集,之后使用微型开源库Micro-RTSP将采集到的图像数据处理为RTSP流,并利用Wi-Fi将该RTSP视频流发送到上位机。

2.利用STM32单片机完成离心机内部直流伺服电机的转速采集,并通过串口协议将转速数据发送到Wi-Fi模块ESP32内部,ESP32接收到数据后通过无线的方式将速度数据转发到上位机。

3.利用Python语言及其库完成了离心机系统上位机程序设计,包括视频和图片的采集与显示、转速图的绘制与显示、试验数据管理、下位机自动控制和自定义速度文件等功能。

II视频采集实现
考虑到转子空间有限且转子内部没有光线,选取的摄像头应尽量满足体积小、供电容易、自带补光灯等要求。虽然目前有很多种类的网络摄像头,但是大部分摄像头的体积较大且不支持外部程序访问,使用起来较为困难。因此我们决定采用开源的摄像头模块ESP32-CAM,RTSP(实时流传输协议)是TCP/IP协议族中的应用层协议,被广泛应用于流式媒体传输,开源计算机视觉库opencv也提供了读取RTSP视频流的接口,为方便上位机读取,摄像头采用RTSP协议完成视频流传输。

C/C++的开源库Micro-RTSP是一个微型库,它可用于从资源受限的MCU提供RTSP流。通过访问开源库Micro-RTSP库的GITHUB页面,可以得到针对ESP32-CAM的Arduino代码,将程序烧录到ESP32-CAM后,连接到wifi即可在PC端访问到ESP32-CAM采集到的视频流。 当采用QVGA格式的图像时,帧率可以达到25帧到30帧左右:

原理如下图所示



![alt 文本](https://i.bmp.ovh/imgs/2021/07/b3b8742cc302cf3d.png)

采集效果如下图所示



III离心机转速采集实现
使用ST官方提供的函数库可以快速实现测速功能,首先打开定时器2的时钟,并将其初始化为编码器模式,再将定时器2的通道1和通道2配置为浮空输入模式,便可以完成定时器的初始化设置。参考开源电子网OpenEdv的串口配置程序,完成对串口1配置,再主程序中只需要调用printf函数便可以完成数据发送。

速度采集原理与采集程序流程


IV无线通信部分
使用ESP32完成上位机与下位机的通信,上位机通过无线网络的方式将各种操控指令发送到离心机,下位机接收到指令后,按照指令内容进行开机、暂停、调速等操作,而且离心机的转速还可以通过无线网络的方式传输到上位机,而无需任何物理上的连线

该部分电路原理如图



![](https://i.bmp.ovh/imgs/2021/07/65b7c6331e1dce22.png)
V程序部分实现
1.使用到的库

PyQt5(前端界面)

matplotlib(绘制参数曲线)

opencv(读取离心机内部的RTSP视频流)

socket(用于和ESP32通信,控制离心机)

2.程序结构和系统结构如下

>程序结构

![](https://i.bmp.ovh/imgs/2021/07/4bba84b8ba36ca73.png)

>系统结构

![](https://i.bmp.ovh/imgs/2021/07/cb43f2fcd79baf5c.png)

2.程序运行效果如下

>程序主界面

![](https://i.bmp.ovh/imgs/2021/07/96956d2364fd4735.png)

>程序提供的速度文件编辑工具

![](https://i.bmp.ovh/imgs/2021/07/b43e6c9c96e4ada6.png)

>实现视频缩放效果和图像二值化、轮廓提取

![](https://i.bmp.ovh/imgs/2021/07/64e25a715acab35c.png)

VI效果展示

下位机


上位机


format_list_numbered

(无)

  1. 1. I完成工作
  2. 2. II视频采集实现
  3. 3. III离心机转速采集实现
  4. 4. IV无线通信部分
  5. 5. V程序部分实现
  6. 6. VI效果展示
vertical_align_top

Copyright © 2017 欢迎来到我的博客

Powered by Hexo && Theme - Vateral