登录/注册

esp32 存储数据库

更多

在ESP32上实现数据库存储,可以根据具体需求选择以下几种方案:


1. 使用Preferences库(键值存储)

适用于存储简单的配置数据或键值对,基于非易失性存储(NVS)。

示例代码:

#include <Preferences.h>
Preferences prefs;

void setup() {
  prefs.begin("my-app"); // 命名空间
  prefs.putInt("counter", 123); // 存储整型
  prefs.putString("token", "abc123"); // 存储字符串

  int val = prefs.getInt("counter", 0); // 读取数据,默认值0
  String token = prefs.getString("token", "");
  prefs.end();
}

2. 使用SPIFFS/LittleFS文件系统(文件存储)

通过文件系统(SPIFFS或LittleFS)存储结构化数据(如JSON、CSV),适合小型数据库。

示例(JSON存储):

#include <SPIFFS.h>
#include <ArduinoJson.h>

void saveData() {
  DynamicJsonDocument doc(1024);
  doc["sensor"] = "temperature";
  doc["value"] = 25.6;

  File file = SPIFFS.open("/data.json", "w");
  serializeJson(doc, file);
  file.close();
}

void readData() {
  File file = SPIFFS.open("/data.json", "r");
  DynamicJsonDocument doc(1024);
  deserializeJson(doc, file);
  float value = doc["value"];
  file.close();
}

3. 使用SQLite数据库(需外部库支持)

通过移植SQLite或使用第三方库实现轻量级SQL数据库(需搭配文件系统)。

步骤:

  1. 安装库:例如使用 ESP32-SQLite
  2. 示例代码:
    
    #include <sqlite3.h>
    #include <SPIFFS.h>

sqlite3 *db; int rc;

void setup() { SPIFFS.begin(true); // 打开数据库(存储在SPIFFS中) rc = sqlite3_open("/spiffs/mydb.sqlite", &db); if (rc != SQLITE_OK) { Serial.println("Failed to open database"); return; }

// 创建表 char *sql = "CREATE TABLE IF NOT EXISTS sensor (id INT, value REAL);"; rc = sqlite3_exec(db, sql, NULL, NULL, NULL);

// 插入数据 sql = "INSERT INTO sensor VALUES (1, 25.5);"; rc = sqlite3_exec(db, sql, NULL, NULL, NULL); }

void loop() {}


---

### **4. 使用云数据库(远程存储)**
通过WiFi将数据上传至云端(如Firebase、AWS IoT等),适合需要远程访问的场景。
- **优点**:数据可跨设备访问,存储容量大。
- **缺点**:依赖网络连接。

**示例(Firebase):**
```cpp
#include <FirebaseESP32.h>
FirebaseData fbData;

void setup() {
  Firebase.begin("your-firebase-url", "your-secret-key");
  Firebase.setInt(fbData, "/sensor/value", 30); // 写入数据
}

5. 使用EEPROM(极小数据存储)

仅适用于极小数据(约4KB),如设备标识或简单配置。

#include <EEPROM.h>

void setup() {
  EEPROM.write(0, 123); // 写入字节
  EEPROM.commit();
  int val = EEPROM.read(0); // 读取字节
}

选择建议

确保在项目配置中调整分区表(如增大SPIFFS空间),并注意闪存擦写次数限制。

ESP32-WROOM-32-N8

ESP32-WROOM-32-N8

2023-04-06 23:33:39

ESP32-S3-MINI-1-N8

ESP32-S3-MINI-1-N8

2023-04-06 23:31:21

ESP32-S3-WROOM-1U-N4

ESP32-S3-WROOM-1U-N4

2023-04-06 23:08:04

ESP32键盘数据库安全系统

电子发烧友网站提供《ESP32键盘数据库安全系统.zip》资料免费下载

资料下载 佚名 2023-06-25 15:56:08

ACS数据库与RSC数据库比较研究

ACS数据库与RSC数据库比较研究(开关电源技术与设计pdf百度云)-ACS数据库与RSC

资料下载 佚名 2021-09-15 11:35:10

面向NoSQL数据库的JSON文档异常检测模型

随着信息化技术的发展,面对材料等相关领堿数据的多源异枃、扩展性强、爆炸増长等特点,传统关系数据库无法对数据进行

资料下载 佚名 2021-04-13 15:30:08

数据库的设计资料概述

数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地

资料下载 佚名 2020-03-12 15:49:06

创建新的数据库和更改SQL Server CE数据库中的数据操作教程免费下载

SQL Server CE 中的数据库是存储结构化数据的表集合。在可以存储

资料下载 佚名 2019-09-19 11:28:37

ESP32-WROOM-32D-N8

ESP32-WROOM-32D-N8

2023-03-29 22:42:58

ESP32-WROOM-32U-N8

ESP32-WROOM-32U-N8

2023-03-29 22:42:58

ESP32-WROVER-B

ESP32-WROVER-B

2023-03-29 22:36:07

ESP32-S3-WROOM-1-N8R8

ESP32-S3-WROOM-1-N8R8

2023-03-29 21:34:19

ESP32-C3-MINI-1-H4

ESP32-C3-MINI-1-H4

2023-03-29 16:30:23

ESP32-S0WD

ESP32-S0WD

2023-03-28 13:10:29

ODX 诊断数据库转换工具 — DDC

1970-01-01 08:00:00 至 1970-01-01 08:00:00

7天热门专题 换一换
相关标签