前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >esp32cam远程监控(局域网的组成)

esp32cam远程监控(局域网的组成)

作者头像
全栈程序员站长
发布2022-07-28 19:25:45
3.5K0
发布2022-07-28 19:25:45
举报

大家好,又见面了,我是你们的朋友全栈君。

手上这个ESP32-CAM买回来已经放了一个学期了,最近才开始玩,试了试用它来实现视频传输。局域网的视频传输比较简单,基本能正确把例程烧进去就可以了,这篇文章主要记录一下远程视频传输的实现。

ESP32-CAM实现局域网/远程视频传输

方法一:Platfrom IO例程+路由器内网穿透

条件

  • 安装了Platform IO的VS Code
  • 刷了OpenWrt的路由器
  • 云服务器(可选)

1. 直接使用Platfrom IO创建工程

在这里插入图片描述
在这里插入图片描述
简单修改工程
  • 修改wifi名称和密码
在这里插入图片描述
在这里插入图片描述
  • 修改宏定义
在这里插入图片描述
在这里插入图片描述
  • 修改paltformio.ini,添加如下代码board_build.flash_mode = dout
注意事项
  • 模块要用5V供电,接板子上面的5V接口,接VCC不能正常工作
  • 要修改platfromio的flash mode为dout,不然模块会不停重启

2. 编译烧写

烧写完成后,重启模块,用串口工具看输出信息,连接上wifi后,浏览器输入http://192.168.x.x就可以看到操作界面了。(注意在同一个局域网)

在这里插入图片描述
在这里插入图片描述

东西还是有点多的,可以玩一下,就是感觉发热有点厉害。

3. 配置路由器实现内网穿透

路由器穿透的插件有很多,我主要试了frp和ddnsto。

frp

可以参考文档。 简单来说就是在服务器上运行一个frps程序,然后在路由器上配置相应的信息,启用frp。 我的配置信息: 服务器端:

代码语言:javascript
复制
  [common]
  bind_port = 7252
  token = 马赛克
  dashboard_addr = 0.0.0.0
  dashboard_port = 7500
  dashboard_user = xxxx
  dashboard_pwd = xxxx

路由器端:

代码语言:javascript
复制
[common]
server_addr = 马赛克
server_port = 7252
token = 马赛克
[esp32cam]
type = tcp
local_ip = esp32cam的ip地址
local_port = 80
remote_port = 7001

路由器截图:

在这里插入图片描述
在这里插入图片描述
ddnsto

这个方法设置很简单,也可以不用自己的服务器,参考帖子。 访问时可能会报错Header fields are too long for server to interpret,可以尝试更换浏览器(我换成edge就好了),或者试着修改代码:

在这里插入图片描述
在这里插入图片描述
使用体验

这两种内网穿透方法的速度都很快,跟局域网差别不大,只是发现只能传图像,不能传视频(应该是代码的问题,还没搞明白😭)。

方法二:ESP-IDF +Nabto

官方项目和教程

这个是github上的一个项目,也有比较详细的教程。😁

注意事项

虽然根据官方的教程和代码,虽然有修改为AI Thinker的接线方式,可是还是会报错:

代码语言:javascript
复制
E (1582) ledc: requested frequency and duty resolution can not be achieved, try reducing freq_hz or duty_resolution. div_param=3
E (1592) camera_xclk: ledc_timer_config failed, rc=ffffffff
I (1602) sccb: pin_sda 26 pin_scl 27

I (1602) gpio: GPIO[32]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
E (1662) camera: Detected camera not supported.
E (1662) camera: Camera probe failed with error 0x20004
E (1662) app_camera: Camera init failed with error 0x20004

解决方法参考这里,在xclk.c添加一行代码timer_conf.clk_cfg = LEDC_USE_APB_CLK;

代码语言:javascript
复制
        ledc_timer_config_t timer_conf;
        timer_conf.duty_resolution = 2;
        timer_conf.freq_hz = config->xclk_freq_hz;
		timer_conf.speed_mode = LEDC_HIGH_SPEED_MODE;
		timer_conf.timer_num = config->ledc_timer;
		timer_conf.clk_cfg = LEDC_USE_APB_CLK;
		esp_err_t err = ledc_timer_config(&timer_conf);
		if (err != ESP_OK) { 
   
			ESP_LOGE(TAG, "ledc_timer_config failed, rc=%x", err);
			return err;
		}
实现效果

串口输出

在这里插入图片描述
在这里插入图片描述

app显示

在这里插入图片描述
在这里插入图片描述

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128898.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ESP32-CAM实现局域网/远程视频传输
  • 方法一:Platfrom IO例程+路由器内网穿透
    • 条件
      • 1. 直接使用Platfrom IO创建工程
        • 简单修改工程
        • 注意事项
      • 2. 编译烧写
        • 3. 配置路由器实现内网穿透
          • frp
          • ddnsto
          • 使用体验
          • 官方项目和教程
          • 注意事项
          • 实现效果
      • 方法二:ESP-IDF +Nabto
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档