Arduino Yun 实现 SD 卡文件自动备份到 Dropbox 零配线教程
项目简介
利用 Arduino Yun 内置的 Linux 系统与 SD 卡槽,配合 Temboo 云服务,实现「插卡即备份」:将 SD 卡上的文本文件自动上传至 Dropbox,无需编写复杂网络代码,也无需额外硬件电路,几分钟即可部署完成。
硬件清单
- Arduino Yun Rev.2 ×1
- Micro SD 卡(≤32GB,FAT16/32 格式)×1
- Micro USB 数据线(供电与串口调试)×1
软件与账号准备
- 注册 Dropbox 账号(免费 2GB 空间)。
- 注册 Temboo 账号(免费额度足够个人使用),创建一个新 App,获取
TEMBOO_ACCOUNT、TEMBOO_APP_KEY_NAME、TEMBOO_APP_KEY。 - 在 Temboo 控制台中搜索 Dropbox > Files > Upload Choreo,生成对应的 Header 文件
TembooAccount.h,将三个密钥填入。 - 在 Dropbox 开发者后台创建 App,获取 Access Token,填入 Header 文件的
DROPBOX_ACCESS_TOKEN。
SD 卡准备
- 用电脑将 SD 卡格式化为 FAT32 (MS-DOS)。
- 在卡根目录创建测试文件
datalog.txt,写入任意文本内容。 - 插入 Yun 的 SD 卡槽(金属触点朝上)。
核心代码逻辑
完整代码见文末链接,关键流程如下:
// 1. 读取文件
File dataFile = FileSystem.open("/mnt/sd/datalog.txt", FILE_READ);
String dataString = "";
while (dataFile.available()) {
dataString += (char)dataFile.read();
}
dataFile.close();
// 2. 转换为 char 数组(Temboo 要求)
char valueToSend[120];
dataString.toCharArray(valueToSend, 120);
// 3. 配置 Temboo Choreo
TembooChoreo UploadChoreo;
UploadChoreo.begin();
UploadChoreo.setAccountName(TEMBOO_ACCOUNT);
UploadChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
UploadChoreo.setAppKey(TEMBOO_APP_KEY);
UploadChoreo.addInput("Path", "/YunSD.txt"); // Dropbox 目标路径
UploadChoreo.addInput("FileContent", valueToSend);
UploadChoreo.addInput("ContentType", "text/plain");
UploadChoreo.addInput("AccessToken", DROPBOX_ACCESS_TOKEN);
UploadChoreo.addInput("Mode", "overwrite"); // 覆盖同名文件
UploadChoreo.setChoreo("/Library/Dropbox/Files/Upload");
// 4. 执行上传
UploadChoreo.run();
while (UploadChoreo.available()) {
Serial.write(UploadChoreo.read()); // 打印返回结果
}
运行与验证
- 将代码上传至 Yun(需打开串口监视器,波特率 115200)。
- 上电后约 30 秒,Bridge 启动完成,串口输出
Success - File Open与上传结果。 - 登录 Dropbox 网页版,查看根目录下是否出现
YunSD.txt且内容一致。 - 如需再次备份,按下 Yun 复位键或重新上电即可触发一次上传。
注意事项与局限
- 本示例仅演示单次上传;生产环境建议加入定时任务(Linux crontab)或文件变更监听(inotify)实现增量备份。
- Yun 官方已停产,现有库存有限;新项目可考虑 ESP32 + MicroPython 方案,成本更低、功耗更小。
- Temboo 免费额度有月度调用上限,高频备份请评估升级付费方案或自建服务器(如用 MQTT + 自有云存储)。
- GitHub 仓库:YunDropboxBackup(含
TembooAccount.h模板) - Fritzing 原理图:
schematics_yyQ2UFCZLL.fzz
完整代码与资源
制造工艺
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino Yun 实现 SD 卡文件自动备份到 Dropbox 零配线教程
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- Earth Analyzer:面向精准农业的多模态物联网环境监测巡检车