MKR1000 无缝对接 Google Sheets:WiFi 上传传感器数据
零部件清单
| 组件 | 数量 |
|---|---|
| Arduino MKR1000 | 1 |
| DHT11 温湿度传感器 | 1 |
| 跳线 | 若干 |
| 面包板 | 1 |
在线服务
- Arduino IDE
- Google Sheets
项目简介
本项目实现 MKR1000 通过 WiFi 将传感器数据发送到云端 Google Sheets,无需信用卡绑定、无需专有黑盒 API。示例使用低成本 DHT11,代码易于修改适配任意传感器。也可结合我另一个项目将数据同时上传至 Thingspeak 绘图。
教程分四部分:
第一部分:创建并部署 Google 表单
- 注册/登录 Google 账号,新建“Google 表格”,复制 URL 中
/d/与/edit之间的键值(Spreadsheet ID)。 - 进入 工具 → 脚本编辑器,粘贴提供的 Google Apps Script 代码,将 Spreadsheet ID 填入
var id = ' ';。 - 保存脚本,发布 → 部署为网络应用,配置四个关键字段:
- 复制生成的“当前网络应用网址”
- 版本选择“新建”
- “执行身份”选“我”
- “访问权限”选“任何人,甚至匿名”
第二部分:配置 PushingBox
PushingBox 作为免费中转 API,将 HTTP 数据转为 Google 要求的 HTTPS,每天免费 1000 次请求。步骤:
- 用 Gmail 注册 PushingBox
- “My Services” → “Add a service” → 选择 “CustomURL”
- 填写:名称、Root URL(第一部分获得的 Google Script 地址)、Method(GET)
- “My Scenarios” 创建场景,关联上述服务
- 在数据框粘贴 GET 参数串:
?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$ - 复制生成的 DeviceID,后续 Arduino 代码和测试都要用
第三部分:测试 API
在浏览器地址栏直接输入测试链接:
https://api.pushingbox.com/pushingbox?devid=你的DEVID&humidityData=33&celData=44&fehrData=111&hicData=22&hifData=77
若 Google 表格新增一行数据,说明前三部分配置正确。
第四部分:MKR1000 代码与硬件
硬件接线
DHT11 建议用 5V 供电(MKR1000 的 5V 引脚),数据线接 Pin 5 (D5)。
软件准备
- Arduino IDE 1.6.4+,通过开发板管理器安装 MKR1000 支持包
- 安装两个库:WiFi101、Adafruit DHT
代码关键配置
修改草图中三处:
- WiFi SSID
- WiFi 密码
- PushingBox DeviceID
上传后串口监视器 9600 波特率可看到发送日志,Google 表格将自动追加每行数据(时间戳、湿度、摄氏度、华氏度、两种热指数)。
完整代码
Arduino 草图、Google Apps Script、PushingBox 参数串均在原文代码区提供,含详细注释与多作者署名。
制造工艺
- 在 MATRIX Voice 树莓派上安装 Google Assistant:分步指南
- 两块 Arduino 通过 Firebase 传递温湿度数据
- 用 Arduino 打造绚丽显示器 Ambilight 系统
- 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- Arduino Mega 拍照自动上传 Google Drive:PHPoC WiFi Shield 方案
- Arduino 音频频率检测:基于 FFT 测量最响亮声音峰值
- 自制 Arduino 电子宠物「Tamaguino」:复刻经典 Tamagotchi 全攻略
- 智能无线开关控制器:Arduino + 433MHz 远程操控墙壁开关
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 基于 Arduino Nano 的智能运动感应水枪
- 使用 SparkFun 7 段数码管构建可靠的 Arduino 倒计时器