OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2424|回复: 4

使用esp32搭建无线图传(二)

[复制链接]

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
发表于 2023-6-29 19:50:31 | 显示全部楼层 |阅读模式
1.1、首先通过thonny软件下载mircopython的固件
thonny软件下载链接:https://thonny.org/
micropython固件下载链接:https://micropython.org/download/esp32/
esp32的驱动下载链接:
https://doc.itprojects.cn/0006.zhishi.esp32/01.download/esp32usbDriver.zip
具体操作流程如下
1.1.1、首先找到 运行-->配置解释器
1.1.2、选定Micropython(ESP32)和端口
1.1.3、选择micropython的固件,进行安装,此时esp32cam的IO0端口短接到GND,esp32-cam此时进入下载模式
1.4、将esp32cam的IO0和GND的短接线去掉,点击thonny软件视图-->文件,然后点击Stop,出现如下界面说明固件安装成功
二、无线图传软件开发
首先将IO0端口与地线断开(不连接),使得esp32进入调试模式
2.2、Esp32部分的代码
import camera
import network
import socket
import time

#连接wifi
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connected tonetwork......')
    wlan.connect('WIFI名字','WIFI密码')

    while not wlan.isconnected():
       pass
print("网络配置:",wlan.ifconfig())

#摄像头初始化
try:
    camera.init(0,format=camera.JPEG)
    print("初始化成功")
except Exception as e:
    print("初始化失败")
    camera.deinit()
    camera.init(0,format=camera.JPEG)


#图像设置
# 上翻下翻
camera.flip(1)

#左/右
camera.mirror(1)
#分辨率
# 选项如下:
# FRAME_96X96FRAME_QQVGA FRAME_QCIF FRAME_HQVGA FRAME_240X240
#FRAME_QVGA480*640 FRAME_CIF FRAME_HVGA 320*480 FRAME_VGA 240*320 FRAME_SVGA
# FRAME_XGAFRAME_HD FRAME_SXGA FRAME_UXGA FRAME_FHD
# FRAME_P_HDFRAME_P_3MP FRAME_QXGA FRAME_QHD FRAME_WQXGA
# FRAME_P_FHDFRAME_QSXGA

camera.framesize(camera.FRAME_HVGA)
#特效
#选项如下:
# 效果\无(默认)效果\负效果\ BW效果\红色效果\绿色效果\蓝色效果\复古效果
# EFFECT_NONE(default) EFFECT_NEG \EFFECT_BW\ EFFECT_RED\ EFFECT_GREEN\ EFFECT_BLUE\EFFECT_RETR
camera.speffect(camera.EFFECT_NONE)
#白平衡,选项如下
# WB_NONE(default) WB_SUNNY WB_CLOUDY WB_OFFICE WB_HOME
camera.whitebalance(camera.WB_NONE)

#饱和度 -2,2(默认为0)
camera.saturation(0)
#亮度   -2,2(默认为0)
camera.brightness(0)
#对比度 -2,2(默认为0)
camera.contrast(0)
#质量 10-63 数字越小,质量越好
camera.quality(10)

#socket UDP的创建
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)
#s.bind((wlan.ifconfig()[0],9090)) #连接Wifi后将获取的IP地址进行绑定
#data,IP=s.recvfrom(1024)#接收客服端的消息和IP地址
try:
    while True:
       buf=camera.capture()#获取图像数据
       s.sendto(buf,("IP ",9090)) #向服务器发送数据,这是的地址是电脑的IP地址
       time.sleep(0.1)
except:
    pass
finally:
    camera.deinit()

s.sendto(buf,("IP ",9090))该处IP地址的获取

2.3、PC端的代码
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)) 绑定你电脑上的所有IP地址,如果电脑有多个IP地址,数据都接收
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)
    cv2.imshow("esp_video",img)
    if cv2.waitKey(1)==ord("q"):
       break

点击运行时,会出现如下报错
当点击运行的时候,会出现OSErrror:Camera Init Failed;这是需要按一下esp32_cam的复位。
2.4、代码固化

Esp32上电执行boot.py代码

esp32Cam使用手册.zip

430.96 KB, 下载次数: 7

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2024-1-14 23:13:26 | 显示全部楼层
有的时候,esp32-cam即使刷新了固件,依然会出现“Device is busy or does not respond”,这个时候,可以将IDO与GND拆开,然后,重新插入USB口。此外,厂家配套的串口下载芯片可能不是CH340,这时候可以使用手头的USB转TTL进行程序下载
回复 支持 反对

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2024-1-14 23:15:36 | 显示全部楼层
当固件刷新后,仍然无法下载的时候,参考链接:https://blog.csdn.net/original14/article/details/132111281
回复 支持 反对

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2024-1-14 23:49:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2024-1-15 10:48:08 | 显示全部楼层
有的时候,手机热点怎么都无法链接成功,这个时候考虑,将手机的热点频段,切换为2.4G就可以了。esp32_cam配置网络的连接:https://blog.csdn.net/weixin_45020839/article/details/106385604
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表