ESP32CAM基于Python环境开发实时摄影

2023-11-14

开发环境搭建:

安装Thonny代码编辑器和ESP32带有CAM的固件

链接:https://pan.baidu.com/s/1NBTMvZzzF6eJse2Wsr2ykQ?pwd=1o6y 
提取码:1o6y

安装Thonny,教程网上一大把,基本上一路下一步即可!

ESP32CAM固件烧录

先点击运行,配置解释器然后如图操作,选择端口与烧录文件

 然后重启Thonny即可,如果使用了下载板,把下载板卸了然后用USB转TTL连接串口!

便会与Thonny连接,然后进行程序运行:

ESP32CAM端程序:

注意更改:wifi名称与密码,还有绑定电脑网络IP!

import socket
import network
import camera
import time


# 连接wifi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to network...')
    wlan.connect('jie2222', '19760815g')#更改为自己家的wifi名称密码
    
    while not wlan.isconnected():
        pass
print('网络配置:', wlan.ifconfig())
 
 
# 摄像头初始化
try:
    camera.init(0, format=camera.JPEG)
except Exception as e:
    camera.deinit()
    camera.init(0, format=camera.JPEG)


# 其他设置:
# 上翻下翻
camera.flip(0)
#左/右
camera.mirror(1)

# 分辨率
camera.framesize(camera.FRAME_QVGA)
# 选项如下:
# FRAME_96X96 FRAME_QQVGA FRAME_QCIF FRAME_HQVGA FRAME_240X240
# FRAME_QVGA FRAME_CIF FRAME_HVGA FRAME_VGA FRAME_SVGA
# FRAME_XGA FRAME_HD FRAME_SXGA FRAME_UXGA FRAME_FHD
# FRAME_P_HD FRAME_P_3MP FRAME_QXGA FRAME_QHD FRAME_WQXGA
# FRAME_P_FHD FRAME_QSXGA
# 有关详细信息,请查看此链接:https://bit.ly/2YOzizz

# 特效
camera.speffect(camera.EFFECT_NONE)
#选项如下:
# 效果\无(默认)效果\负效果\ BW效果\红色效果\绿色效果\蓝色效果\复古效果
# EFFECT_NONE (default) EFFECT_NEG \EFFECT_BW\ EFFECT_RED\ EFFECT_GREEN\ EFFECT_BLUE\ EFFECT_RETRO

# 白平衡
camera.whitebalance(camera.WB_HOME)
#选项如下:
# WB_NONE (default) WB_SUNNY WB_CLOUDY WB_OFFICE WB_HOME

# 饱和
camera.saturation(0)
#-2,2(默认为0). -2灰度
# -2,2 (default 0). -2 grayscale 

# 亮度
camera.brightness(0)
#-2,2(默认为0). 2亮度
# -2,2 (default 0). 2 brightness

# 对比度
camera.contrast(0)
#-2,2(默认为0).2高对比度
#-2,2 (default 0). 2 highcontrast

# 质量
camera.quality(10)
#10-63数字越小质量越高

# socket UDP 的创建
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)

try:
    while True:
        buf = camera.capture()  # 获取图像数据
        s.sendto(buf, ("192.168.0.6", 9090))  # 向服务器发送图像数据,这里需要ipconig查看出电脑的ip,然后绑定在这
        time.sleep(0.1)
except:
    pass
finally:
    camera.deinit()

Pycharm客户端程序:

import socket
import cv2
import io
from PIL import Image
import numpy as np

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
s.bind(("0.0.0.0", 9090))
while True:
    data, IP = s.recvfrom(100000)
    bytes_stream = io.BytesIO(data)
    image = Image.open(bytes_stream)
    img = np.asarray(image)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)  # ESP32采集的是RGB格式,要转换为BGR(opencv的格式)
    cv2.imshow("ESP32 Capture Image", img)
    if cv2.waitKey(1) == ord("q"):
        break

注意:这里需要安装的库有

打开CMD

先进行换源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后安装:

pip install opencv-python

pip install numpy

然后就欧克了!

先启动硬件端程序,当硬件显示如图,再运行Python即可弹出摄像头画面了!

 这里要记住:绑定笔记本IP,更换自家wifi,先启动硬件再启动客户端!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32CAM基于Python环境开发实时摄影 的相关文章

随机推荐

  • C# 代码规范和质量检查工具 StyleCop.Analyzers

    简介 原来一直用 ReSharper 来进行代码质量检查 不过毕竟是收费的 所以想找个免费的可以推广给公司的同事也一起用 搜索了一下 找到了StyleCop 但是我在 VS 2015里安装 StyleCop 或者通过 Nuget 包安装 S
  • B1031 查验身份证 (15分)【C语言】

    B1031 查验身份证 15分 C语言 原题链接 用flag标记是否所有号码都正常 正常时为1 但凡有一个身份证号出错 就将flag置为0 题目描述 一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下
  • IIS的服务器搭建配置(详细)

    IIS的服务器搭建配置 1 windows服务器配置 1 1打开控制面板 1 2点击next 1 3增加web服务器 注意 这一块是重点 好家伙 我在这一块一开始不重视 浪费了我2个多小时在返工查 1 4点击next进入到Features栏
  • 无人机和乐高编程机器人哪个好

    无人机和乐高编程机器人哪个好 现在是人工智能的社会 越来越多的家长开始重视孩子的科技素质教育 于是很多的家长会给孩子选择一些能够与人工智能有关系的课程 而机器人编程就是其中一种 很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于无人
  • js截取字符串前几位或者截取字符串后几位

    经常会遇到后台反的时间是 2020 02 02 10 00 00 页面上需要只展示年月日或者只展示时分秒 那么最简单的方法就是返回过来的值直接截取一下即可 如何截取前几位 案例如下 var date 1996 10 22 22 55 33
  • TorchServe 详解:5 步将模型部署到生产环境

    内容导读 TorchServe 自 2020 年 4 月推出至今 经历了 2 年多的发展 变得愈发成熟和稳定 本文将对 TorchServe 进行全面介绍 本文首发自微信公众号 PyTorch开发者社区 更多应用 PyTorch 进行实际模
  • 深度学习------神经网络迁移学习

    迁移学习 import tensorflow as tf import IPython display as display import numpy as np import matplotlib pyplot as plt import
  • factoryBean.setTypeAliasesPackage()详解

    示例代码 Bean public SqlSessionFactoryBean sqlSessionFactory DataSource dataSource SqlSessionFactoryBean factoryBean new Sql
  • 阿里云短信发送接口实现

    使用阿里云短信接口发送验证码 1 引入依赖 springboot 工程引入web 引入 lombok 关键代码引入
  • 如何在iterm2中设置自动远程登录(附跳板机攻略)

    最近在mac中折腾ssh自动登录的问题 不自动登录每次输入命令太痛苦了 采取的方案是expect脚本的方式 其实选择这种方案而不是在远程服务器上保存key的方式主要是因为公司限制了在跳板机上保存私有数据的权限 如果想了解如何不输入密码登录远
  • 翁凯C语言作业7-1

    include
  • Linux常用命令_文件搜索命令

    文章目录 1 文件搜索命令find 2 其他搜索命令 2 1 文件搜索命令 locate 2 2 文件搜索命令 which 2 3 文件搜索命令 whereis 2 4 文件搜索命令 grep 1 文件搜索命令find 2 其他搜索命令 2
  • 数据集【NO.13】复杂场景下的鸟类检测数据集

    写在前面 数据集对应应用场景 不同的应用场景有不同的检测难点以及对应改进方法 本系列整理汇总领域内的数据集 方便大家下载数据集 若无法下载可关注后私信领取 关注免费领取整理好的数据集资料 今天分享一个非常好的非常小众的研究方向 有应用创新
  • 获取文件夹下所有的文件数量

    文件夹下所有的文件数量 param type url 文件链接 function shuLiang url 造一个方法 给一个参数 sl 0 造一个变量 让他默认值为0 arr glob url 把该路径下所有的文件存到一个数组里面 for
  • IDEA 中 MyBatis还可以这么玩!!!

    前言 1 搭建 MyBatis Generator 插件环境 a 添加插件依赖 pom xml b 配置文件 generatorConfig xml c 数据库配置文件 jdbc properties d 配置插件启动项 2 项目实战 a
  • C++网络编程Reactor模式介绍

    Reactor模式是一种事件驱动的设计模式 主要用于处理服务请求 这些请求在一开始并不知道何时会到达 它是一种非阻塞I O模式 可以处理大量并发连接 因此在网络编程中被广泛使用 Reactor模式的主要组件包括 Reactor 这是事件循环
  • 【TS第三讲】完善TS开发环境

    文章目录 写在前面 ts node nodemon nodemon文件类型 nodemon文件范围 写在最后 写在前面 探索TypeScript世界 驭Vue3 Ts潮流 开启前端之旅 欢迎来到前端技术的精彩世界 无论你是刚刚踏入编程大门的
  • JS加密方式

    常见加密方式 加密 前端 1 把加密的数据给后端 2 JS加密 3 携带正确的参数 进行加密 后端 存入数据库或者校验 为了反爬 前端请求就会进行携带指定的参数 参数的值会进行加密 后端再进行校验 1 MD5加密 概念 线型散列算法 签名算
  • ffmpeg结构体一览表

    AVFormatContext typedef struct AVFormatContext A class for logging and ref avoptions Set by avformat alloc context Expor
  • ESP32CAM基于Python环境开发实时摄影

    开发环境搭建 安装Thonny代码编辑器和ESP32带有CAM的固件 链接 https pan baidu com s 1NBTMvZzzF6eJse2Wsr2ykQ pwd 1o6y 提取码 1o6y 安装Thonny 教程网上一大把 基