ESP32开发实用百例,下载地址:
链接:https://pan.baidu.com/s/1SINZhyFInFmV4cZmzx2frA?pwd=bs6k
提取码:bs6k
=====================================
5.1 开发方式的选择
ESP32 的开发方式主要有三种:ESP-IDF、Arduino 和 MicroPython。
1,ESP-IDF:ESP-IDF 是乐鑫官方推出的开发框架,专门为 ESP32 和其他一些 ESP 系列芯片设计。它提供了一套完整的开发工具和库,可以帮助开发者快速地开发和调试 ESP32 应用程序。ESP-IDF 支持 C/C++语言,并提供了一套完整的 API,可以控制 ESP32 的各种功能和外设。
此外,ESP-IDF 还提供了一个在线编译器和调试器,可以让开发者在云端进行开发和调试。
2,Arduino:Arduino 是一种流行的开源电子原型平台,包括一系列的开发板和开发环境。
Arduino 提供了一种基于 C/C++的语言,使得开发者可以更容易地控制和编程 ESP32。Arduino 开发环境还提供了大量的库和函数,可以帮助开发者快速地构建和测试他们的代码。Arduino 还支持图形化编程,使得初学者和非专业人士也可以轻松地进行开发。本教程选择此开发方式。
3,MicroPython:MicroPython 是一种精简的 Python 3 语言,可以运行在 ESP32 和其他一些微控制器上。它提供了一种简单的方式来编程和控制 ESP32,而且由于 Python 是一种高级语言,它使得开发过程相对快速和简单。开发者可以使用 MicroPython 进行快速原型设计和开发,并且由于 Python 是一种解释型语言,所以可以直接在 ESP32 上运行代码,无需进行编译。
这三种开发方式各有其优点,开发者可以根据自己的需求和技能水平选择适合自己的开发方式。对于初学者和非专业人士来说,Arduino 和 MicroPython 是一种很好的选择,因为它简单易学,可以快速上手。对于专业人士和对性能有更高要求的开发者来说,ESP-IDF 可能是更好的选择,因为它们提供了更高级的开发工具和更强大的控制能力。另外,正点原子 ESP32-S3 开发板为开发者提供了 MicroPython、Arduino 和 ESP-IDF 三种开发方式的相关例程和教程,这使得开发者可以根据自己的需求和技能水平选择适合自己的开发方式。
5.2 环境搭建
5.2.1 Arduino IDE2 软件安装包下载
Arudino 集成开发环境,即 Arduino IDE 有两个版本,Arduino IDE1 和 Arduino IDE2。本教程是采用 Arduino IDE2 去编写例程源码的,所以在这里需要下载 Arduino IDE2 软件安装包,可直接到官网地址获取,地址为:https://www.arduino.cc。在这里我们将一步一步带大家把软件安装包下载下来,首先进入官网如下所示:
5.2.2 Arduino IDE2 软件安装
从前面选择电脑存放路径下找到“arduino-ide_2.2.1_Windows_64bit.exe”文件(也可以在正点原子提供的软件资料找到安装文件),双击该 exe 文件,如下图所示。
初次打开 Arduino IDE 软件,需要等待一段时间,这期间会安装一些库以及安装一些驱动,
比如:Adafruit Industries 的 LLC 端口、Arduino srl 的 Arduino USB Driver、Arduino SA 的 Arduino USB Driver 以及 Arduino LLC 的 Genuino USB Driver,如下图所示。
5.2.3 认识 Arduino IDE2
Arudino IDE2,Arduino 的集成开发环境,具有程序编辑、调试、编译、上传、库管理等功能。Arduino IDE2 的主界面如图所示:
首次打开 Arduino IDE2 软件,语言默认为英文,怎么设置成上图的中文呢?点击
“File→Preferences”,进入到首选项界面,对 Language 选项设为中文即可,如下图所示:
在首选项中,我们进行如下设置:
- 项目文件夹地址,即工程存放的位置,当我们新建工程时,默认推荐存放的地方,当然你也可以自行设置存放文件夹。这里有一个选项是是否在 IDE 中进行显示项目中的文件夹,假如打勾,这时候通过左侧工具栏的第一个按钮即可显示该新项目文件夹的文件情况。
- 设置编辑器字体大小,以及设置界面比例,这些都是默认操作即可。当你觉得字体太小了,自行调整编辑器字体大小参数即可,觉得编辑器界面调小,也可以适当调整界面比列参数。
- 设置颜色主题,可选为:明亮、暗黑、明亮对比和暗黑对比。
- 设置编辑器语言,多种语言可以设置,设置后会进行软件重启。
- 显示详细输出,这里我把编译和上传都勾选了,即项目编译和上传时,在信息显示窗口都会打印出相关信息,便于了解整个过程的执行情况。
- 编译器警告,这里设置的是无。
- 上传后验证代码,这里可打勾。
- 自动保存,这里是要打勾的,以防电脑蓝屏等突发情况导致工程代码丢失。
- 编辑快速建议,这里是要打勾的。比如我要用 Serial.printf 函数,这时候会提示函数的传参是什么,便于我们更好更快的编写对的函数。
- 其他开发板管理器地址,当你要添加其他开发板时,假如是 Arduino 非官方的开发板,这时候你在 IDE 上是搜索不到,所以我们就需要把这个开发板的地址添加进来。打个比方,要添加树莓派 pico,就需要获取对应的地址呢?点击旁边的编辑按钮,进入到 “其他开发板管理器地址页面”,然后点击下图中的①“获取支持的非官方开发板地址列表”,进入到一个网页 https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rdparty-boards-support-urls,在该网页中查询你要添加的芯片的 json 文件地址:
https://github.com/earlephilhower/arduino-
pico/releases/download/global/package_rp2040_index.json,然后把它复制到“其他开发板管理器地址页面”的②输入框,软件会自动检测,然后下载对应的 json 文件到
“C:\Users\ALIENTEK\AppData\Local\Arduino15”文件夹下,如下图所示:
注 意 : 假 如 json 文 件 下 载 不 成 功 , 就 可 以 手 动 下 载 , 把 它 放 置 于 “C:\Users\ALIENTEK\AppData\Local\Arduino15”文件夹下就可以了。后面就可以在开发板管理器中搜索 rp2040 进行安装开发板,具体操作过程可以参考后面的“5.2.5 安装 arduino-esp32 库” 小节的说明。
接下来对 Arduino IDE2 的工具栏(橙色框框)进行说明,如下表所示:
接下来,看一下 Arduino IDE2 相对 Arduino IDE1 新增功能:
注意:要对“文件→首选项→编辑快速建议”的功能打钩才会有这个功能。
② 变量或函数跳转功能
右键单击变量或函数时,上下文菜单将提供导航快捷方式以跳转到声明它们的行(和文件),当然也可以通过快捷键“Ctrl+F12”达到目的。
基于这个功能,我们可以比较轻松了解函数的调用关系,可以了解到底层。
- Arduino Cloud 云端保存
对于拥有多台工作电脑的人来说,云端保存是一个非常有用的功能。这个功能我们并没有用到,有兴趣的小伙伴可以自行尝试使用以下。
- 串行绘图仪
IDE2 的串行绘图仪,如下图所示,用于跟踪从 Arduino 板接收的不同数据和变量,可以让我们更直观看到数据。通常用于测试和校准传感器、比较值和其他类似场景。
在 IDE1,串行绘图仪和串行监控器只能有其一个工作,而 IDE2 支持两个功能同时工作。
5.2.4 arduino-esp32 库介绍
Arduino-esp32 库就是一个在 Arduino 平台上开发 ESP32 的插件,它为 Arduino 环境下的 ESP32 芯片提供了支持。它允许使用熟悉的 Arduino 函数和库编写代码,并直接在 ESP32 上运行。
Arduino-esp32 库支持对 ESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6 和 ESP32-H2 进行开发,还提供了很多基础库。这些基础库涵盖了芯片的所有外设,如下表所示。
基础库 | 基础库说明 |
EEPROM | EEPROM 库,管理内部的 FLASH |
Preferences | ESP32 NVS 加密 flash |
ESP32 | ESP32 外设的示例 |
Wire | I2C 库,与 IIC 接口相关 |
SPI | SPI 库,与 SPI 接口相关 |
I2S | I2S 库,与 I2S 接口相关 |
SD | SD 卡驱动库,SD 卡使用的是 SPI 接口 |
SD_MMC | SD 卡驱动库,SD 卡使用的是 4 线接口 |
USB | USB 库 |
FS | 文件系统虚拟框架 |
FFat | 文件系统,FAT 文件系统 |
LittleFS | 文件系统,LittlsFS 文件系统 |
SPIFFS | 文件系统,SPIFFS 文件系统 |
Ticker | 定时任务库 |
BLE | 蓝牙相关库,低功耗蓝牙 V4.2 客户端/服务器 框架 |
BluetoothSerial | 蓝牙相关库,经典蓝牙,适用 ESP32,不适用 ESP32-S2/C3/S3 |
SimpleBLE | 蓝牙相关库,低功耗蓝牙广播 |
ArduinoOTA | 无线更新-OTA 固件更新 |
Update | 无线更新-OTA 固件更新 |
HTTPUpdate | 无线更新-OTA 固件更新 |
HTTPUpdateServer | 无线更新-OTA 固件更新 |
Insights | ESP Insights 功能,通过 WiFi 把设备固件运行状态和日报上报云 |
NetBIOS | 解析 NetBIOS 名称 |
WiFi | WiFi 基础功能,包括 AP、STA、SCAN、TCPClient、TCPServer、UDP |
WebServer | 局域网 Web 服务器功能 |
WiFiClientSecure | 加密 WiFi 客户端 |
HTTPClient | http 客户端功能,兼容 WiFiClientSecure |
WiFiProv | WiFi 配网功能 |
AsyncUDP | 异步任务驱动的 UDP 数据客户端/服务器 |
DNSServer | 真正的 DNS 域名服务 |
ESPmDNS | 局域网本地发现功能 |
Ethernet | 以太网 |
RainMaker | ESP RainMaker AIoT 平台服务 |
5.2.5 安装 arduino-esp32 库
前面也提及到 Arduino IDE默认支持的是 AVR-Arduino 硬件平台,如果想在 IDE上对 ESP32 进行开发,就必须安装 arduino-esp32 库。
下面提供两种方式安装 esp32 到 Arduino IDE。
安装方式一:使用 Arduino IDE 的开发板管理器来安装
安装步骤如下:
- 打开 Arduino IDE,选择“工具→开发板→开发板管理器”菜单项或直接点击主界面左侧的开发板管理器 LOGO,然后在文本框中输入 esp32,选择 esp32 by Espressif System,点击安装,具体操作如下图所示。
由于这里面的文件存放于 github 中,而服务器在国外,所以这种方式很大程度会失败,当然网上也有方法教如何可以成功,具体可以自行上网查阅。
- 重新启动 Arduino,可到“工具→开发板→esp32”进行查看,这里面就有 ESP32 众多
开发板在,针对正点原子的 ESP32-S3 开发板,直接选择“ESP32S3 Dev Module”即可,
这种方式,主要解决的是方式一中的第一步,Arduino IDE 很大可能从 github 中下载相关软件包失败,所以我们这里直接准备好了所需要的“Arduino_IDE 添加 ESP32 的软件包”,可以在本文网盘链接找到,其文件夹的文件如下图所示:
- 到 C:\Users\ALIENTEK\AppData\Local\Arduino15\staging\packages 路 径 下 , 把 “Arduino_IDE 添加 ESP32 的软件包”文件夹下所有文件拷贝到该文件夹下,packages 文件夹拷贝后如下图所示。
-
这里有两个注意点:①标红的 ALIENTEK 为本机的用户名,根据自己本机的用户名进行替换即可 ②假如看到发现没有 AppData 文件夹,需要在查看的菜单栏中对“隐藏的项目”前面的框框打钩,显示隐藏的项目
- 重复方式一的①操作即可。因为这时候相关软件包已经被我们存放到 packages 中,这时候 Arduino IDE 就免去了从 github 中下载的步骤,直接对这些软件包进行安装,安装过程如下图所示。
- 与方式①的②步骤一致,这里不再赘述。
安装好 arduino-esp32 库,这时候就算搭建环境完成了。