当前位置: 首页 > wzjs >正文

外网网站无锡网站设计 众

外网网站,无锡网站设计 众,邯郸招聘网最新招聘信息2023,银川网站建设公司名单这里写自定义目录标题 在两台设备上安装必要软件Wi-Fi Direct接收端IP(自动发现或静态设置)设置摄像头参数显示初始化网络设置 系统架构概述 发送端树莓派:捕获视频(摄像头或视频文件)→ 编码 → 通过Wi-Fi Direct传输…

这里写自定义目录标题

  • 在两台设备上安装必要软件
  • Wi-Fi Direct接收端IP(自动发现或静态设置)
  • 设置摄像头参数
  • 显示初始化
  • 网络设置

系统架构概述
发送端树莓派:捕获视频(摄像头或视频文件)→ 编码 → 通过Wi-Fi Direct传输

接收端树莓派:接收数据 → 解码 → 在ST7789 LCD屏上显示

准备工作
硬件需求
两个树莓派(建议3B+/4B)

摄像头模块(发送端)

ST7789 LCD屏(接收端)

电源供应

软件需求
bash
复制

在两台设备上安装必要软件

sudo apt update
sudo apt install -y ffmpeg python3-pip git
pip3 install numpy gpiozero spidev st7789

第一部分:配置Wi-Fi Direct连接

  1. 在两台树莓派上配置Wi-Fi Direct
    编辑网络配置文件:

bash
复制

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下内容(两台设备配置相同):

复制

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=USnetwork={ssid="DIRECT-RPi"mode=1frequency=2412key_mgmt=WPA-PSKpsk="raspberry"
}

重启网络服务:

bash
复制

sudo systemctl restart networking

或者

sudo systemctl restart NetworkManager

或者

sudo systemctl restart systemd-networkd

不同发行版使用的网络服务不同,具体使用哪条指令,可以先通过以下指令确认当前使用的是哪个网络管理工具:

sudo systemctl list-units --type=service | grep -E '(network|NetworkManager)'
  1. 验证连接
    在两台设备上执行:

bash
复制

sudo iw dev wlan0 scan | grep "DIRECT-RPi"

应该能看到彼此的设备。

第二部分:发送端设置(视频采集和传输)

  1. 视频采集脚本 sender.py
    python
    复制
import subprocess
import socket
import time

Wi-Fi Direct接收端IP(自动发现或静态设置)

RECEIVER_IP = "192.168.4.2"  # 典型Wi-Fi Direct IP
PORT = 5000

设置摄像头参数

WIDTH, HEIGHT = 640, 480
FPS = 24
BITRATE = "500k"def start_stream():# 使用FFmpeg捕获摄像头并编码为H.264ffmpeg_cmd = ['ffmpeg','-f', 'v4l2','-input_format', 'h264','-video_size', f'{WIDTH}x{HEIGHT}','-framerate', str(FPS),'-i', '/dev/video0','-c:v', 'copy',  # 直接使用摄像头硬件编码'-f', 'h264','-']# 网络传输设置soc = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 启动FFmpeg进程process = subprocess.Popen(ffmpeg_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)try:while True:# 读取FFmpeg输出并发送data = process.stdout.read(1024)if not data:breaksoc.sendto(data, (RECEIVER_IP, PORT))except KeyboardInterrupt:process.terminate()soc.close()if __name__ == "__main__":start_stream()

第三部分:接收端设置(接收和显示)

  1. 安装显示驱动库
    bash
    复制
git clone https://github.com/pimoroni/st7789-python
cd st7789-python
sudo python3 setup.py install
  1. 接收和显示脚本 receiver.py
python
复制
import socket
import subprocess
import threading
from PIL import Image
import st7789
import numpy as np

显示初始化

disp = st7789.ST7789(height=240,width=240,rotation=90,port=0,cs=8,dc=24,rst=25,spi_speed_hz=80 * 1000 * 000
)

网络设置

PORT = 5000
BUFFER_SIZE = 1024 * 8  # 8KB缓冲区def display_frame(frame_data):"""将接收到的帧数据显示在LCD上"""try:# 转换为PIL图像(假设是RGB格式)img = Image.frombytes('RGB', (240, 240), frame_data)disp.display(img)except Exception as e:print(f"显示错误: {e}")def receive_stream():sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind(('0.0.0.0', PORT))# 使用FFmpeg解码ffmpeg_cmd = ['ffmpeg','-i', '-',          # 从stdin读取'-f', 'rawvideo',   # 输出原始视频帧'-pix_fmt', 'rgb24','-s', '240x240',    # 调整为屏幕分辨率'-']process = subprocess.Popen(ffmpeg_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)while True:data, _ = sock.recvfrom(BUFFER_SIZE)if data:process.stdin.write(data)# 从FFmpeg读取解码后的帧frame = process.stdout.read(240*240*3)  # RGB 240x240if frame:display_frame(frame)if __name__ == "__main__":receive_stream()

优化方案

  1. 降低延迟技巧
    发送端:

python
复制

ffmpeg_cmd = ['ffmpeg','-fflags', 'nobuffer',  # 减少输入缓冲'-flags', 'low_delay',  # 低延迟模式'-tune', 'zerolatency', # 零延迟调优# ...其他参数
]
接收端:python
复制
disp = st7789.ST7789(# ...其他参数spi_speed_hz=120 * 1000 * 1000  # 提高SPI速度
)
  1. 自动发现IP地址
    在两台设备上添加:

python
复制

import netifacesdef get_wifi_direct_ip():try:return netifaces.ifaddresses('p2p-wlan0-0')[netifaces.AF_INET][0]['addr']except:return None

常见问题解决
连接不稳定:

缩短设备间距离

尝试不同频道:sudo iwconfig wlan0 channel 6

视频卡顿:

降低分辨率:改为320x240

降低帧率:15FPS

减少比特率:“300k”

显示异常:

检查SPI连接

确认ST7789初始化参数正确

降低SPI速度测试

最终启动流程
发送端:

bash
复制
python3 sender.py
接收端:

bash
复制
python3 receiver.py
这个方案实现了从摄像头采集到无线传输再到屏幕显示的全流程,你可以根据需要调整视频参数和显示设置。

http://www.dtcms.com/wzjs/835211.html

相关文章:

  • 成都免费建网站公司旅游网站国内外研究现状
  • 点餐网站模板广告运营具体是做什么
  • 中英文微信网站建设专门设计网站的公司叫什么
  • 医院做网站的风格昆明信息港官网
  • 做网站 用哪种小型企业网站有哪些
  • 温州公司建设网站制作为什么建手机网站
  • dede网站301怎么做wordpress 替代
  • 鹤壁市建设局网站法国网站域名
  • 只做绿色食品的网站黄骅市天气预报最新
  • 怎么做网站生意thinkphp商城源码
  • 黑龙江省建设协会网站响应式企业展示型网站
  • 纪检监察信息网站建设电商网站模块有哪些
  • 做阿里巴巴网站店铺装修费用重庆网站建设的价格低
  • 网站建设基本情况网站管理员怎样管理员权限
  • 免费h5模板网站模板如何做好网站内容优化
  • 甘肃网站怎样备案怎么查看网站建设时间
  • 设置个网站要多少钱建设银行的网站你打不开
  • 替别人做网站管理员南宁模板做网站
  • 商务网站建设学期总结山西设计网站公司
  • 织梦系统做网站免费软件下载存在哪些风险
  • 服务器网站搭建教程搜索引擎优化的英文
  • 网站开发人员配置济南住房和城乡建设厅网站
  • 小县城做婚礼网站手机网站开发框架
  • 葛洲坝机电建设有限公司网站建设工程业绩补录 网站
  • 国外优秀论文网站网站微信认证
  • 青岛外贸网站推广外贸网站空间选择
  • 做网站公司排名效果图制作好学吗
  • 贵州两学一做教育网站佛山网站建设首选
  • 做会计一般关注什么网站石家庄网站建设公司排名
  • 惠州建站公司宁波网站建设制作网络公司