内网穿透与esp32、esp32cam

本文指导如何在毕设中使用ESP32cam摄像头并通过公网访问,介绍了ArduinoIDE示例代码的修改、内网穿透工具cpolar和花生壳的使用,以及使用Thonny编译实现视频内网穿透的方法。
摘要由CSDN通过智能技术生成

毕设期间,其中有一部分,需要使用到esp32 cam摄像头,并使用公网对其进行访问。首先在此说明,该博客在arduino ide的示例代码中无法完成视频流的内网穿透,如需其他成功内网穿透视频流方法,可以看我的另一篇博客,如果想要学习使用 内网穿透(不需要服务器)的同学可以继续往下看。

首先以arduino ide的esp32 cam的示例代码展示。

如图所示,我们需要更改的地方是代码中第11行,将其注释掉,我们目前市面上使用的板子是代码中的第18行-AI_THINKER,将18行的AI_THINKER取消注释,并在下方的 23  24行的wifi密码更改成自己家里的wifi或者热点,完成代码更改后,接下来选择烧录开发板。

大家选择跟我同型号的开发板即可,接下来便可以烧录代码,完成代码烧录后,打开串口监视器,等待wifi连接便会返回一个ip地址,这个ip地址便是我们一会所要内网穿透的内网ip。

在此需要大家注意的是,arduino ide的这个示例代码,默认使用的是80和81两个端口,80端口是提供web页面的基础设置及照片显示,当你点击开启视频流后,通过页面代码我们可以发现使用的同一ip地址的81端口。

大家在与esp32 cam同一wifi的电脑浏览器上打开端口输出的ip地址,便可以进入到这个web,作者在这使用的是360极速浏览器,不是chorm,打开web后,按下F12按键,便可看到html源码,上述图片是我打开视频流后(实时摄像头)后,当前窗口的视频来源ip,大家放大图片右方可以看到http://192.168.16.107:81/stream,字样,由此可见81端口返回的是视频流。

接下来便给大家介绍内网穿透,我使用的软件是cpolar和花生壳,这两个都可以内网穿透,大家可以直接在浏览器搜索下载,首先介绍cpolar

基于windows系统,大家点击下载正常安装后,直接打开cmd命令窗口,然后看上述图片第三步,连接账户,每个人的authtoken是不同的,大家看自己的就行,大家把第三步的的    ./     后面的复制下来,./   是在linux里面使用的语句,windows系统只需要 从  cpolar······开始复制便可以,复制到cmd命令窗口后回车,会显示绑定成功,这个时候便可关闭cmd窗口,打开ui界面,如下图。

最开始进去会显示几个创建好的隧道,隧道也就是内网穿透,上述是我自己创建的,大家点击编辑进入编辑页面。

协议我们选择http,本地地址就是刚才ide串口返回的ip,后面需要添加:80 端口号,地区选择china开头的就可以,其他不需要设置,此时点击更新,便可以自动开启内网穿透。

####注意:此时电脑需要与esp32 cam连接在同一wifi下,不然cpolar找不到你想要穿透的ip。

上述完成后,便可以在刚才ui界面点击在线隧道列表,查看我们的公网ip

大家把公网地址复制下来到浏览器上便可以看到刚才的摄像头web界面,此时需要注意的是,你只能拍照不能看视频,这也是最重要的地方。

####注意:在刚才作者已经说过,eps32 cam的web网页需要两个端口才能完成拍照和看视频的功能,此时我们只映射了一个端口 80,没有映射81,可能有同学要问了,我再设置一个不行吗,大家可以去试一下,我们使用的是免费版,每一次更改内网ip,返回的公网ip是随机的,我重新设置一个81端口,返回的公网ip和刚才的80端口返回的公网ip是不同的,如上图所示,但是我们在html源代码处便看到了,81端口使用的还是与80端口相同的ip地址,又因为cpolar返回的80和81端口的公网ip不同,因此我们无法完成视频和照片同时存在的功能,这是一个遗憾,不差钱的同学可以去买个套餐,哈哈哈哈哈。

花生壳软件,这个软件相比于cpolar好的地方是有一个固定的域名,缺点是你得花6元钱,不然你没法使用花生壳,最后的效果也与cpolar相同无法完成视频和照片同时存在的功能。可能是作者能力问题,没找到合适的方法,如果有大佬可以在留言区 留言。

上述所说是在arduino ide的示例代码上完成的,无法完成web的视频映射,但是作者为了实现视频内网穿透,也找到了一个好的方法,便是使用thonny 对esp32 cam进行编译,可以完成视频的内网穿透,大家可以看我的另一篇博客。

这篇博客给大家介绍了如何内网穿透,如果你没有视频内网穿透的要求,那么cpolar和花生壳是个不错的选择,因为你不需要额外部服务器,如果你仅使用内网穿透控制led  舵机和其他等等设备,上述内网穿透的方法完全适用,只需更改内网的ip地址即可,大家如果感觉看着字多费劲,作者到时候会出一期视频讲解。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
fre内网穿透只能穿透http协议,且页面大小限制在1496B以内(MTU,包含header头部) 包含函数如下: begin(char*,char*,char*,uint16,String,String);//设定参数信息,第一个参数是wifi名称,第二个参数是wifi密码,第三个参数是服务器地址,第四个参数是服务器端口,都五个参数是自定义域名密码,第六个参数是域名(多个域名以英文逗号分割) on(String,void);//页面以及回调函数,第一个参数是页面路径,第二个参数是回调函数 header(String,String);//设定header头部信息 sendfile();//发送默认的SPIFFS文件 sendfile(String);//发送指定的SPIFFS文件 send(int,string,string);//发送string,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的文本 send(int,string,uint8_t*,size_t);//发送uint8_t数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的uint8_t数组文件,第四个参数是uint8_t数组文件的大小 send(int,string,char*,size_t);//发送char数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的char数组文件,第四个参数是char数组文件的大小 Authenticate(String, String);//判断Auth鉴权信息,第一个参数是用户名,第二个参数是密码 requestAuthentication();//向页面返回鉴权需求,使页面弹出Auth鉴权登录信息 getheader(String);//返回header指定头部信息参数值 arg(String);//返回GET请求参数值
ESP32-CAM是一款集成WIFI和相机模块的开发板,常用于物联网和图像识别领域。在内网穿透的概念中,我们需要将内网设备(如ESP32-CAM)通过路由器的NAT转发功能,使其能够从互联网访问。 要实现ESP32-CAM的内网穿透,可以按照以下步骤进行: 1. 配置路由器:打开路由器管理界面,找到端口转发或虚拟服务器等设置选项。添加一条新的转发规则,将外部网络请求的端口与ESP32-CAM的IP地址及端口进行映射。 2. 配置静态IP:为ESP32-CAM分配一个静态IP地址,以便路由器可以始终将外部请求导向正确的设备。将ESP32-CAM的MAC地址与静态IP地址进行绑定,可在路由器的DHCP服务器设置中完成。 3. 端口映射:在ESP32-CAM的代码中,将相机的端口号设置为与路由器转发规则中的端口号相同。这样,当外部请求到达路由器时,会自动转发到ESP32-CAM上的相机模块。 4. 公网IP地址:如果你的路由器连接了网络服务提供商的模式,公网IP地址是可变的。因此,需要使用动态域名服务(DDNS)来解决这个问题。在路由器或DDNS服务提供商的设置中,配置一个动态域名并将其与ESP32-CAM的IP地址关联。 5. 防火墙设置:如果你的路由器或计算机有防火墙软件,确保在配置内网穿透时允许外部访问ESP32-CAM的端口。 完成上述步骤后,通过外部网络即可访问ESP32-CAM。只需在浏览器中输入你的动态域名或公网IP地址,加上配置的端口号,就可以查看ESP32-CAM的图像或控制它。 需要注意的是,内网穿透涉及到网络安全问题,所以务必采取适当的安全措施来保护你的设备和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值