ESP32-CAM 网路与摄像头应用

这篇具有很好参考价值的文章主要介绍了ESP32-CAM 网路与摄像头应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ESP32-CAM 网路与摄像头应用

在进行 ESP32-CAM 网路应用时会用到 ESP32-CAM 的 Wi-Fi 与 摄像头(Camera)模块,而先前安装的是 ESP-32 官方所提供的固件,并不支援摄像头(Camera)模块,所以必须下载支援 ESP32-CAM 的固件,才能驱动摄像头(Camera)模块,可以在这里(提取码ccit)下载到所需要的固件,以下简单用 esptool 进行删除原固件并重新上传固件。

烧录 ESP32-CAM 固件

将 ESP32-CAM 硬件设定成下载模式,接著删除原有固件、烧录新固件。

# Mac
esptool.py --chip esp32 --port /dev/cu.usbserial-14110 erase_flash
esptool.py --chip esp32 --port /dev/cu.usbserial-14110 --baud 460800 write_flash -z 0x1000 micropython_camera_feeeb5ea3_esp32_idf4_4.bin
# Windows
esptool --chip esp32 --port COM3 erase_flash
esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 "E:\22-23-2\bin\micropython_camera_feeeb5ea3_esp32_idf4_4.bin"

进入调适模式后,进行远程调适 MicroPython。

# Mac
mpremote connect /dev/cu.usbserial-14110 repl
# Windows
mpremote connect COM3 repl

透过 help(‘modules’) 命令,可以列出内建的模块。因为是 ESP32-CAM ,所以会多出一个 camera 模块,用来存取摄像头之用。透过 uplatform 模块可以获得平台的开发信息 MicroPython-1.18.0-xtensa-IDFv4.4-beta1-286-gb64925c567-with-newlib3.3.0

help('modules')
import uplatform as platform
platform.platform()
  • 开发语言: MicroPython-1.18
  • 处理器: xtensa
  • 开发框架: IDFv4.4
  • 函式库: newlib3.0.0

ESP32-CAM 网路与摄像头应用
图 1. 下载 MicroPython for ESP32-CAM 烧录档固件到 ESP32-CAM

ESP32-CAM Web 服务器

以下会展示以 ESP32-CAM 做为 Web 服务器的示例,下图说明其运作架构,首先,ESP32-CAM 与个人电脑都要先连上同一个子网的存取点(Access Point, AP),这样 ESP32-CAM 与个人电脑才能相互沟通,接著 ESP32-CAM 将会担任 Web 服务器的角色,而个人电脑则是透过浏览器来观看网页结果。

ESP32-CAM 网路与摄像头应用
图 2. ESP32-CAM Web 服务器架构说明

接下来的代码比较复杂,以下练习都以 Thonny 来进行,首先,连上 Wi-Fi AP,因为 AP 的ssid与password每个人都不一样,所以以 ‘your-ssid’ 跟 ‘your-password’ 来表示,在实际运行时,记得更换为自己的 ssid 与 password。

原始代码

# enable station interface and connect to WiFi access point
import network

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to network...')
    wlan.connect('your-ssid', 'your-password')
    while not wlan.isconnected():
        pass
print('network config: ', wlan.ifconfig())

打开 Thonny 后,先注意视窗右下方的配置是否正确,1. 包含了解释器、开发版与串口,将以上代码复制、粘贴在 Thonny 的视窗,并 2. 按下绿色运行键,执行结果会出现在 3. 下方的 Shell 视窗中。

ESP32-CAM 网路与摄像头应用
图 3. Thonny 开发画面

如果出现 network config: (XXX) 表示连线成功,接著在本机取得 microdot.py 原始档(百度云盘,提取码ccit),透过 Thonny 的画面打开,如下图所示。

ESP32-CAM 网路与摄像头应用
图 4. Thonny 打开文件

ESP32-CAM 网路与摄像头应用
图 5. Thonny 打开本地的 microdot.py 文件

接著将 microdot.py 存到 ESP32-CAM 上,在前面章节有介绍到可以利用远端存取(mpremote)方式进行,但现在开启 Thonny 后会占用端口,导致无法运行,所以直接在 Thonny 中运行。单击上方工作列的 档案,选择 另存为 ,如下图所示。

ESP32-CAM 网路与摄像头应用
图 6. Thonny 将本地文另存为其他文件

接著会弹出一个画面,选择存到哪一个设备,选择 MicroPython设备

ESP32-CAM 网路与摄像头应用
图 7. Thonny 选择存到 MicroPython设备

在 MicroPython设备 中单击右键,选择新建文件夹…,输入 lib

ESP32-CAM 网路与摄像头应用
图 8. Thonny 新建文件夹

进入 lib 文件夹,文件名输入 microdot.py后,单击 好的
ESP32-CAM 网路与摄像头应用
图 9. 另存为 microdot.py

会出现上传画面。
ESP32-CAM 网路与摄像头应用
图 10. 正在保存 microdot.py 到 MicroPython设备

Shell 中输入以下源代码运行,如果运行成功会出现 Starting … 等信息,如下图所示。

原始代码

from microdot import Microdot
app = Microdot()

@app.route('/')
def index(request):
    return 'Hello, world Microdot!'

app.run(debug=True)

ESP32-CAM 网路与摄像头应用
图 11. 导入 microdot 包,架构 Web 服务器

输出结果为:

Starting sync server on 0.0.0.0:5000...

重要:将本机连上与 ESP32-CAM 相同的子网后,打开浏览器,并输入 192.168.254.160:5000,如果看到输出,表示ESP32-CAM 所架构的 Web 服务器已经成功建置。

ESP32-CAM 网路与摄像头应用
图 12. 使用本机浏览器观看ESP32-CAM 的 Web 服务器

上电执行 Web 服务器

在 MicroPyhon 中,main.py 是事先定义好的文件,以上的范例我们将 Wi-Fi 连线与 Web 服务器的部份则写在 main.py 中

main.py

import network
from microdot import Microdot

# 填上 Wi-Fi 连线信息
SSID = "<PLACE_YOUR_SSID_HERE>"
SSI_PASSWORD = "<PLACE_YOUR_WIFI_PASWORD_HERE>"

def connect_WiFi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect(SSID, SSI_PASSWORD)
        while not wlan.isconnected():
            pass
    print('network config: ', wlan.ifconfig())

# 连线 Wi-Fi
connect_WiFi()

app = Microdot()
@app.route('/')
def index(request):
    return 'Hello, world Microdot!'
# 启动 Web 服务器
app.run(debug=True)

ESP32-CAM 网路与摄像头应用
图 13. 确认所需文件都已经保存在 ESP32-CAM

将 ESP32-CAM 直接透过充电宝供电,并打开电脑的浏览器观看结果。

ESP32-CAM 网路与摄像头应用
图 14. 充电宝上电执行 Web 服务器

需先记录 ESP32-CAM 所占用的 IP 位址,输入电脑的浏览器就可以观看结果
ESP32-CAM 网路与摄像头应用
图 15. 电脑的浏览器观看结果文章来源地址https://www.toymoban.com/news/detail-449812.html

参考资料

  • ESP32 Technical Reference Manual,https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
  • Espressif IoT Development Framework, https://github.com/espressif/esp-idf
  • ESP32-CAM firmware, https://github.com/lemariva/micropython-camera-driver/blob/master/firmware/micropython_camera_feeeb5ea3_esp32_idf4_4.bin
  • MicroPython: Taking photos with an ESP32-CAM, https://lemariva.com/blog/2019/09/micropython-how-about-taking-photo-esp32
  • microdot, https://github.com/miguelgrinberg/microdot
  • A Simple Microdot Web Server, https://microdot.readthedocs.io/en/latest/
  • 关于MicroPython mpremote工具 的一些用例, https://www.cnblogs.com/Wind-stormger/p/16659124.html
  • micropython-camera-driver, https://github.com/lemariva/micropython-camera-driver
  • Refresh image with a new one at the same url, https://stackoverflow.com/questions/1077041/refresh-image-with-a-new-one-at-the-same-url

到了这里,关于ESP32-CAM 网路与摄像头应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ESP32-CAM网络摄像头系列-01-基于RTSP协议的局域网视频推流/拉流的简单实现

            由于项目需要,最近开始开坑关于ESP32-CAM系列的RTSP网络摄像头系列,该文章为该系列的第一篇文章。用于记录项目开发过程。         使用ESP32-CAM获取图像数据,并通过RTSP协议将获取到的视频流传输到上位机进行显示。         使用ESP32-CAM进行视频推流,

    2024年02月11日
    浏览(60)
  • ubuntu利用usb_cam打开摄像头

    想要标定多个相机,首先得把相机打开吧,usb_cam是针对usb摄像头的ros驱动包,简单来说就是得有这个功能包,才能在ros中把摄像头打开。 首先打开终端,输入: 这里melodic应该根据自己Ubuntu系统进行灵活变换,例如我使用的Ubuntu18.04,那么我对应的就是melodic版本。 驱动安装

    2024年02月03日
    浏览(49)
  • 【完全开源】小安派-Cam-D200(AiPi-Cam-D200)200W摄像头开发板

    AiPi-Cam-D200 是安信可科技基于AiPi-Cam-D开发板 开发的一款兼容200W 摄像头的开发板,相当于给AiPi-Cam-D 做了升级迭代。 摄像头型号:GC2145 摄像头尺寸:13*13*21.57 mm(长 宽 高,不含排线) 像素大小:1600*1200 视角:140° 焦距:2米 功耗:180mA(200uA) 接口:DVP(24Pin间距0.5mm) IO名称 功能

    2024年02月19日
    浏览(45)
  • stm32 OV7670摄像头模块的介绍以及应用(SCCB的使用)

    今天学习摄像头模块,使用该模块进行拍摄,照相等功能进行对stm32 控制板的结合,了解他的原理以及应用。 主角: ov7670摄像头模块。(大概了解一下产品背景)  OV7670 是 OV( OmniVision)公司生产的一颗 1/6 寸的 CMOS VGA 图像传 感器。该传感器体积小、工作电压低,提供单片

    2023年04月09日
    浏览(54)
  • 学习笔记:利用usb_cam进行单目标定与畸变矫正(笔记本摄像头 or usb相机)

    一个刚入门视觉的学习笔记,怕哪天系统崩了找不回笔记了,故上传到博客方便保留。 1、准备工作(安装usb_cam) 1)创建文件夹 2)下载编译安装usb_cam包(该包能将摄像头的图像通过sensor_msgs::Image消息发布)    2、可以通过ls/dev/video*来查看电脑的设备号来选择外接或笔记本

    2024年02月07日
    浏览(44)
  • ROS高效进阶第四章 -- 机器视觉处理之图像格式,usb_cam,摄像头标定,opencv和cv_bridge引入

    从本文开始,我们用四篇文章学习ROS机器视觉处理,本文先学习一些外围的知识,为后面的人脸识别,目标跟踪和yolov5目标检测做准备。 我的笔记本是Thinkpad T14 i7 + Nvidia MX450,系统是ubuntu20.04,ros是noetic。由于很多驱动与硬件强相关,请读者注意这点。 本文的参考资料有:

    2024年02月04日
    浏览(45)
  • Linux摄像头(v4l2应用)——获取摄像头一帧图像

    一.V4L2简介 V4L2(Video for Linux 2):Linux内核中视频设备中的驱动框架,对于应用层它提供了一系列的API接口,同时对于硬件层,它适配大部分的视频设备,因此通过调用V4L2的接口函数可以适配大部分的视频设备。 二、操作流程 1.打开设备 当把摄像头插入到电脑后,执行ls /

    2024年02月20日
    浏览(53)
  • K210学习笔记(六):摄像头的应用

    在学习了利用lcd显示固定文件的照片之后。我们知道的是手上的这块K210开发板还集成了一枚摄像头模块,因此我们就可以利用摄像头模块捕捉照片并且实时的显示在板载lcd显示屏和IDE上,我们知道视频实际上由一帧一帧的照片组成,所以我们只需要让摄像头不断地拍照片,然

    2024年02月12日
    浏览(85)
  • 学习笔记之STM32的ov7670摄像头实验

    目录 1. OV7670摄像头模块 1.1 OV7670 传感器内置功能模块 1.2 OV7670模块的引脚  1.3 OV7670的时序图 1.4 OV7670的分辨率及其计算 2. FIFO模块 2.1 FIFO的简介 2.2 FIFO的信号 2.3 常用的FIFO数据存储器 3. BMP编码   3.1 BMP文件的组成 3.2 BMP编码步骤 4. 摄像头实验 4.1 工作流程 4.2 主要函数 4.3

    2024年02月04日
    浏览(45)
  • stm32(SCCB)+ov7670摄像头输出图像程序

    一、简介:   OV7670一般模块指低成本数字输出CMOS摄像头,其摄像头包含30w像素的CMOS图像感光芯片,3.6mm焦距的镜头和镜头座,板载CMOS芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。 二、管脚定义 3V3---

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包