数据持久化
数据持久化可以选择文件存储或数据库存储,单片机上可用flashdb/easy flash/csv文件存储,Linux上可以用sqlite +SQL语句/正则表达式查询。
一 SQLite :
1. 环境搭建(极简):
- 下载 DB Browser for SQLite
- 或在 Linux/Windows 命令行安装
sqlite3 - 或在 C/C++ 项目中直接链接
sqlite3.c
二 csv文件:用逗号隔开,可以用excel/access数据库直接打开并按excel进行展示,

#include "ff.h" // FATFS 头文件 FATFS fs; FIL fil; FRESULT res; // 初始化 SD 卡 + FATFS void init_sd_card(void) { f_mount(&fs, "", 1); // 挂载文件系统 } // 写入 CSV 行 void log_sensor_data(float x, float y, float z, float temp) { static int first_line = 1; res = f_open(&fil, "sensor.csv", FA_WRITE | FA_OPEN_APPEND); if (res == FR_OK) { if (first_line) { f_puts("timestamp,x,y,z,temperature\n", &fil); first_line = 0; } char buf[100]; // 假设你有获取时间的方法(如 RTC) uint32_t ts = get_timestamp(); sprintf(buf, "%lu,%.2f,%.2f,%.2f,%.1f\n", ts, x, y, z, temp); f_puts(buf, &fil); f_close(&fil); } }
在excel中进行SQL/正则表达式查询:
通过「Microsoft Query」或「Power Query」(推荐)
适用场景:
- 从外部数据源(如 Access、SQL Server、文本文件、甚至另一个 Excel 表)用 SQL 查询导入数据
操作步骤(以 Windows + Excel 为例):
-
数据源格式要求:
- Excel 文件本身可作为“数据库表”使用(每张工作表 ≈ 一张表,第一行是列名)
- 或连接外部数据库(如 SQLite、MySQL 等)
-
使用 Power Query(Excel 2016+ 内置):
- 菜单栏 → 数据 → 获取数据 → 从其他源 → 从 ODBC 或 从文件/Excel
- 在 Power Query 编辑器中,可点击 “高级选项” 输入 SQL 语句(部分版本支持)
- 或通过 M 语言(Power Query 自有语言)实现类似 SQL 的逻辑
-
使用 Microsoft Query(传统方式):
- 文件 → 选项 → 加载项 → 勾选 Microsoft Query
- 数据 → 获取外部数据 → 从 Microsoft Query
- 选择数据源(如 Excel 文件本身),然后可写 SQL:“SELECT * FROM [Sheet1$] WHERE [Age] > 18”
浙公网安备 33010602011771号