16 Star 242 Fork 76

superddg123/esp32 TFT彩屏投屏

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
AFL-3.0

esp32 TFT彩屏投屏

投屏测试

介绍

彩屏投屏助手 利用tcp协议 将电脑屏幕实时发送给esp32处理显示,理论10帧以上

新版投屏助手1.3(只能使用esp32—sever版arduino程序):路由器网络240x320分辨率可达10帧,已经测试。

建议用电脑给esp32开热点,传输速度会比连接路由器快(原因在问题发现版块)

B站:super大大怪i

创了一个交流群:519926351,群内有esp32离线安装包,库文件和引脚图,有问题可以讨论

彩屏投屏助手链接:

链接:https://pan.baidu.com/s/1N6OwRVh6Bafnsij4Yy-JKw 提取码:kxco

输入图片说明

软件架构

软件架构说明

上位机:采用Python编程,ui界面用的python自带的tkinter,图像处理采用opencv,数据传输基于tcp协议

下位机:采用arduino编程,显示库采用TFT_eSPI,jpg图片解码采用 Tjpg_Decoder,两个库需要自行安装

安装教程

如果你是其他尺寸屏幕的话,可以修改TFT_eSPI 里的 User_Setup.h ,记得把spi速度改为80M(有的屏幕80M可能会白屏,适当调低),屏幕接线和TFT_espi配置教程->配置教程

1.屏幕显示不全 在User_Setup.h文件中添加定义 #define CGRAM_OFFSET,意思是 库将添加所需的偏移量。

2.颜色错误或显示不全->解决方案

使用说明

彩屏投屏助手1.0-1.2版本

  1. 电脑和esp32必须要在同一局域网内,可以电脑给esp32开热点连接,将arduino 里的 wifi 密码 上位机ip 端口(上位机开启投屏时会显示)修改好后,烧录至esp32,pc端打开彩屏投屏助手,选择好屏幕参数,点击开始投屏,如果没有你的屏幕尺寸可以手动修改‘宽x高’ 以小写x分割,然后复位esp32连接。
  2. 镜像和质量选项,可以在数据传输中设置,彩屏动态显示,质量设置越低,画质越模糊,同时图片内存会变小,默认95,不建议往上加(内存大,esp32处理慢),可以根据自己需要适当降低提高帧率
  3. 截屏区域,屏幕尺寸,同异步,在开启投屏前设置
  4. 工作流程:esp32显示完一帧后,会向上位机发送请求下一帧指令‘ok’,没有处理完当前帧就会发送‘no’,上位机收到ok后才发送下一帧,这样避免了沾包问题

彩屏投屏助手1.3版本

彩屏投屏助手1.3版本,只适用于esp32-server-project-screen-TCP-DMA下位机程序 1.3版本只需要在程序中修改你的wifi信息,然后烧录程序,屏幕会显示IP和Port,打开彩屏投屏助手1.3,在菜单栏点击连接设置,修改为屏幕出现的IP 和 Port,点击开始投屏。

断开连接后,需要复位一下开发板,然后在点击开始投屏。

注意事项

1.由于tcp高速传输数据耗费CPU资源较大,esp32发热严重,加上80Mspi,芯片几乎是全频工作,平均电流为0.21A。芯片过热,数据传输可能会中断。 2.若出现主机发送帧率较低情况,网络原因,线路拥塞,建议用无线网卡开热点。

帧率对比

投屏助手1.0版本

异步

投屏助手1.1版本

高帧率

投屏助手1.2版本

传输方式变化

投屏助手1.3版本(240x320屏幕)

输入图片说明 输入图片说明

问题发现

一、为什么esp32连接电脑热点的传输速度比路由器的高?

路由器作为中间层:二次转发数据有时延(主要原因),多设备连接,网络波动大,tcp经常丢包重传,传输耗时严重 电脑热点:连接设备单一,网络干扰小,传输稳定,延时小,直接和esp32组成回环网络,没有路由器等中间层转发数据,速度快

二、 点击开始投屏后,出现报错 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试

原因上位机默认端口8080被占用

解决方法:win+R 输入cmd打开命令行依次输入:(或者在投屏助手设置中换一个端口)

netstat -ano|findstr 8080

tasklist |findstr pid号

taskkill /pid pid号 /F

端口占用解决

三、 不同的esp32固件包,代码执行效率不一样,下面对比 vscode+platformio 上面安装的esp32 dev包,和arduino 老版本esp32 dev包

platformio

arduino

Arduino编译问题

问题1:pgmspace.h:No such file or directory

解决办法1:

群友提供解决的方法

解决方法2:

输入图片说明

版本更新

软件帮助菜单里有更新详情

1.1:自定义截屏区域,极大提升截屏帧率

1.1.0:在1.1基础上增加端口选择设置,修复帧过大停止发送的问题。

1.2:增加端口选择设置,关闭tcp nagle算法,数据改为整包发送,socket非阻塞式收发数据

1.3:esp32作为服务端,Pc作为客户端,解决连接路由器,esp32传输速度慢,导致帧率低的情况

选择:下位机建议选择DMA版本,提升解码速度,上位机路由器网络建议使用1.3版本(需使用esp32-server版本下位机程序),电脑使用热点1.1.0版本自我感觉比较快,因电脑和网络环境不同,自行对比速度

版本区别

空文件

简介

彩屏投屏助手 利用tcp协议 将电脑桌面无线传输给esp32,驱动TFT屏幕显示 展开 收起
C++ 等 2 种语言
AFL-3.0
取消

发行版 (1)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/superddg123/esp32-TFT.git
git@gitee.com:superddg123/esp32-TFT.git
superddg123
esp32-TFT
esp32 TFT彩屏投屏
master

搜索帮助