1 带有ESP32 CAM的笨拙但很棒的傻瓜相机-德赢Vwin官网 网
×

带有ESP32 CAM的笨拙但很棒的傻瓜相机

消耗积分:2 | 格式:zip | 大小:0.04 MB | 2022-07-12

陈键

分享资料个

PCB图如下:
poYBAGLLwOuAWnu4AAJQAROsIdI067.png
pYYBAGLLwPqAdUukAAHr5ruGMEs317.png
pYYBAGLLwP2ACVyPAABt2heY734573.jpg



描述

带有 ESP32 CAM 的笨拙但很棒的傻瓜相机

 

嘿,大家好,这是一个很酷的东西,一个基于 ESP32 cam 的傻瓜相机。

pYYBAGLLwQ6AN2VXAABt24EhMAc682.jpg

 

 

 

 

所以这里的想法是使用这个非常有用的 ESP32 CAM 板,并用草图将其闪存,让我们拍摄图像并将其保存在存储卡上。

有点像一个合适的傻瓜相机,但这个设置不会有任何类型的显示。

这是一个无赖,但它的工作原理。

这是这个 esp32 cam 捕获的图像的外观示例

pYYBAGLLwRSAJY4mAABijlvP5OA464.jpg

 

老实说,这很糟糕,但话又说回来,我们有一台手持式相机可供使用,可以拍摄图像,这是一件很酷的事情。

在这篇文章中,我将向你们展示如何通过几种简单的方法进行此设置。

 

让我们开始吧

 

 

所需材料

pYYBAGLLwRmAVBtCAABkrsb4hW0387.jpg

这些是我在这个项目中使用的东西。

  • ESP32 凸轮
  • 定制PCB(由PCBWAY提供)
  • 锂电池 3.7V
  • USB 微型端口
  • IP5306 电源管理IC
  • 10uF 0805电容
  • 2R 0603电阻(我没有相同的封装,所以我使用了0805电阻)
  • 贴片发光二极管 0603
  • 1uH电感
  • 电池 JST 连接器
  • 母头针
  • 刻度线开关
  • 3D打印身体

 

序幕

pYYBAGLLwRuAQBYMAAB4WLQe_fk880.jpg

 

ESP32 CAM 是一款非常实用的开发板,它在板的底部配备了一个 2MP OV2640 摄像头模块和一个 SD 读卡器。

此外,它的价格约为 10 美元,对于这种功能强大的微控制器来说,这是一个相当不错的价格标签。

本版本使用的WIFI模块为ESP-32S,内置32Mbit Flash和512KB Internal plus外置4M PSRAM。

它可以承受 5 伏电压,这意味着我们可以使用低于 5V 的电压为 ESP32 Cam 供电,如果您提供的电压高于 5V,它就会被损坏。

 

这是这个板的一个有趣的项目,一个傻瓜相机,可以捕捉图像并将其保存到 SD 卡中。

 

以前,我用这个 ESP32 摄像头板制作了一个安全摄像头概念,它工作正常。我把它放在我家外面,它还在工作。https://www.pcbway.com/project/shareproject/DIY_Security_CAM.html

 

我的观点是,ESP32 CAM 可以处理各种各样的东西,从流式传输视频到捕获图像和东西。它确实会加热白色流式实时画面,这是一个缺陷,但对于像摄像头这样的设置,可以添加一个冷却风扇来降低模块的温度。

 

基本结构

现在,在制作这个项目的 PCB 版之前,我准备了一个简单的设置,它是 -

poYBAGLLwR6AEtuVAACRvnR4V5g349.jpg

 

  • 首先,我用这个项目的主要草图刷新 ESP32 Cam
  • 然后我在具有 5V 电源的性能板上进行了临时设置,该电源是您可以在线购买的 LiPo 升压模块。
  • 将 Boost 模块的 5V 和 GND 与 ESP32 Cam 的 5V 和 GND 连接后,我们可以可靠地为 ESP32 CAM 板供电。
  • 要拍摄照片,我们只需按下重置按钮,此相机设置将拍摄一张延迟 3 秒的图像。

 

现在让我们继续下一步或下一个变体,即此 ESP32 Cam 设置的 PCB 版本。

 

PCB版

 

现在要制作这个 ESP32 相机设置的 PCB,我真的不需要在这个项目中做整个研发工作,因为这个设置只是一个由 LiPo 升压转换器电路供电的 ESP32 相机。

 

poYBAGLLwSSAYr2fAABjmvr5ldg970.jpg

pYYBAGLLwSaAUW-rAABFY9SzjFU970.jpg

所以我所做的是,我首先得到了 IP5306 IC,它是一种电源管理 IC,它具有内置的 LiPo - 锂电池充电功能,内置低切和高切两种功能,它还将它们的电压提升到 5V 2A,这是一个很多。

 

我研究了它的数据表,然后在我的 PCB CAD 软件中准备了一个原理图,它是 -

 

pYYBAGLLwSiANCjpAABLJIkRZhc606.jpg

 

这个设置比较简单,有一个最小的 IP5306 设置,IP5306 的输出进入 ESP32 Cam 分支引脚的 5V 和 GND。

我还在 PCB 上添加了一个单独的开关,它没有连接到电路板或任何东西,它完全隔离,只有两个连接器。

那是因为我将手动将 ESP32 上重置按钮的两个端子的电线焊接到这些焊盘上。

完成原理图后,我将其转换为 PCB 设计。

 

poYBAGLLwS2AM8eGAABvW0Kzdjc739.png

 

我以正确的顺序放置所有组件,然后将它们的轨道正确连接到彼此。

我还在这个 PCB 上添加了一些艺术元素,包括自定义丝印、徽标和邦戈猫。

 

从 PCBWAY 获取 PCB

 

poYBAGLLwTKALBdsAACb95_NnXY769.jpg

 

pYYBAGLLwTSAcWAQAACbE_36G3A561.jpg

 

完成设计后,我将其 Gerber 数据导出并发送到PCBWay以获取样品。

我已经使用PCBWAY服务很长时间了,对于这个项目,我得到了紫色阻焊层的 PCB。

这是我第一次获得紫色 PCB,体验非常棒,我真的很喜欢我在整个电路板上放置的阻焊层和定制丝印的整体质量。

 

查看 PCBWAY,以更低的成本获得出色的 PCB 服务!

 

组装过程

 

pYYBAGLLwTaAHd9SAABgbIPdbYU123.jpg

 

这个PCB的组装过程包括三个主要的东西,它们是

  • 锡膏点胶
  • 拾取和放置过程
  • 热板回流
  • 并添加 THT 组件。

 

 

锡膏点胶

pYYBAGLLwTqARaoKAAChtclF-iU114.jpg

 

首先,我们在每个元件焊盘上放置焊膏。

我正在使用带有焊膏分配注射器的通用焊膏(SN-Pb 比率 63-37)。

 

 

挑选和放置

poYBAGLLwUCARTx-AAC4mX7VOuI763.jpg

 

然后我们将组件一个一个地添加到它们分配的位置。您可以查看每个组件的精确位置示意图。

 

热板

poYBAGLLwUaAXzerAACVQgi1geM080.jpg

pYYBAGLLwUiADAy_AACV5-4Je5o564.jpg

 

将组件添加到其位置后,我们小心地提起 PCB 并将其放在 SMT 加热板上。

我在这里使用我的 DIY SMT Hotplate,您可以从这里查看 -

热板将 PCB 从下方加热到焊膏熔化温度,一旦 PCB 达到该温度,焊膏就会熔化,所有组件都会焊接到它们的焊盘上。

我们抬起PCB,然后将其放在较冷的表面上稍微冷却一下,以冷却PCB的热量。

 

THT 组件

poYBAGLLwUqAPSzzAAB2m8C-gJA931.jpg

 

完成 SMD 流程后,我们添加剩余的 THT 组件,如 USB 端口、接头引脚、电池连接器。

 

测试 5V 输出

 

pYYBAGLLwU2AZvS5AADzbRi0xBM138.jpg

 

完成电路后,我在电路中添加了一个锂电池,并检查了 5V 和 GND 的输出电压。

最初我想使用 LiPo 电池,但最终我使用了 3.7V 2600mAh 的锂离子电池。

 

在 PCB 上添加 ESP32

poYBAGLLwVCAbc69AAB3_J48TLA131.jpg

pYYBAGLLwVKABfleAACGGPu1fw4282.jpg

poYBAGLLwVWAIVVZAACTlOEkzWw939.jpg

pYYBAGLLwVeAfb36AACeWZfrRdg093.jpg

 

检查电路板并确保一切正常后,我在 PCB 上添加了 ESP32 电路板,但在此之前,我在 ESP32 上的 SMD 按钮的两个端子上添加了电线。

然后我将这些电线连接到电路上提供的连接垫。基本上,我只是将此开关与 ESP32 的 SMD 按钮并行添加。

现在我们可以从定制 PCB 上重置电路板,而不是按下 ESP32 CAM 上的重置按钮。

 

上传主草图

 

poYBAGLLwVmAWUNhAAB6gc-DEpY362.png

 

该草图已经添加到 ESP32 CAM 中,有关详细的编程过程,请查看我的这篇文章。

 

https://www.hackster.io/Arnov_Sharma_makes/esp32-cam-web-server-and-getting-started-guide-f1a04a

 

但基本上,我们首先将 ESP32 CAM 与这样的 FTDI 模块连接起来——

 

  • 将 FTDI 输出设置为 5V
  • 将 FTDI 的 VCC(即 5V)连接到 ESP32 CAM 的 5V
  • 地到地
  • RX 到 U0T
  • TX 转 U0R
  • GPIO0 是 IO0 到 GND(这将使 ESP32 CAM 进入 Flash 模式)
  • 转到工具并选择正确的板,在我们的例子中是 AI-Thinker ESP32-CAM。
  • 选择正确的端口并点击上传。
  • 上传完成后,从 FTDI 模块中拔出 USB 并移除 GPIO0 和 GND 之间的跳线。

 

现在我们将 SD 卡添加到 ESP32 并通过按下 IP5306 IC 的电源开关为整个电路板供电。

然后我们按下重置按钮,我们的相机会延迟 3 秒拍照。

 

结果

pYYBAGLLwV2AFhGxAABy0BAWzWU275.jpg

 

如您所见,相机正在工作,并且可以使用它单击图像。

然而,图像质量并不是很好,但是嘿!您期待什么,它是带有 OV2640 的 ESP32 CAM,它是 2005 年的 2 MP 图像传感器。

 

3D打印身体

 

pYYBAGLLwV-AX5cJAABP3nN7_CU510.jpg

pYYBAGLLwWGAThdYAABMSJR8g_8422.png

 

现在这个项目的 PCB 看起来和工作得很好,但它是一个便携式设备,所以我在 fusion360 中设计了它的主体,然后在我的 ender 3 上进行了 3D 打印。

我在这个项目中使用了 PLA,但也可以使用其他材料。

 

最终项目

 

pYYBAGLLwWSABq0sAABuhV0c6qM284.jpg

 

所以这是我的 ESP32 相机项目的最终形式,它看起来很棒,但效果不太好。

也许我可以使用 RPI 摄像头模块进行更好的摄像头设置,但这会作弊,因为我将把这个项目从 ESP32 移植到树莓派上,树莓派是一个芯片上的计算机!

 

我们将看看这个项目的下一次迭代会发生什么,在那之前,请继续关注,我很快就会带着另一个项目回来!

和平

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//www.hzfubeitong.com/m/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="https://m.elecfans.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'带有ESP32 CAM的笨拙但很棒的傻瓜相机',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.hzfubeitong.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);