野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2893|回复: 0

利用esp32搭建物联网图传

[复制链接]
发表于 2023-6-29 19:48:03 | 显示全部楼层 |阅读模式
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

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

Esp32上电执行boot.py代码

esp32Cam使用手册.zip

430.96 KB, 下载次数: 16

回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 02:24 , Processed in 0.038596 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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