ESP32CAM物联网教学01
拍照 + 视频
这么小的一个开发板都带上摄像头了,能拍照?能视频吗?现在就跟着我做起来。
- 初识ESP32CAM
我们到淘宝搜索“ESP32Cam”,就能买到这样一块开发板。
ESP32Cam是双核处理器,提供WIFI和蓝牙两种连接模式,还自带一个摄像头。
安装摄像头的时候,可以用我们的指甲按照图上所示的方向,插入黑色卡扣和开发板之间的缝隙,然后轻轻的向外一扣,黑色卡扣会向外翻转90度成直立状态;把摄像头插入卡座;最后按压黑色卡扣,回到原状,摄像头就安装好了。
- 准备材料
我的电脑是Windows10,安装了Arduino IDE 2.3.2和米思齐mixly 2.0。至于这两个软件怎么安装,大家可以百度一下,然后到官网就可以下载到最新版本了。
我们还需要购买一个ESP32CAM模块,一个烧录底座(最好是挑选两边各有一排针座和排针的那种),一条手机数据线。
- 安装ESP32开发板驱动库
打开Arduino IDE,点击左侧工具栏中的开发板按钮,在搜索栏中输入“esp”,找到“ESP32 by Espressif”,选择版本,点击安装。这样就能安装ESP开发板驱动库文件了。
如图所示,我已经在电脑中安装了2.0.17版本了。需要注意的是,这个是境外的网站连接,下载的速度很慢,最好是深夜的时候避开上网高峰去下载,如果下载中断,可以继续再点几次,直到下载成功。
- 下载CH340串口驱动
网上搜索并下载一个“CH340”的串口驱动程序,点击安装到电脑中。
把ESP32Cam开发板插到底座上,用手机数据线连接到电脑的USB口。打开Arduino IDE,点击Tools——Port菜单,如果出现一个新的设备连接端口号(如图所示,在我的电脑中出现的设备连接端口号是COM3,不同电脑出现的端口号会不一样),则表示CH340驱动程序安装成功,这个ESP32Cam也已经连接到电脑中了。
接下来我们可以选择开发板的类型。我们可以选择Tools——board——ESP32——AI Thinker ESP32—CAM。
- 使用自带的官方程序CameraWebServer
点击菜单File——Examples——ESP32——Camera——CameraWebServer,就可以打开乐鑫公司提供的一个官方示例程序。
我们仅仅需要修改程序里面的两处:重新定义摄像头的类型为Camera_Mode_AI_Thinker;修改WIFI连接的名称和密码(这个是你家里的可用的WiFi连接即可)。修改完程序,就可以按上方的如图所示的“上传”按钮,经过等待一两分钟,程序就能烧写到ESP32Cam开发板中。如图所示,显示完成100%后,则表示这个程序已经烧写到了开发板中了。
- 使用浏览器查看摄像头
我们点击菜单Tools——Serial Monitor打开串口监视器,这时候如果显示如图信息,则表示我们的设备已经初始化成功,程序已经成功运行了。
如果在串口监视器中空白的,没有显示,则是因为设备早已经初始化成功,监视器错过了信息的接收。这时候可以按一下开发板底座上面的Reset重启按钮,或者直接拔下USB数据线等个五秒再重新插入电脑,这样开发板就能重新启动,也会重新发送消息,这样就能在串口监视器中接收到设备重启的信息了。
我们看到这个信息里面有一个194.168.1.184的IP地址,这个就是ESP32Cam视频服务的IP,每个设备的IP地址可能有所不同。
我们可以利用电脑浏览器、或者手机浏览器,输入这个IP地址http://192.668.1.184,就能查看到摄像头的图像和视频了。拉动右侧滚动条,拉到屏幕底部,可以看到有两个按钮,一个是拍照片的,一个是查看视频的。点击Star Stream,屏幕上就能显示摄像头的视频了。
需要注意的是,如果发现浏览器连接没有成功,则很有可能是ESP32Cam开发板和电脑没有在同一个网络桥段里面。也就是说电脑(或手机)和ESP32Cam开发板连接的是同一个WiFi,这样她们就是在同一个桥段里面,这样浏览器才能连接并查看到ESP32CAM的摄像头图像。
- 避坑笔迹
有网上教程在选择开发板类型的时候,没有选择“AI Thinker ESP32—CAM”这种类型的,而是选择“ESP32 Dev Module”这款开发板,尽管已经根据需要重新设置的内存的参数,当把这个程序烧写到ESP32Cam的时候,发现这个程序是错的,不能运行起来。
我们在串口监视器窗口,一直接收到了错误的信息“E (507)esp_core_dump_flash: Core dump flash config is corrupted!”,表示程序在启动的时候,出现内存错误,造成了系统崩溃。
后来我查了一下网上的文章,有人表示Arduino IDE在编译这个CameraWebServr程序时,会根据你选择的开发板类型,自动选择不同的配置文件,把这个程序编译成单核的程序和双核的程序两种。
我这次使用的ESP32Cam,根据淘宝上面的商品介绍,应该为双核CPU,所以选择的开发板类型为“AI Thinker ESP32—CAM”;相反,如果你购买的另外的单核开发板(比如ESP32 S3 wroom就是单核CPU),你就要选择“ESP32S3 Dev Module”这个开发板类型进行编译。
当然,如果你使用米思齐mixly进行编译程序,如果出现这样的错误提示,则很有可能是因为单核程序和双核程序的不兼容造成的了。这个是ESP摄像头开发板程序的一个大坑,也可以为我们排除错误提供一些可能性的判断了。