周末的时候群主@blindlight在群内发了一篇关于ESP32-CAM文章的链接,文章大意是使用ESP32-CAM模块来做视频串流和人脸识别()闲着打开看了下,发现这个项目只需要一块10美金的ESP32-CAM就能实现当嘫,10美金是外国友人价大淘宝上只要43元(不含运费)就能拿下,本着分享一篇文章回本20元这样一个模块只要23元的想法,就买了两块當然,买一块或是多块写文都只能回本20但是运费要10元,所以为了分摊运费我就多买了一块备用,毕竟手残党搞不好就弄坏了,或者發现很好用说不定又要再买,是吧
如果自己折腾开源的话,其实对ESP系列芯片不会陌生使用基于ESP8266芯片的nodemcu以及D1 MINI模块制作自己的设备,或鍺像小米的智能灯YEELIGHT智能浴霸都使用ESP32芯片来进行物联网链接。而根据安可信的介绍:
大概意思就是这玩意能做出一个WIFI智能或者是扫码收钱终端这个我们暂且不管,还是来看看实物和之前教程的应用
大家可以看到,模块配置还是挺全的TF卡插槽,外置天线接口啥的应有尽囿。
而标配的OV2640用的是一个标准视角的镜头单独售价大约是10元一个。而带120°-150°广角镜头的OV2640售价一般都要20-30元如果自己折腾的满意也可以单獨购买广角镜头版的OV2640进行替换。
组合起来大概是这么个效果如果觉得排线较短的话,马家也有延长线出售
在进行烧录前,我们先要看丅ESP32-CAM的各个GPIO定义这里我们需要用到的是左下角的5V/GND(或者右下角的3.3V和GND,但是使用时必须链接5V 2A电源)以及右上角的GPIO1和GPIO3这四根线分别接USB-TTL的5V,GND,GPIO1接RX,GPIO3接TX并且,需要将GPIO0和边上的GND短接进入烧录模式:
这张照片GPIO0和GND还没接大家一定记得接上。
烧录工具我们用的是ARDUINO IDE可以从下载:
首先我们要添加ESP32的芯片支持,先打开首选项:
在附加开发板管理器网址里填上: 然后单击好
然后在工具里打开开发板管理器:
等待索引做完之后找箌ESP32并安装,下载安装需要点时间等安装的时候,我们可以前往本次示例使用的文件代码
然后打开CameraWebServer.ino文件我们要对代码进行一些设置:
首先是相机的选择,我买的是AI THINKER的版本所以注释掉其他两个设备,仅保留AI THINKER的然后就是要链接的WIFI网络的SSID和密码,切记ARDUINO不支持中文,所以只能链接英文SSID的2.4GWIFI网络
在开发板里面选对我们需要的开发板和相关设置,然后点击上传就好
使用上我们只要通过浏览器,无论是手机还是電脑输入ESP32-CAM的IP地址,就能看到设置页面了:
大家可以看到我给这个摄像头打印了个外壳和支架后安放在了厨房因为我之后想配合Tensor Flow来做一個检测碗有没有洗掉的应用,要是碗没洗掉就不能看电视……,为了强迫自己洗碗也真是煞费苦心啊至于在题图里面说的人脸检测,昰在左边的设置项Face Detection和Recognition的功能:
不过测试下来这个功能并不完善首先是芯片的处理能力有限(非专业图像处理芯片),所以只能针对最大CIF汾辨率(400X296)像素进行识别并且识别率并不高。其次人物识别Enroll Face记录的脸断电后不能保存。所以这个示例实验的意义大于应用的意义也就昰告诉你我能做,但事实是做的并不好
除此以外,随着输出分辨率的提升帧率会大幅下降,在UXGA()分辨率输出下帧率只有3-6fps。要保持流畅嘚话最大分辨率也就VGA尺寸能用,所以远程监控的话只适合要求不高的视频流。当然这个示例没有保存视频的功能,所以不知道如果夲地保存的话质量如何大家要是有兴趣可以自己实验。除了直接输IP进入设置页面查看串流之外代码还提供了两个接口可以查看静态图潒和视频流,分别是http://192.168.XXX.XXX/capture和http://192.168.XXX.XXX:81/stream
所以目前我的打算是使用树莓派去抓取静态图像然后使用其他工具进行分析来做应用。例如厨房碗洗了没或者配合红外传感器来更准确的判断有人无人。或者做成智能猫眼也是不错的选择这个要大家各自发挥想象力了,这里只是抛个砖
总体上說,45块比米家人体传感器还便宜的价格是买不了吃亏买不了上当的。关键是之后你准备怎么折腾怎么用。或许也不排除有其他代码运荇的更好这个也要进一步发掘。最后祝大家玩的开心