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

开发环境搭建:

安装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,先启动硬件再启动客户端!

物联沃分享整理
物联沃-IOTWORD物联网 » 基于Python环境开发实时摄影应用的ESP32CAM

发表评论