ESP32CAM物联网教学01

news2025/1/11 14:31:33

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摄像头开发板程序的一个大坑,也可以为我们排除错误提供一些可能性的判断了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1886795.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监控平台zabbix介绍与部署

目录 1.为什么要做监控 2.zabbix是什么? 3.zabbix 监控原理 4.Zabbix 6.0 新特性 5.Zabbix 6.0 功能组件 6.部署zabbix 6.1 部署 Nginx PHP 环境并测试 6.2 部署数据库 6.3 向数据库导入 zabbix 数据 6.4 编译安装 zabbix Server 服务端 6.5 修改 zabbix…

真的假不了,假的真不了

大家好,我是瑶琴呀,拥有一头黑长直秀发的女程序员。 最近,17岁的中专生姜萍参加阿里巴巴 2024 年的全球数学竞赛,取得了 12 名的好成绩,一时间在网上沸腾不止。 从最开始的“数学天才”,到被质疑&#xff…

QT5 static_cast实现显示类型转换

QT5 static_cast实现显示类型转换,解决信号重载情况

[22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪

Opencv_CUDA应用之 使用背景相减法进行对象跟踪 背景相减法是在一系列视频帧中将前景对象从背景中分离出来的过程,它广泛应用于对象检测和跟踪应用中去除背景 背景相减法分四步进行:图像预处理 -> 背景建模 -> 检测前景 -> 数据验证 预处理去除…

Sentinel实现区分来源

要区分来源就要写代码实现RequestOriginParser接口 ,注意是要实现com.alibaba.csp.sentinel.adapter.servlet.callback.RequestOriginParser 接口,别搞错接口了。 MyRequestOriginParser.java package com.codex.terry.sentinel.origin;import com.ali…

JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)

1.需要处理成的数据格式 [{ mpptNumber: 1, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 2,}] }, { mpptNumber: 2, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvE…

力扣hot100-普通数组

文章目录 题目:最大子数组和方法1 动态规划方法2 题目:合并区间题解 题目:最大子数组和 原题链接:最大子数组和 方法1 动态规划 public class T53 {//动态规划public static int maxSubArray(int[] nums) {if (nums.length 0…

有哪些Python书籍是程序员强烈推荐?

有一本升级版的经典Python项目编程书一定要推荐一下。 Python极客项目编程(第2版) 第一版累计销售19万册,豆瓣评分8.4。每个项目都按照【讲解原理-分析需求-代码精讲-知识小结-扩展练习-完整代码】的方式进行讲解,并提供可下载运…

[21] Opencv_CUDA应用之使用Haar级联的对象检测

Opencv_CUDA应用之使用Haar级联的对象检测 Haar级联使用矩形特征来检测对象,它使用不同大小的矩形来计算不同的线和边缘特征。矩形包含一些黑色和白色区域,如下图所示,它们在图像的不同位置居中 类Haar特征检测算法的思想是计算矩形内白色像素和黑色像素之间的差异这个方法的…

c++将一个复杂的结构体_保存成二进制文件并读取

在 C 中&#xff0c;可以将复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它。为了实现这一点&#xff0c;你可以使用文件流库 <fstream>。以下是一个示例&#xff0c;展示如何将一个复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它…

无序中的秩序:为何看似混乱的工作方式可能更高效;刚刚!研究表明:混乱可能更有利于创造力;注意!你的过度整理可能正在浪费时间

当面对循规蹈矩&#xff0c;还是自由独立的选择题时&#xff0c;你应当选择自由独立。因为这样&#xff0c;你不但更省力&#xff0c;更省心&#xff0c;而且效率更高&#xff0c;生活更好。 在日常生活和工作中,经常会遇到两种截然不同的人: • 一种是事无巨细,将一切都安排得…

【Python】成功解决TypeError: ‘float‘ object cannot be interpreted as an integer

【Python】成功解决TypeError: ‘float’ object cannot be interpreted as an integer 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主…

WSO2 products 文件上传漏洞(CVE-2022-29464)

前言 CVE-2022-29464 是一个影响多个 WSO2 产品的严重远程代码执行&#xff08;RCE&#xff09;漏洞。这些产品包括 WSO2 API Manager、WSO2 Identity Server 和 WSO2 Enterprise Integrator 等。由于用户输入验证不当&#xff0c;该漏洞允许未经身份验证的攻击者在服务器上上…

Snappy使用

Snappy使用 Snappy是谷歌开源的压缩和解压的开发包&#xff0c;目标在于实现高速的压缩而不是最大的压缩 项目地址&#xff1a;GitHub - google/snappy&#xff1a;快速压缩器/解压缩器 Cmake版本升级 该项目需要比较新的cmake&#xff0c;CMake 3.16.3 or higher is requi…

【免费数字孪生平台】医院数据可视化的新选择

随着大数据、云计算、人工智能等技术的深度融合&#xff0c;医院数据智能化升级已成为推动医疗服务质量飞跃的关键力量。 医院作为守护生命健康的前沿阵地&#xff0c;每天处理着海量的医疗数据。从患者病历、检查结果到医疗设备运行状态、医疗资源分配&#xff0c;每一项数据都…

中画幅巡检相机-SHARE 100M A10

【毫厘之间&#xff0c;洞见非凡】 ——SHARE 100M A10中画幅测量相机&#xff0c;巡检行业的新选择 在巡检行业&#xff0c;精准度是关键&#xff0c;深圳赛尔智控科技有限公司最新推出的SHARE 100M A10中画幅测量相机&#xff0c;基于先进的IMX461影像传感器&#xff0c;拥有…

【Linux杂货铺】Linux学习之路:期末总结篇1

第一章 什么是Linux? Linux 是 UNIX 操作系统的一个克隆&#xff1b;它由林纳斯 本纳第克特 托瓦兹从零开始编写&#xff0c;并在网络上众多松散的黑客团队的帮助下得以发展和完善&#xff1b;它遵从可移植操作系统接口&#xff08;POSIX&#xff09;标准和单一 UNIX 规范…

【都市传说】乖乖之神如何保佑台湾AI行业

引言 都市传说中&#xff0c;许多故事都充满神秘和趣味&#xff0c;但很少有故事能够与现代高科技行业相联系。在台湾&#xff0c;关于一款名为“乖乖”的零食如何成为IT和半导体行业的保护神的传说&#xff0c;既神秘又引人入胜。这篇文章将详细探讨乖乖之神如何在台湾AI行业…

第三篇——始计篇:诡计,就是引诱对方犯错误

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 这一篇讲解了诡计&#xff0c;对于诡计的解释和定位&#xff1b;我们更应…

Linux_fileio学习

参考韦东山老师教程&#xff1a;https://www.bilibili.com/video/BV1kk4y117Tu?p12 目录 1. 文件IO函数分类2. 函数原型2.1 系统调用接口2.2 标准IO接口 3. fileio内部机制3.1 系统调用接口内部流程3.1 dup函数使用3.2 dup2函数使用 4. open file4.1 open实例4.2 open函数分析…