模板: ESP32-S3-LCD-1.54-Aruidno-Demo
来自Waveshare Wiki
Arduino开发
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
环境搭建
下载和安装 Arduino IDE
- 点击访问Arduino官网,选择对应的系统和系统位数下载。

- 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考
安装 ESP32 开发板
- ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”开发板的软件包
- 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装”
- 安装教程,详见:Arduino 板管理教程
| 板名称 | 板安装要求 | 版本号要求 |
|---|---|---|
| esp32 by Espressif Systems | “离线”安装/“在线”安装 | ≥3.2.0 |
安装库
- 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装。若库安装要求离线安装,则必须使用提供的库文件
对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。 - ESP32-S3-LCD-1.54 库文件存放于示例程序中,点击此处跳转: ESP32-S3-LCD-1.54 示例程序
- 库安装教程,详见:Arduino 库管理教程
| 库名称 | 说明 | 版本 | 库安装要求 |
|---|---|---|---|
| lvgl | LVGL图形化库 | v8.4.0 或 v9.3.0 | “在线”安装 |
| GFX_Library_for_Arduino | GFX图形化库 | v1.6.0 | “在线”安装 |
| U8g2 | 图形显示库 | v2.35.30 | “在线”安装 |
| SensorLib | 传感器驱动库 | v0.3.1 | “在线”安装 |
| ESP32-audioI2S-master | 音频处理库 | v3.4.0 | “在线”安装 |
| OneButton | 按键库 | v2.6.1 | “在线”安装 |
运行第一个 Arduino 程序
如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!
示例程序
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_audio_out | 读取SD卡的音频文件,并播放 | ESP32-audioI2S-master |
| 02_button_example | 按键测试 | OneButton |
| 03_qmi8658_example | 打印IMU获取的数据 | SensorLib |
| 04_gfx_helloworld | 屏幕上显示HelloWorld | GFX_Library_for_Arduino |
| 05_esp_wifi_analyzer | 屏幕上显示WiFi信号强度 | GFX_Library_for_Arduino |
| 06_gfx_u8g2_font | 通过加载字库,实现各国文字显示 | GFX_Library_for_Arduino、U8g2 |
| 07_sd_card_test | 测试SD卡的读写 | --- |
| 08_lvgl_arduino_v8 | lvgl v8.4.0 示例程序 | GFX_Library_for_Arduino、lvgl |
| 09_lvgl_arduino_v9 | lvgl v9.3.0 示例程序 | GFX_Library_for_Arduino、lvgl |
| 10_esp_sr | 测试语音唤醒、语音识别 | --- |
- ESP32-S3-LCD-1.54 Arduino 工程参数设置
01_audio_out
【程序说明】
本示例演示 ESP32-S3-LCD-1.54 读取SD卡的音频文件并使用喇叭播放,支持MP3、AAC、WAV等格式。
【准备工作】
- 将SD卡插入电脑
- 在SD卡根目录新建文件夹 music
- 把本工程下data文件夹里面的1.mp3拷贝到SD卡的music文件夹里
- 将SD卡插入 ESP32-S3-LCD-1.54
【代码分析】
- 初始化SD卡
if (!SD_MMC.setPins(clk, cmd, d0, d1, d2, d3)) {
Serial.println("Pin change failed!");
return;
}
if (!SD_MMC.begin()) {
Serial.println("Card Mount Failed");
return;
}
- 设置 I2S 引脚和音量大小
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT, I2S_MCLK); audio.setVolume(21); // 0...21
- 设置播放的音频文件
audio.connecttoFS(SD_MMC, "music/1.mp3");
【运行效果】
- 播放音频文件,屏幕无现象
02_button_example
【程序说明】
03_qmi8658_example
【程序说明】
04_gfx_helloworld
【程序说明】
本示例演示 ESP32-S3-LCD-1.54 使用GFX_Library_for_Arduino库驱动屏幕并在屏幕上显示HelloWorld
【代码分析】
- 配置屏幕接口、分辨率等
Arduino_DataBus* bus = new Arduino_ESP32SPI(45 /* DC */, 21 /* CS */, 38 /* SCK */, 39 /* MOSI */, -1 /* MISO */); Arduino_GFX* gfx = new Arduino_ST7789( bus, 40 /* RST */, 0 /* rotation */, true, 240, 240);
05_esp_wifi_analyzer
06_gfx_u8g2_font
07_sd_card_test
【程序说明】
08_lvgl_example_v8
【程序说明】
本示例演示了使用 ESP32-S3-LCD-1.54 运行lvgl( v8.4.0)示例程序。
【代码分析】
- UI初始化
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello Arduino! (V" GFX_STR(LVGL_VERSION_MAJOR) "." GFX_STR(LVGL_VERSION_MINOR) "." GFX_STR(LVGL_VERSION_PATCH) ")");
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
09_lvgl_example_v9
【程序说明】
本示例演示了使用 ESP32-S3-LCD-1.54 运行lvgl( v9.3.0)示例程序。
【代码分析】
- UI初始化
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello Arduino, I'm LVGL!(V" GFX_STR(LVGL_VERSION_MAJOR) "." GFX_STR(LVGL_VERSION_MINOR) "." GFX_STR(LVGL_VERSION_PATCH) ")");
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
10_esp_sr
【程序说明】
本示例演示了使用 ESP32-S3-LCD-1.54 运行ESP_SR示例程序。
【代码分析】
- 初始化ES7210以及 I2S 接口
Wire.begin(I2C_PIN_SDA, I2C_PIN_SCL); es7210_init(); i2s.setPins(I2S_PIN_BCK, I2S_PIN_WS, I2S_PIN_DOUT, I2S_PIN_DIN, I2S_PIN_MCK); i2s.setTimeout(1000); i2s.begin(I2S_MODE_STD, 16000, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO);
- 初始化ESP_SR
ESP_SR.onEvent(onSrEvent); ESP_SR.begin(i2s, sr_commands, sizeof(sr_commands) / sizeof(sr_cmd_t), SR_CHANNELS_STEREO, SR_MODE_WAKEWORD);
- 语音识别指令设置,生成语音控制指令
static const sr_cmd_t sr_commands[] = {
{ 0, "Turn on the light", "TkN nN jc LiT" },
{ 0, "Switch on the light", "SWgp nN jc LiT" },
{ 1, "Turn off the light", "TkN eF jc LiT" },
{ 1, "Switch off the light", "SWgp eF jc LiT" },
{ 1, "Go dark", "Gb DnRK" },
{ 2, "Start fan", "STnRT FaN" },
{ 3, "Stop fan", "STnP FaN" },
};







