Arduino MKR GSM 1400 安全接入 Google Cloud IoT Core — 图文全流程指南
元器件清单
| 元件 | 数量 | 备注 |
|---|---|---|
| Arduino MKR GSM 1400 | 1 | 内置 ATECC508A/608A 安全芯片 |
| Micro-USB 数据线 | 1 | 供电与下载 |
| 3.7 V 锂电池(JST 接口) | 1 | 户外供电可选 |
| Micro SIM 卡(数据套餐) | 1 | 蜂窝联网 |
| U.FL 天线 | 1 | GSM 频段 |
软件与云服务
- Arduino IDE(需安装 SAMD 核心 ≥1.6.20)
- 库管理器安装:
MKRGSM、Arduino_JSON、ArduinoECCX08(≥1.3.0)、ArduinoMqttClient(≥0.1.3)、Arduino Cloud Provider Examples(≥1.2.0) - Google Cloud IoT Core(需开通 API、建立项目/注册表/设备)
核心安全架构
- 设备端:ATECC508A/608A 内部生成 ECC P-256 私钥,**永不离开芯片**
- 认证方式:MQTT + JWT(RS256/ES256),JWT 由硬件签名
- 云端:GCP IoT Core 验证设备上传的公钥(PEM 格式)
分步实施
1. 硬件准备
- 插入 SIM 卡、接天线、接锂电池、USB 连电脑
- IDE 选板 Arduino MKR GSM 1400,选对串口
2. 生成密钥对
- 打开示例:
文件→示例→ArduinoECCX08→Tools→ECCX08JWSPublicKey - 上传并打开串口监视器(设置 "Both NL & CR")
- 首次运行会提示**永久锁定配置区**(不可逆),确认后进入
- 选择槽位 0(共 0-4 五个槽位),生成密钥对
- 复制输出的 PEM 公钥(含 `-----BEGIN PUBLIC KEY-----` 头尾)
3. GCP 控制台注册设备
- 登录 GCP Console,创建项目(如
mkr-gcp-tutorial) - 左侧菜单 → Big Data → IoT Core,启用 API
- 创建设备注册表:ID
MKR_GCP_Tutorial,区域us-central1 - 注册表下 + 创建设备:名称
MyMKRGSM1400,公钥格式选 ES256,粘贴刚才复制的 PEM 公钥
4. 配置并烧录连接固件
- 打开示例:
文件→示例→Arduino Cloud Provider Examples→GoogleCloudPlatformIoTCore→GCP_IoT_Core_GSM - 修改
arduino_secrets.h:
// GSM
#define SECRET_PINNUMBER ""
#define SECRET_GPRS_APN "your_apn"
#define SECRET_GPRS_LOGIN "login"
#define SECRET_GPRS_PASSWORD "pass"
// GCP
#define SECRET_PROJECT_ID "mkr-gcp-tutorial"
#define SECRET_CLOUD_REGION "us-central1"
#define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"
#define SECRET_DEVICE_ID "MyMKRGSM1400"
- 上传固件,打开串口监视器观察:联网 → MQTT 连接 → 每 5 秒上报
state主题
5. 云端双向通信验证
- 设备页 发送命令 → 输入
Hello There!→ 设备串口收到并打印 - 配置与状态历史 标签页查看设备上报的 Base64 数据,切换到 Text 模式可读明文(如
hello 464488,数值为millis())
注意事项
- ATECC508A/608A 锁定后不可逆,请确认再操作
- JWT 有效期默认 20 分钟,固件会自动刷新
- 蜂窝网络质量影响重连速度,建议加看门狗复位
- 本教程基于 2021 年版库,最新版请参考 官方示例仓库
制造工艺
- 树莓派 3 接 DHT11 传感器上传数据到 ThingsIo.ai 云平台
- Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
- 树莓派 3 Model B+ 安装 Windows 10 IoT Core 完整步骤指南
- 在树莓派 2 上用 Windows 10 IoT Core 构建语音控制机器人
- 用 Segger J-Link 调试 Arduino Portenta H7 双核系统
- Arduino Mega 拍照自动上传 Google Drive:PHPoC WiFi Shield 方案
- 基于 Arduino 与 MAX30100 的实时物联网心率监测系统
- Arduino Cloud 传感器塔:温度、动作与气体监测
- 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
- Azure IoT智能游泳池监控系统:温度感知与远程控制
- ADLINK 与 Google Cloud 合作交付无缝物联网解决方案
- 掌握物联网网关:无缝连接设备与云端的核心枢纽