esp32cam通过无线局域网进行图像传输

前言

5月份逛淘宝的时候心血来潮入手了一块esp32cam,想借机玩玩esp32系列,没曾想到5、6月份都被比赛和期末考的事情排满了,昨天刚考完试放假,所以今天赶紧掏出来鼓捣一下下。
在这里插入图片描述
购物链接就不发出来了,淘宝一搜一大堆,需要注意买带摄像头的,有的是不附带的。

材料准备

材料数量
安信可esp32cam主板1
usb转ttl1
杜邦线5
arduino ide1

环境配置

由于我的电脑重装系统,之前的esp32环境没了,只能重新安装一个。

1. 配置IDE

在Arduino IDE中,找到“文件” > “首选项”,将链接放置到“附加开发板管理网址”
(https://dl.espressif.com/dl/package_esp32_index.json)。
在"工具"->"开发板"->"开发板管理器"->搜索"ESP32";找到 ESP32 by 
Espressif Systems,点击安装。然后在选择开发板:AI Thinker ESP32-CAM

2. 接线方式

Esp32camUSB转TTL
3.3v3.3v
GNDGND
UORtx
UOTrx

在这里插入图片描述

3. 安装摄像头

将fpc插座黑色盖子往上掰,摄像头的金手指和插座接触后盖上fpc插座的黑色盖子。
4. 烧录代码
完整代码将在最后给出,需要烧录时注意几点:

  烧录时需要将io0口和GND短接。
 char* ssid = “WiFi名称”;const char* password = “WiFi密码”;
 编译完成后,出现connect提示后,需要按下板载复位按键才会继续上传。
 上传完成后拔出io0口和GND的短接线。
 打开串口监视器进行信息查询需要再摁一下板载复位按键。

5. 显示界面获取
在串口监视器界面显示的信息中复制生成的IP地址,前往谷歌浏览器粘贴打开,就可以看到显示界面了,分辨率不很清晰,但还是可以看清物体的。下面是效果图。
在这里插入图片描述
6. WiFi连接问题

如果WiFi连接不上,可以尝试使用手机热点进行连接,联通后关闭流量只作为一个局域网进行两者交互就行。
7. 完整代码

#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,
//            or another board which has PSRAM enabled
//

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

#include "camera_pins.h"

const char* ssid = " ";
const char* password = " ";

void startCameraServer();

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  //init with high specs to pre-allocate larger buffers
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  sensor_t * s = esp_camera_sensor_get();
  //initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);//flip it back
    s->set_brightness(s, 1);//up the blightness just a bit
    s->set_saturation(s, -2);//lower the saturation
  }
  //drop down frame size for higher initial frame rate
  s->set_framesize(s, FRAMESIZE_QVGA);

#if defined(CAMERA_MODEL_M5STACK_WIDE)
  s->set_vflip(s, 1);
  s->set_hmirror(s, 1);
#endif

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  startCameraServer();

  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10000);
}
  • 8
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
ESP32-CAM是一款经济实惠的WiFi摄像头模块,可以通过配置使其作为STA(连接其他热点)或AP(自己开热点)模式工作。在基础配置界面中,可以配置串口号、通信波特率、路由器名称和密码,以及摄像头型号等参数。默认情况下,ESP32-CAM是以STA模式工作的,如果想要接收其输出的图像,接收设备(如电脑或手机)需要与ESP32WiFi模块在同一局域网下。可以通过手机开热点的方式,让摄像头模块和接收设备都连接到手机热点来实现连接和传输图像的目的。 如果需要将ESP32-CAM切换为AP模式,可以在主函数中修改代码实现。具体的WiFi配置代码可以参考相关资料和教程。在AP模式下,可以搜索到WiFi模块开启的热点,但是如何接收图像的具体方法可能需要进一步测试和探索。你可以参考知乎上的相关文章来获取更多细节和指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ESP32-CAM在STA模式下通过WIFI向电脑/手机传输图像](https://blog.csdn.net/xiaopikadi/article/details/89609230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值