ESP32-CAM入手新玩

1安装下载arduion

arduino IDE

2 在Arduino IDE安装ESP32 插件

1)在文件>首先项> 额外开发板过滤器中输入https://dl.espressif.com/dl/package_esp32_index.jsone 并点击“确认” 按键

2)在工具>开发板>开发板管理器中搜索ESP32并点击安装“ESP32 by Espressif Systems

3)等-----太长的时间了

3 安装USB转串口工具

烧写器FTDI与ESP32-CAM通过串口相连,并为ESP32-CAM供电,ESP32运行时很多信息是通过串口发送的,FTDI与电脑的接口是USB的,需要安装USB转串口驱动 CP210x USB to UART Bridge VCP Drivers

4测试CameraWebServer

1)在IDE中工具>开发板选 AI Thinker ESP32-CAM

2)在文件>示例>ESP32>Camera选择CamerWebServer

3)在文件CameraWebServer.ino中修改:

// 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 = "******";  //网络密码

4)连接开发板+烧写器,注意,开发板烧写时要使用跳线,运行时断开

5)打开串口工具,并设置波特率为115200

工具>串口监视器

6)下载烧写

项目>烧写(或直接点击烧写图标)

7)烧写成功,断开开发板跳线,按开发板复位键

8)观察串口监视器,获取开发板IP地址(如:192.168.0.3)

9)保证PC机与开发板在 同一个子网中,在PC浏览器地址栏中输入开发板地址,如192.168.0.3

10)点击”start stearm“

//----------------------------------------------------------------------------------

在我之间的分析中,我认为开发板应该有一个服务器,开发板摄像头将图片拍摄下来以后,不停地发往客服端,我一直很好奇客户端到底是如何实现地,客户端按照一定时间间隔发送消息让服务器发送视频图像吗?这次就可以好好看看了

在浏览器端,按下F12可以看到其客服端代码,可以看到如下大致框架

..........................//视频与图像就在下面显示
.......................//注册了一个回调函数 document.addEventListener('DOMContentLoaded', function (event){ var baseHost = document.location.origin //服务器地址 var streamUrl = baseHost + ':81' //服务器视频断开 .... //更新数据 function updateConfig (el) { .......... const query = `${baseHost}/control?var=${el.id}&val=${value}` fetch(query) .then(response => { console.log(`request to ${query} finished, status: ${response.status}`) }) } ... }

我将其改写为如下内容:




视频能够正常显示,说明其关键是img标签,通过wireshark也发现除了开始时浏览器和服务器进行交互外,后面都是服务器一直发送数据给浏览器。

我后面将继续分析ESP32-CAM服务器端的代码,看看它是如何实现的。它的核心代码只有四个:

CameraWebServer.ino、app_httpd.cpp、camer_index.h和cmaera_pins.h

其中CameraWebServer.ino最重要,是起点,其中主要包含两个函数

1.setup()---只执行一次的函数

2.loop()---循环执行的函数

在setup中其启动了camera和httpd,将ESP32当作webServer,遵循http协议,api采用的是restful格式,很有趣的一种架构

 

你可能感兴趣的:(嵌入式系统)