概述
作为一名前端开发工程师,我想通过这篇文章分享如何将前端技能与ESP32系列嵌入式硬件结合,从0开始为你打开嵌入式开发的大门
这不仅涉及编程,还包括硬件的配置和选择。拥有一些C语言基础和基本硬件知识会有所帮助,但即使你是硬件新手也无需担心——如果我能实现,作为前端开发者的你同样能够做到。
文章有些许冗余,大家可以通过目录跳转到自己感兴趣的地方。这里先提前祝大家中秋节快乐吧!
话不多说,我们开始本篇的内容,文章分为两个部分:
基础篇:我们将介绍ESP32微控制器开发板的基础知识,包括:
- 开发板硬件概述
- 编程语言
- 本文使用的硬件介绍
实战篇:动手实践,使用ESP32-S3 Cam搭建Web服务器,实现实时视频流捕获并展示,包括:
- 开发工具推荐
- 硬件连接
- Arduino IDE示例:启动WebServer并捕获实时视频内容
希望这篇文章能为更多前端开发者打开嵌入式开发的大门,探索软硬结合的乐趣。
后续文章中我会展示ESP32系列如何烧录micropython。
基础篇
开发板硬件概述
ESP8266
ESP8266 是一款广泛应用于物联网(IoT)领域的 Wi-Fi 模块,内置了低功耗的 32-bit RISC 处理器。它支持 2.4 GHz 的 Wi-Fi 连接,并提供了较少的 GPIO 引脚(通常 11 个),适合简单的联网应用和基础 IoT 项目开发。ESP8266 具有低成本、低功耗的特点,因此非常适合需要长时间运行、低电量消耗的应用场景。
ESP32
ESP32 是 ESP8266 的升级版,具有更强的处理能力和更多的功能,专为复杂的 IoT 项目、边缘计算和嵌入式应用设计。ESP32 支持双核 32-bit 处理器,并集成了 Wi-Fi 和蓝牙(包括低功耗蓝牙 BLE),具有更丰富的外围接口(如触摸传感器、PWM、I2C、SPI、ADC、DAC 等),并且提供更多的 GPIO 引脚,能够支持更复杂的外设和应用。
其他开发板
除了常见的ESP8266与ESP32外还有类似 Arduino 系列开发板、STM32开发板以及树莓派等。以上开发板都各有优劣,选择时应该根据项目具体需求以及具体性能参考来决定。
编程语言
-
C/C++:嵌入式系统开发中最常用的语言之一,它提供了对硬件的直接控制和高效的资源管理。
-
Python:开发板中可通过烧录micropython实现使用Python对微控制器进行开发。
本文使用的硬件介绍
本文采用的是淘宝上购买的 ESP32_S3 Cam 开发板
- 内置520KB SRAM和8MB Flash,支持复杂的应用程序和数据存储。
- 配备了专用的摄像头接口,支持直连摄像头模块并进行采集和处理。
- 提供多个GPIO、SPI、I2C等接口,支持各种外设的连接和控制。
摄像头采用的是 OV3660 摄像头
- ESP32支持的摄像头参考GitHub - espressif/esp32-camera
- 摄像头性能参考OmniVision OV3660 1/5"CMOS QSXGA(3M)image sensor datasheet-16rd
最终耗费了共66元(ESP32_S3 Cam开发板加OV3660加烧录底座)
实战篇
开发工具配置与使用
开发工具的话有两款推荐大家使用:
- Arduino IDE:用户界面简单同时内置了大量的库和示例代码,下载地址:Software | Arduino
- Thonny:后续烧录micropython后可使用Thonny进行开发。下载地址:Thonny, Python IDE for beginners
安装教程我就不过多赘述了。
硬件连接
本文中,我使用的是烧录底座接ESP32_S3开发板的方式实现的程序烧录与代码开发,也可以使用串口方式实现。
Arduino IDE示例
打开Arduino后按照以下步骤安装ESP32支持
安装后点击选择开发板,这里最好找购买开发板的商家询问一下开发板的具体型号,选择好开发板型号后选择对应的端口,选择后点击确定
此时从文件 -> 示例 -> 找到ESP32开发板,即可看到Camera相关示例代码,选择后将打开示例
接下来就是针对示例中的一些定义进行修改
- 取消注释使用的开发板型号的定义,将自己使用的开发板型号取消注释,并注释默认的开发板型号(注释#define CAMERA_MODEL_ESP_EYE),我的开发板是CAMERA_MODEL_ESP32S3_EYE,所以只需要取消注释这一项即可
- 设置WiFi连接,将ssid和password分别修改为你的账号与密码。程序运行时开发板将会在WiFi同网段开启一个web服务,访问端只需要和开发板连接同一个WiFi即可访问Web服务
- 修改示例中的摄像头为你所使用的摄像头
修改后点击上传即可,程序将在编译后上传到开发板中
同一WiFi下访问该路径即可,打开后是以下样子,选择好分辨率和相关配置后点击Start Stream就好可以看到摄像头捕获到的画面了
以上就是本篇的内容啦,希望有帮助到大家,下一篇内容我将和大家分享一下示例代码中的部分内容以及如何修改WebServer中的页面