基于TCP网络传输协议和python3 的双路视频数据和单路指令传输显示系统的代码

这是一个使用Python3实现的TCP网络传输协议项目,能完成双路视频数据和单路指令的在局域网内的传输。服务端和客户端的代码已给出,尽管可能存在小错误,但在局域网环境下已通过测试。

注意:这个代码是很早之前的写的一个小代码,可能会有一些地方会出现一些小问题,但是我在局域网的情况下已经测试过了。仅仅是局域网

 服务端代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*- 
# Author: K_liu
'''
这是一个服务器端程序
可以通过TCP传输协议实现两路视频传输,一路指令传输,本程序采用一个随机数来模拟指令
'''
import socket
import struct
import time
import cv2
import numpy
import random

# 设置套接字,本程序采用TCP协议,当然也可以采用UDP协议,但是要保证指令传输的正确性,所以采用了TCP协议。
addr = ("0.0.0.0", 8080)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) #端口可复用
server_socket.bind(addr) # 绑定地址端口
server_socket.listen(True) # 进入监听状态

def Package(camera,img, img_resolution, img_param, conn_client, flag):# 注意flag是一个数据区分标志,0和1分别表示两路数据
    '本函数的主要功能是实现Opencv采集到的视频数据进行转码,同时进行数据打包传输'
    number = random.randint(1,10) # 生成一个1到10的随机数,模拟指令
    frame = cv2.resize(img, img_resolution) # 对图像数据大小进行设定
    _, frame_encode = cv2.imencode('.jpg', frame, img_pa
下表列出推荐的主要硬件模块与型号,并说明选型理由(课堂环境、稳定性、易采购与工程实现便利性)。 PLC(控制核心) 推荐型号:Siemens S7-1200 系列,CPU1214C DC/DC/DC(或 CPU1212/CPU1215 可根据 I/O 数量调整)。 理由:支持高速计数/高速输入、内置以太网,编程方便,工业可靠,便于扩展。 扩展 I/O / 输入终端 推荐:Siemens SM1223 数字量输入/输出模块(若需要额外点位);或者使用 DIN 导轨式通用输入端子排 + 光耦隔离板。 理由:工业兼容性与模块化扩展。 学生抢答按钮(终端) 推荐型号:Schneider Electric XB4 系列工业按钮(防尘、按键长寿命);或普通防水瞬动按键(带 LED 灯)。 数量:按需(例如 16 路输入对 16 名学生)。 提示输出(蜂鸣器 / 指示灯 / 显示) 指示灯:堆叠式信号柱灯(如 PATLITE 或 ABB)或单独 LED 指示模块。 蜂鸣器:12V DC 有源蜂鸣器或继电器驱动的蜂鸣器。 语音采集设备 推荐麦克风(课堂):Shure SM58(动圈) × 若干(耐用、抗噪); 若需高质量:电容话筒如 Rode NT1(须 +48V 幻象电源); 音频接口:Focusrite Scarlett 2i2 或 Behringer UMC204HD(USB 音频接口)用于把模拟音频传至上位机。 若需覆盖多个座位:话筒阵列 + 小型混音器(Behringer Xenyx 系列)或采用多通道音频接口(Focusrite Scarlett 4i4)。 上位机(PC) 运行语音识别、流利度分析与数据库。通过以太网或 RS485 与 PLC 通信。 通信模块 首选:以太网(CAT5e/CAT6)直连 PLC 与上位机(S7 通信或 Modbus TCP)。 备用:RS485 转换器(MAX485)与 Modbus RTU(若上位机需串口通信)。 电源 PLC 电源:24V DC 直流稳压电源(例如 MeanWell 24V/5A DIN 导轨电源)。 麦克风接口:话筒电源/混音器自带或独立 +48V 幻象供电(若使用电容麦克风)。 指示灯/按钮:可用 12V 或 24V,依所选部件确定。 输入隔离与防抖电路(建议用) 光耦隔离模块(如 ILDxx 系列或自行设计 PC817 光耦电路); RC 去抖电路、施密特触发器(74HC14)或专用去抖芯片。 接线端子、DIN 导轨外壳、熔断器、浪涌保护器 端子排、保险丝、接地端子、EMI 滤波器等。 3 各模块连接方式与总体线路架构 3.1 总体连线说明(分层) 感知层(学生端):抢答按钮 → 输入调理板(去抖 + 光耦) → PLC 数字量输入。 控制层(PLC):接收按钮输入、判定先后、锁定抢答者、控制提示输出(蜂鸣器/指示灯)、通过以太网向上位机发送抢答事件与编号。 采集层(语音):当 PLC 通知上位机或触发输入后,上位机指令音频接口开始录音(或硬件触发音频录制),语音数据存储到本地数据库并进行流利度分析。 展示层(教师端):上位机 UI 显示抢答结果、评分与历史记录。 3.2 物理连接(主要线缆) 抢答按钮到 PLC:每路按钮使用屏蔽双绞线,屏蔽层接系统地;信号线连接到 PLC 数字输入端(24V DC)。每路应串联防抖 RC 并并联光耦输入。 PLC 到上位机:CAT5e 网线(RJ45)直连(Modbus TCP 或 S7 协议),或使用 RS485(两芯双绞线)。 麦克风到音频接口:XLR 线缆(平衡线)连接麦克风到混音器/音频接口;音频接口通过 USB 与上位机相连。 指示灯/蜂鸣器到 PLC:PLC 数字量输出驱动继电器/固态继电器或直接驱动 12/24V 指示灯(视输出模块能力)。 4 电路设计(详细) 下面给出关键电路的设计细节:按钮输入调理、光耦隔离、去抖、指示输出驱动、麦克风前端采集与音频接口连接、PLC 到上位机通信电路。以工程实现为标准给出器件与参数建议。 4.1 抢答按钮输入电路(单路示意) 目标:将教室按键的机械抖动与噪声抑制,同时实现与 PLC 的电气隔离。 元件(单路) 按键(常开) — StudentButton 上拉/下拉电阻(R1) — 10 kΩ 去抖电容(C1) — 0.1 μF(100 nF) 串联限流电阻(R2) — 1 kΩ 光耦(U1) — PC817 或高速光耦(工业级推荐) 施密特触发器(可选) — 74HC14(用于整形) 24V DC 供电(来自 PLC 电源) 电路说明(文本版示意) lua 复制 编辑 学生按键 ---||----+---- R2(1k) ---|> 光耦 LED (输入侧) C1 | +--- R1(10k) --- GND 光耦晶体管(输出侧) -> PLC DI (经过适当的上拉/下拉保护) 当按钮闭合时,输入侧 LED 通电,光耦导通,输出侧产生干净的数字信号送入 PLC。 在输入侧并联 C1 与 R1 形成 RC 去抖,输出侧如有需要再用 74HC14 做整形。 关键点 光耦提供电气隔离,避免学生端大范围接地噪声进入 PLC。 所有长线建议采用屏蔽双绞线,屏蔽层接系统地(接地点统一)。 对于需要计时精度的抢答器,应保证去抖时间短(例如 <20 ms),同时需在 PLC 程序内实现软件级别的最小按下间隔与先到锁定逻辑以避免竞争条件。 4.2 去抖与先到判定(硬件 + PLC 程序配合) 硬件去抖:RC(10k + 0.1µF)去抖 + 74HC14 整形。 PLC 内部:使用高速计数器/时间戳记录每一路输入的触发时刻(以 ms 为单位);判定最小时间戳为“第一按下”,并立即将其他输入屏蔽直至复位。 4.3 指示输出驱动电路(示意) PLC 输出通常为开放集电极或晶体管输出,若直接驱动 12V/24V 指示灯或蜂鸣器需注意驱动电流限制。 推荐驱动方式:PLC DO -> 中继/固态继电器 -> 指示灯/蜂鸣器。 若使用 LED 指示灯,可在输出端串联限流电阻(若为指示灯模块则无需)。 pgsql 复制 编辑 PLC DO --- Driver Relay --- +24V ----> 指示灯 | 蜂鸣器(12V/24V) 4.4 麦克风与音频采集电路 动圈麦克风(Shure SM58)连接(常见与可靠) XLR(平衡)线接入混音器或音频接口(Mic In)。 动圈麦无需幻象电源(+48V)。 电容麦克风(如使用高级方案) 需要 +48V Phantom,混音器或音频接口需提供幻象电源。 若使用课堂麦克风阵列,建议使用音频混音器将多个麦克风混合或通过多通道音频接口采集。 采集链路 rust 复制 编辑 麦克风(XLR) -> 平衡线 -> 混音器/话放(preamp) -> USB 音频接口 -> 上位机(录音软件/识别程序) 关键点: 使用平衡线(XLR)差分输入可显著降低电磁干扰。 在课堂中建议将麦克风靠近学生口,或使用小型指向性麦克风以减少环境噪声。 如果期望基于“单个学生语言流利度”做评估,需保证每次录音仅包含该学生的语音(可用会议流程:PLC 判定后仅打开该学生座位的麦克风通道,或上位机对录音做语音分段并标注参与者)。 4.5 PLC—上位机通信电路 优选以太网(工业以太网): PLC RJ45(内置) 与 上位机 RJ45 通过 CAT5e 直连或交换机连接。 协议:Modbus TCP 或 S7 协议(取决于 PLC 型号与上位机软件支持)。 备用 RS485: PLC RS485 接口(若有) -> RS485 双绞线 -> 上位机 RS485 转 USB(或串口)适配器。 使用终端电阻(120 Ω)与差分传输,可抗干扰。 6 电磁兼容(EMC)、接地与安全措施 屏蔽与走线 使用屏蔽双绞线连接长距离信号(按钮、感应器);屏蔽层一端接地(建议接在控制柜一侧)。 电源与信号线分开布线,避免与大电流线平行走线超过 30 cm。 接地 系统采用单点接地策略(控制柜为公共接地点),上位机与 PLC 共用接地母线,避免地环路。 抢答终端若分布较远,应考虑局部接地与隔离。 隔离 输入端使用光耦隔离模块以降低地电位差与噪声耦合。 PLC 输出若驱动大功率部件(如蜂鸣器/信号灯),通过中继或固态继电器隔离。 浪涌保护 在电源输入端与以太网接口部署浪涌保护器(SPD)熔断器,保护设备免受雷击或瞬态电压损伤。 断路与保险 每一路关键电源使用适当额定熔断器或断路器
最新发布
09-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值