ESP32-CAM 网路与摄像头应用

news/2024/11/29 9:41:45/

ESP32-CAM 网路与摄像头应用

目录

    • ESP32-CAM 网路与摄像头应用
      • 烧录 ESP32-CAM 固件
      • ESP32-CAM Web 服务器
      • 上电执行 Web 服务器
      • 参考资料

在进行 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

在这里插入图片描述
图 1. 下载 MicroPython for ESP32-CAM 烧录档固件到 ESP32-CAM

ESP32-CAM Web 服务器

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

在这里插入图片描述
图 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 networkwlan = 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 视窗中。

在这里插入图片描述
图 3. Thonny 开发画面

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

在这里插入图片描述
图 4. Thonny 打开文件

在这里插入图片描述
图 5. Thonny 打开本地的 microdot.py 文件

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

在这里插入图片描述
图 6. Thonny 将本地文另存为其他文件

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

在这里插入图片描述
图 7. Thonny 选择存到 MicroPython设备

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

在这里插入图片描述
图 8. Thonny 新建文件夹

进入 lib 文件夹,文件名输入 microdot.py后,单击 好的
在这里插入图片描述
图 9. 另存为 microdot.py

会出现上传画面。
在这里插入图片描述
图 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)

在这里插入图片描述
图 11. 导入 microdot 包,架构 Web 服务器

输出结果为:

Starting sync server on 0.0.0.0:5000...

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

在这里插入图片描述
图 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():passprint('network config: ', wlan.ifconfig())# 连线 Wi-Fi
connect_WiFi()app = Microdot()
@app.route('/')
def index(request):return 'Hello, world Microdot!'
# 启动 Web 服务器
app.run(debug=True)

在这里插入图片描述
图 13. 确认所需文件都已经保存在 ESP32-CAM

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

在这里插入图片描述
图 14. 充电宝上电执行 Web 服务器

需先记录 ESP32-CAM 所占用的 IP 位址,输入电脑的浏览器就可以观看结果
在这里插入图片描述
图 15. 电脑的浏览器观看结果

参考资料

  • 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

http://www.ppmy.cn/news/872909.html

相关文章

好用的在线调试摄像头的网址

恩&#xff0c;借用北森测评的网站了。 https://assistant.ceping.com/qrcode?type1 同时还能顺带着测测网速&#xff0c;岂不美哉

基于国标GB28181协议EasyGBS平台与大华摄像头的周界入侵解决方案

随着互联网等技术的发展&#xff0c;以及大众不断提高安防意识&#xff0c;安防行业也迎来快速发展&#xff0c;周界入侵类的场景应用解决方案也较为普遍。在今天的文章中&#xff0c;我们和大家分享基于EasyGBS平台与大华摄像头的周界入侵解决方案。 EasyGBS平台支持国标协议的…

【体验】ESP32-CAM可能是最便宜的“监控”方案,ESP32-CAM程序下载调试

生活新装备 NEW EQUIPMENT FOR LIFE 抱着试一试的心里&#xff0c;买了ESP32-CAM&#xff0c;&#xff08;你别说,还真对得起…我和RMB&#xff0c;看下边&#xff0c;看下边&#xff09;&#xff1a; 当年玩STM32F7discover上的摄像头&#xff0c;不光需要买摄像头&#xff0c…

Vandate Virtual Camera(虚拟摄像头) 1.51 下载 - 华军软件园 - 系统程序 - 系统辅助

导读&#xff1a; Vandate Virtual Camera(Vandate虚拟摄像头)(Ver1.51) 1.51新增: 改进了影片缩放过程中色彩失真等细节问题(强力支持E话通等) 1.2新增: 支持更多的网页视频聊天站点(如碧聊等)&#xff08;注意&#xff1a;一定要先启动程序&#xff1a;vcplay.exe&#xf…

Camlytics:智能摄像头监控软件

将任何相机变成智能分析工具 Camlytics 结合了视频监控、观众情报和空间分析解决方案。 连接您现有的专用网络摄像头系统&#xff0c;并获得有关人数统计、 车辆统计、位置占用、队列、热图等的即时实时统计数据 。 市场上最具成本效益的计数分析软件。 连接任何视频源 Camlyti…

AUSBC3.0, 震撼来袭!(UVC Camera,支持开启多路摄像头)

Android灵活实用的Android平台UVC摄像头引擎&#xff0c;无需任何系统权限即可轻松打开您的uvc摄像头&#xff08;支持多路摄像头&#xff09;。 您唯一应该做的就是确认您的 Android 设备必须支持 OTG 功能。 欢迎使用AUSBC3.0&#xff0c;欢迎star & fork & issues&a…

mac虚拟摄像头插件_【OBS虚拟摄像头插件下载】OBS VirtualCam(OBS虚拟摄像头插件) v2.0.5 官方最新版-开心电玩...

软件介绍 OBS虚拟摄像头插件是一款由OBS官方推出的摄像头插件&#xff0c;它的主要功能是帮助用户创建一个虚拟的摄像头&#xff0c;用户在这里添加各种照片和视频&#xff0c;非常适合用于直播或视频对话场景。OBS虚拟摄像头插件使用起来很方便&#xff0c;而且功能也是完全免…

obs摄像头模糊_【OBS虚拟摄像头插件】OBS虚拟摄像头下载OBS VirtualCam v2020 官方版-趣致软件园...

OBS虚拟摄像头插件是一款非常优秀的虚拟摄像头软件,OBS虚拟摄像头插件操作简单,功能强大全面,主要功能是帮助用户创建一个虚拟的摄像头,用户在这里添加各种照片和视频,非常适合用于直播或视频对话场景,可以很好的防止用户信息泄露的问题。 OBS虚拟摄像头插件使用起来很方…