Skip to content

使用Arduino IDE开发ESP32摄像头

Arduino IDE是创客常用的开发平台。通过安装扩展包,Arduino IDE可以支持不同架构的开发板,包括流行的ESP系列开发板。新版本的Arduino IDE 2.0基于与经典版IDE不同的底层平台,拥有更多现代IDE特性,例如更完善的语法高亮,自动补全、代码导航和在线调试等功能。

Arduino IDE 2.0扩展包的安装方式与经典版IDE类似,用户可以平滑切换到新版环境。

安装Arduino IDE 2.0

前往 Arduino官网,下载适合操作系统的版本。

按常规方式执行安装即可。如有疑问,可以查阅官网的 Arduino安装指南

安装ESP32扩展包

  1. 运行Arduino IDE 2.0,选择菜单 File > Preferences…

  2. 将以下URL地址复制并粘贴到 Additional boards manager URLs(多个URL以逗号分隔)。

    https://espressif.github.io/arduino-esp32/package_esp32_index.json

    Arduino ESP32扩展包由乐鑫(Espressif)官方维护:

    https://espressif.github.io/arduino-esp32/

  3. 点击左侧边栏的开发板管理图标,或选择菜单 Tools > Board > Boards Manager…,搜索“esp32”,找到esp32 by Espressif Systems,点击 INSTALL 安装。

    安装完成后,在菜单 Tools > Board 中可以看到 esp32 选项。

编译并上传摄像头样例

  1. 将开发板连接到电脑的USB接口。若开发板未集成USB串口,则需要通过一个USB串口适配器连接。

  2. 点击顶部工具栏的开发板下拉列表,选择 Select other board and port… 打开开发板选择对话框。

  3. 搜索“esp32”,找到 ESP32 Wrover Module 并选中,同时指定连接到开发板的串口。

    • ESP32 Wrover Module 是esp32开发板通用选项,对具体的开发板可以选择对应型号(如果在列表中)。
    • 连接开发板后,系统会自动识别串口并显示在 PORTS 列表中。若列表中未出现对应的串口,请尝试手动安装USB串口相应的驱动程序。
  4. 选择菜单 File > Examples > ESP32 > Camera > CameraWebServer 打开摄像头样例项目。

  5. 切换到项目CameraWebServer.ino文件。在代码的Select camera mode部分,根据开发板型号选择对应定义项(取消注释),以指定在camera_pins.h文件中预定义的摄像头引脚配置。

    也可以自行定义摄像头引脚,以 Camera-1 开发板为例,自定义引脚如下:

    CameraWebServer.ino
    cpp
    //#include "camera_pins.h"
    
    // Node-Matrix Camera-1 pin assignment
    #define PWDN_GPIO_NUM  -1
    #define RESET_GPIO_NUM -1
    #define XCLK_GPIO_NUM  0
    #define SIOD_GPIO_NUM  19
    #define SIOC_GPIO_NUM  18
    #define Y9_GPIO_NUM    38
    #define Y8_GPIO_NUM    37
    #define Y7_GPIO_NUM    36
    #define Y6_GPIO_NUM    25
    #define Y5_GPIO_NUM    34
    #define Y4_GPIO_NUM    13
    #define Y3_GPIO_NUM    12
    #define Y2_GPIO_NUM    35
    #define VSYNC_GPIO_NUM 5
    #define HREF_GPIO_NUM  39
    #define PCLK_GPIO_NUM  26
    • 指定开发板型号时应只有一项定义被选中,其余均为注释状态。
    • 自定义引脚时,可以注释对camera_pins.h文件的引用。
  6. CameraWebServer.ino文件的Enter you WiFi credentials部分,修改WiFi ssidpassword为实际网络配置。

    CameraWebServer.ino
    cpp
    // ===========================
    // Enter your WiFi credentials
    // ===========================
    const char* ssid = "my_wifi_ssid";
    const char* password = "my_wifi_password";
  7. 根据开发板的硬件配置在 Tools 菜单中设定相应参数。以Camera-1开发板为例,参数如下:

    参数说明请参考Espressif官方文档:

    https://docs.espressif.com/projects/arduino-esp32/en/latest/guides/tools_menu.html

  8. 保存项目。点击工具栏 上传按钮,开始编译代码并上传到开发板。根据电脑性能的差异,这个过程可能需要数秒至数十秒。

    • 对支持自动上传的开发板(例如Node-Matrix Camera-1),这个过程不需要其他操作,等待完成即可。
    • 若开发板不支持自动上传,则需要手动切换到上传模式(bootloader mode),具体操作如下:
      1. 使开发板的GPIO_0引脚保持低电平(按下板上标记为BOOT的按钮,或将GPIO_0引脚连接到GND)。
      2. 在保持GPIO_0为低电平状态下,按下板上标记为RST的按钮,或让开发板重新上电复位。
      3. 此时开发板即进入上传模式,再点击IDE工具栏的上传按钮即可。
  9. 点击工具栏右侧的串口监视器按钮,打开串口监视器。复位开发板,串口监视器将显示开发板输出的启动信息。

    若启动信息的末尾持续输出......,说明网络连接失败,请检查 第6步 的WiFi配置是否正确。

  10. 在启动信息的最后一行可以找到HTTP服务的URL地址,复制该URL并在浏览器中打开,即可查看摄像头Web页面。

下一步

摄像头样例的HTTP服务端代码位于app_httpd.cpp文件中,代码相对复杂。我们在GitHub上提供了 一个简化样例

以上就是使用Arduino IDE 2.0开发ESP32摄像头的快速指南。更多ESP32样例可以在扩展包的样例库(File > Examples > ESP32)中找到。