1 Star 0 Fork 1

VENTIM / 22.7 esp32cam多功能摄像机

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 7.02 KB
一键复制 编辑 原始数据 按行查看 历史
志宇益生菌 提交于 2023-10-29 14:34 . update README.md.

22.7 esp32cam多功能摄像机

本仓库使用AGPL开源协议,请按照协议使用

简介

  • 本项目是2022年7月,根据我自己的兴趣自行研究,从硬件、3d外壳、软件、小程序、物联网等多方面技术发展的。
  • 构思功能;tft摄像机局域网摄像头物联网远程摄像头桌面天气显示蓝牙键盘蓝牙鼠标
  • 当时接触了挺久的esp32及esp32cam,感受到它的性价比之高,于是想结合tft显示屏做一个mini多功能摄像机。
  • 视频展示链接 一系列:
  • https://b23.tv/f3D5Wb4
  • https://b23.tv/wRjVSeI
  • https://b23.tv/9M3WEDg
  • 。。。。。。
  • 整体实物图: 输入图片说明

硬件外壳

  • 当时的构思有很多功能,硬件上它有wifi,蓝牙,sd卡,摄像头,adc,tft屏,大led照明灯等,注定它拥有超多拓展性。
  • 一开始是单独模块的测试,连接杜邦线等,感觉各功能没有太大的干涉后,就绘制原理图pcb,打板焊接制作,结合自己忽然感兴趣的3D外壳设计,加之tinkercad免安装软件易操作,以及三维猴的优惠券的诱惑下,盘它,就制作出来了,虽然有点小曲折,但最后还是不错的,整体组装起来完美了。
  • 这个自己感兴趣的项目默默执行了很久,进度也比较慢,且中途忙于其他事而暂停。最近终于有时间搞它,那就挖掘它吧。
  • 该功能视频链接:https://b23.tv/f3D5Wb4
  • 原理图:
  • 原理图
  • PCB图:
  • 输入图片说明
  • 板子渲染图:
  • 输入图片说明
  • 3D外壳设计:
  • 输入图片说明
  • 输入图片说明

功能1;TFT摄像机

  • 在上次esp32cam多功能摄像机的硬件,3D外壳及组装完成后,进行最基本的摄像机功能的开发。

  • 主界面是摄像头画面实时显示在tft上,使用了双核解码传输处理逻辑,加之spi的dma传输数据,还有更优的解码库,让帧数达到最大。

  • 电池电压的读取,与4个adc按键的读取,共用一个adc引脚,巧妙电路和代码逻辑来区分,极大节省引脚。

  • tft屏与sd卡引脚重合(引脚实在不够用),导致拍照写入sd卡后,得重启才能正常使用,否则tft异常。

  • 还有本机wifi未启用,本机时间不可靠,写了逻辑让记录存图的文件夹序号,需要存图才+1存,一次开机存到同一个文件夹,以当前时间命名,防止数据践踏,方便整理,方便延时摄影。

  • 设置界面可修改摄像大小质量,延时摄影及保存参数。 延时摄影可批量存sd卡,后续处理即可得到视频。

  • 该功能视频链接:https://b23.tv/wRjVSeI

  • 实物图

功能2;局域网图传

  • 因为esp32cam自带wifi,于是,就利用它完成本次的局域网图传功能。
  • 最开始呢,是官方例程里有局域网图传简单例程,于是拿过来改造,81接口传图片流,自行编写80接口进行http的服务端,响应网页的访问请求,以及解析自学的网页表单提交,完成自行设计的参数交互。
  • 然而,发现只有电脑版网页访问才能正常显示图片流,手机和小程序的不行。这不行哇,于是,搞它。
  • 详细研究,是esp32的81接口解析image自动请求包,发现手机和小程序发的太大,超过缓冲区无法解析,抛出403状态码警告。百度了,改个参数,依旧无效,尝试找底层代码,是加密的,没法改。。。
  • 最后尝试了解服务器的数据流主动传输,终于搞懂了image组件与服务器在说什么话,于是编写代码模拟服务器的功能,完美与各个平台的image组件交互对接上,就不必被缓冲区限制了。实现了手机、电脑网页控制和图片流显示后,开始搞微信小程序。
  • 微信小程序最近的基础库都把图片数组自动转base64显示等功能去掉了,尝试用网上代码进行base64转码显示,不行。用另一种画布显示的方式,函数也是被废弃了。好在有个以前工程是用了很早的基础库,在它上面改动,终于能使用了。
  • 编写了图片流接收显示,下边多个按钮控制、滑块控制led亮度,顶上ip修改等,像样了。
  • 最后再写了一个横向显示图片流的控制界面,这个为以后的局域网小车做准备的。
  • 该功能视频链接:https://b23.tv/9M3WEDg
  • 局域网图传-实拍:
  • 输入图片说明
  • 局域网图传-电脑网页:
  • 输入图片说明
  • 局域网图传-手机网页:
  • 输入图片说明
  • 局域网图传-小程序1:
  • 输入图片说明
  • 局域网图传-小程序2:
  • 输入图片说明

功能3;桌面时钟天气

  • 接下来还有很多功能在开发,敬请期待

开发环境

  • ino文件代码使用arduino进行开发
  • 有微信小程序开发的工程文件
  • 有html开发
  • 有onenet物联网平台对接
  • 有心知天气api对接
  • 有b站参数api获取
  • 有ble交互
  • 有服务器开发知识

注意

  1. 该项目涉及到多个平台,其中的账号、产品id、wifi等信息,需要根据使用而更改。
  2. 不得用于任何违法途径的使用

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/
C++
1
https://gitee.com/ventim/esp32cam-camera.git
git@gitee.com:ventim/esp32cam-camera.git
ventim
esp32cam-camera
22.7 esp32cam多功能摄像机
master

搜索帮助