
ESP32远程图传
支持esp32cam或者合宙esp32s3
支持多个esp32cam连接同一服务端,集群式管理
支持esp32通过Web配置 WIFI 与 服务器信息
esp32 WiFi 断连后自动重新配置连接
可在局域网或者公网使用
支持移动端的web和PC端web查看视频和控制
支持远程控制闪光灯
支持视频流地址访问,可将视频窗口单独嵌入个人网页
<!-- more -->
效果
需要确保足够的供电 和芯片以及摄像头得到良好的散热 ,以及较好的信号,以确保从esp32到服务端这一段的流畅。可外接ipex天线,增强信号。
由于esp32无法编码视频,较大分辨率会带来较大带宽占用,或者小分辨率情况下加大缓存数量和时钟频率也会带来很大的数据量,比如在使用OV2640时将时钟频率设置为30M fb_cout适当加大, 每帧32KB 时可达38fps, 一秒数据量大约是1MB,转为带宽Mbps则是8M带宽。
安装
ESP32端
下载 release 包
其中的两个环境配置根据需求使用,对应
esp32cam
与合宙esp32s3
.编译后
upload
!连接esp32的WiFi :
ESP32CAM_Config
,访问IP
地址:192.168.4.1
信息配置页面如下:
服务端
Windows端:
下载 服务端 后解压!
需要安装Windows版的 jdk17,下载地址
修改服务端
bin
目录下的run.bat
文件运行run.bat脚本,访问 http://localhost:8002 访问web界面。
Linux端:
需要安装
jdk17
和unzip
服务,按照下面的步骤进行安装下载
Esp32CamServer
,并解压运行
可以使用
screen
或者nohup
在后台运行。访问
web
端口 8002。本地则运行:http://127.0.0.1:8002
公网则运行:http://公网ip:8002
Server 端用户默认账户
用户:
admin
密码:
simon123
Server端设备连接默认用户名和密码
用户:
simon
密码:
simon
端口说明
关于视频流访问
每个esp32的mac
地址是不一样的,通过8003端口即可访问视频流。
例如摄像头1的mac地址是 C8F09E490520,那么通过以下地址即可访问:http://127.0.0.1:8003/video/C8F09E490520,如果部署在公网,那么使用公网IP就可以:http://公网IP:8003/video/C8F09E490520
每次esp32接入服务器就会打印设备的mac
地址。
mac地址在哪里找到呢?
在web
端摄像头的信息页面就可以看到。
关于视频窗口的嵌入
该视频流允许跨域,在自己的网页里面添加 img
标签即可,不用iframe
标签。
例如:新建一个 html
文件内填入以下内容,替换img
标签的 src
属性即可。
打开网页就可以看到 esp32cam
的画面。我这里只有一个 esp32Cam,所以只有一个画面:
同时也可以将其植入其他任何web前端,动态打开每个摄像头。
帧率问题
由于esp32
无法编码视频,较大分辨率会带来较大带宽占用,或者小分辨率情况下加大缓存数量和时钟频率也会带来很大的数据量,比如在使用 OV2640
时将时钟频率设置为30M
, fb_cout
适当加大, 每帧 32KB
时可达38fps
, 一秒数据量大约是1MB
,转为带宽Mbps
则是8M
带宽。
普通云服务器可能带宽并不够支持较多 esp32
同时查看监控,同时成本也比较高,不像一些摄像头厂商提供免费的视频服务,这里成本需要考虑。当然实际使用二十多帧也可满足基本使用了,可以降低分辨率到 480 * 320
,4M
服务端大体上也能满足使用。
灯光控制问题
服务端部署在远程公网服务器上,灯光控制的连接会因为网络不稳定而中断,导致一段时间以后控制灯光没有反应。将服务端部署在本地,再穿透到公网之后会稳定很多,没有断连过。
项目地址
- 感谢你赐予我前进的力量