刷视频看到有人只使用了一个ESP32开发板加摄像头就可以实现家庭监控摄像头,通过网络查看摄像头画面。这么炫酷的东西,一去了解想要白嫖,发现不是卖课就是要买他们家的东西.....很好,大家都没有教程,那我就写一个!正好有测评的开发板,这不得安排上?
前期准备- 使用一块ESP32开发板;
- 使用一个FPC式型号为0V2640的摄像头;
- 电脑安装arduino IDE环境用于ESP32开发板的编程开发;
- 电脑端使用 贝锐花生壳 将内网穿透,实现外网通过网络查看摄像头数据;
项目执行
这个项目的执行将分为两个部分,硬件部分和软件部分。
硬件部分- 开发板介绍
我的开发板使用的是立创当前在评测的开发板,立创ESP32S3开发板。
- 摄像头介绍
摄像头采用的是FPC式OV2640摄像头。购买的链接:https://detail.tmall.com/item.htm?_u=62t4uge5a6f6&id=624606735663&spm=a1z09.2.0.0.5a9d2e8dIZHkK5
- 开发板与摄像头的连接软件部分
因为摄像头是FPC的形式,我们还要考虑如何去驱动它,故设计了一个专门用于该开发板驱动该摄像头的外围驱动电路。关于原理部分我就不说了,照抄就好了。
需要安装anduino IDE进行编程。arduino介绍Arduino是一种开源硬件和软件平台,用于构建和控制各种物理设备和交互式项目。它由一个基于开放源代码的软件开发环境构成。Arduino编程语言是一种基于C/C++简单易懂的语言。Arduino的简易性、灵活性、还有易获得的资源以及丰富的应用领域,使得它成为一个受欢迎和广泛使用的开发平台。无论是初学者还是专业开发者,都可以从中获得快速开发和创新的能力。安装Arduino IDE
- 打开Arduino IDE官网的软件下载页面,选择对应的系统和系统位数下载。这里我选择最新的Windows 10 64位环境。
- 在弹出的新界面,可以选择直接下载,也可以选择捐赠并下载。
- 运行安装程序,一直下一步即可。(建议在设置安装路径时不要保存在C盘)
- 打开Arduino IDE官网的软件下载页面,选择对应的系统和系统位数下载。这里我选择最新的Windows 10 64位环境。
- 下载esp32离线安装工具。
链接:https://pan.baidu.com/s/1zocFRBlMveMA00QhmzkKKA?pwd=1234
提取码:1234 - 选择安装路径。注意,要放在对应用户的arduino器件包目录。以下为Arduino IDEV2.2.1版本的安装路径:
以用户名为 win 为例:
C:\Users\win\AppData\Local\Arduino15\packages安装完成关闭全部arduino窗口,确保arduino已经关闭。
4. 重新打开arduino,并打开 开发板管理器,看到esp32-arduino已经安装完成。
5. 修改中文显示
打开arduino IDE的首选项。【File】->【 Preferences】。
在首选项界面,语言中选择中文(简体)。
如果IDE没有更新,则关闭IDE重新打开即可。
源码介绍
源码我已经上传百度云网盘,有需要自取:
链接:https://pan.baidu.com/s/1QEUrwIl7IBxbApNx-Ka9qg?pwd=1234 提取码:1234 - 工作流程
初始化调试串口 -> 初始化摄像头 -> 初始化WIFI -> 输出显示图像数据的IP地址
- 初始化调试串口
在嵌入式中,调试串口很常见也很重要,后面我们的BUG调试查看也要依靠它输出的数据进行分析。 - 初始化摄像头
在源码中有关于摄像头引脚的设置,如果大家跟我的摄像头底板原理图中的引脚不一致,可以通过修改代码的方式,实现任意引脚切换。但是需要注意,我测试出ESP32S3开发板的GPIO45和GPIO46不能使用在有上拉电阻的地方,不然开发板将无法正常工作!
- 初始化WIFI
在源码中有关于WIFI的设置,该WIFI的作用是让ESP32S3开发板连接上该WIFI,这样开发板才能够通过WIFI将图像数据输出到网络上,后面我们只需要通过串口调试时输出的IP地址,将IP地址复制到浏览器打开,即可看到摄像头的画面了。
请在源码中,输入开发板要连接的WIFI账号和密码,要求该WIFI有网络。
- 编译下载
在修改好WIFI和摄像头之后,连接开发板,按照如下参数:
选择我们的板子为 ESP32S3 Dev Moudule;
选择我们的端口号,这里我们选择CH340K的的COM36;
每个电脑的端口都不一定是一样的,可以通过插拔开发板,确定哪个端口是ESP32S3开发板的端口。
点击下载按键,此时会自动编译并下载;
出现下图所示,说明下载成功。如果下载失败请确定是否选中正确的下载端口。
- 打开串口调试助手,如果没有调试助手,那可以使用arduino自带的串口助手。不过要求一定要选择正确的端口才可以。
- 在下载好代码之后,按一次开发板的RESET键进行复位,如果没有按键,那就给开发板断电重连。
- 如果一切顺利的话,在串口调试助手上,会显示出一个IP地址。(我这里的未连接是我把开发板拔了去拍照片导致)
- 使用手机或者电脑也去连接我们在代码中设置的WIFI,一定要连!连接上后,打开浏览器输入这个IP地址然后跳转。每一个人的IP地址应该是都不一样的。如果成功了将会进入下图这个网页。(注意!当前为测试,是局域网的,如果断开这个传输数据的WIFI就不可以了)
点击页面上的 Start Stream 开启图像传输。不出意外的话,应该有摄像头的界面了。
实物的样子
内网穿透可以让我们局域网(内网)变成互联网(外网),这样我们就只要有一个网址,就可以随时随地的看摄像头的画面了。可以借用一个软件,使用电脑下载贝锐花生壳,下载链接:https://hsk.oray.com/。
这个软件需要花钱才能打开内网穿透功能,我也是刚刚会,如果有哪一位大佬有知道免费资源的话,麻烦可以告知我这个萌新(捂嘴哭)
新增内网穿透映射。(会弹出一个网页 )
在弹出的界面输入以下参数。
完成之后,将开发板通电,注意!不能连接其他的WIFI,不然IP地址会变的。通电之后,我们点击诊断,看看内网是否穿透成功。成功则如下:
如果没有问题,我们就可以进行外网测试了。点击外网域名。
或者在网页上输入域名,如果出现以下界面说明我们的监控摄像头完成了!