依赖版本
ESP-IDF: v5.1.4
开发板: ESP32S3
VSCode: 1.70.0
背景介绍
当我们需要在开发板上管理复杂关系的数据时,我们就需要 SQLite
这样的工具了。
本文将为大家介绍开源项目 esp32-idf-sqlite3 的使用方式。
VSCode开发环境搭建
由于是首次更新此类文章,本文会介绍一下环境的搭建,熟练的工程师可以直接跳过。
安装扩展
我们搜索 ESP
,安装有官方图标的 ESP-IDF
即可.
ESP-IDF Setup
首先,我们要确保 ESP-IDF v5.1.4
已正确安装,请从官网下载,并完整安装。
然后,我们在 VSCode
中,按下 F1
,输入ESP-IDF: Configure ESP-IDF extension
。在弹出的界面中,选择 EXPRESS
的配置方式,在后续的配置中,填写好两个路径:
注意:所有路径不要包含中文或空格,避免出现奇怪的异常,后期也要在项目开发过程中时刻注意此事。
克隆esp32-idf-sqlite3到本地
我们在工作区先下载下来项目:
bash
git clone https://github.com/nopnop2002/esp32-idf-sqlite3.git
下载完毕后,项目的目录结构如下:
plaintext
2024-07-18 13:51 <DIR> components
2024-07-18 13:51 <DIR> fatfs
2024-07-18 13:51 <DIR> sd_mmc
2024-07-18 14:09 <DIR> sd_spi
2024-07-18 14:36 <DIR> spiffs
我们将 components
下的 esp32-idf-sqlite3
目录整体拷贝到 ESP-IDF 根目录下的 components
目录下,如图:
试验 spiffs
例程
该项目一共有三个主要的示例项目,分别是:
项目名 | 用途 |
---|---|
sd_mmc | 使用 MMC 协议读写 SD 卡,来实现 SQLite 交互 |
sd_spi | 使用 SPI 协议读写 SD 卡,来实现 SQLite 交互 |
spiffs | 使用 SPI 协议读写 Flash ,来实现 SQLite 交互 |
如果你正在使用的底板不具备SD
卡,那么就来一起体验Flash
的吧。
首先,我们可以打开桌面上的 ESP-IDF 5.1 CMD
切换目录到当前的项目下,比如:
cmd
cd D:\esp32-idf-sqlite3\spiffs
然后我们在 TUI
界面中配置我们所需的内容,这一部分可以参考官方文档:《IDF 前端工具 - idf.py》
cmd
idf.py menuconfig
💡 请记住 menuconfig
这个词汇,它是 ESP-IDF 的核心功能。
如果你使用的是 ESP32S3
又具有 PSRAM
,你可以在Component config
下的 ESP PSRAM
中按下空格打开它。
💡 当然了,你也可以在 VSCode
中干这件事:
一切准备就绪后,我们回到 VSCode
,配置串口、目标设备:
配置好后,我们进行编译
如果没有报错,我们后续都直接点这个🔥的按钮即可,它是 Build + Flash + Monitor
:
编译时间有点长,请大家耐心等待 ☕️ ......
正常情况下,您将看到类似于下面的输出:
log
INSERT INTO test1 VALUES (1, 'Hello, World from test1');
Operation done successfully
Time taken: 50503
INSERT INTO test2 VALUES (1, 'Hello, World from test2');
Operation done successfully
Time taken: 57368
SELECT * FROM test1
Callback function called: id = 1
content = Hello, World from test1
Operation done successfully
Time taken: 10535
SELECT * FROM test2
Callback function called: id = 1
content = Hello, World from test2
Operation done successfully
Time taken: 10525
All Done
VSCode
查看源码时,可能出现波浪线
这个问题,大部分情况下,可以通过按下F1
,输入 ESP-IDF: Add vscode configuration folder
来解决。
结语
以上就是如何在 ESP32S3
开发板上使用 SQLite3
数据库了,欢迎大家在评论区热烈评论。
修改记录
时间 | 内容 |
---|---|
2024-07-18 | 完成初稿 |