亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

安全连接 Arduino MKR NB 1500 到 Azure IoT Hub 完整指南

所需组件与材料

组件数量备注
Arduino MKR NB 15001内置 ATECC508A/ATECC608A 加密芯片
Micro-USB 数据线1用于供电和编程
3.7V 锂电池1连接到 JST 接口
Micro SIM 卡1需激活 NB-IoT 服务

所需软件与在线服务

项目概述

本教程详细介绍如何使用 X.509 证书通过 MQTT 协议将 Arduino MKR NB 1500 安全连接到 Azure IoT Hub。MKR NB 1500 内置 Microchip ATECC508A 或 ATECC608A 加密元件,可在硬件层面安全生成和存储 256 位 ECC 私钥,私钥永不离开设备,确保最高级别的安全性。

软硬件环境准备

1. 安装 Arduino IDE 与板卡包

下载安装最新版 Arduino IDE。打开 工具 → 开发板: "..." → 开发板管理器...,搜索 "Arduino SAMD" 并安装最新版本(撰写时为 1.6.20)。

2. 安装必要库

通过 草图 → 包含库 → 管理库... 安装以下库:

3. 硬件连接

  1. 将 Micro SIM 卡插入板底卡槽
  2. 将 3.7V 锂电池连接到 JST 接口
  3. 用 Micro-USB 线连接板卡到电脑
  4. 在 IDE 中选择正确的串口和 "Arduino MKR NB 1500" 开发板

配置并添加设备到 Azure IoT Hub

1. 生成自签名 X.509 证书

打开示例:文件 → 示例 → ArduinoECCX08 → Tools → ECCX08SelfSignedCert,上传到开发板并打开串口监视器(设置换行为 "Both NL & CR")。

首次运行会提示永久配置并锁定加密元件(不可逆操作),配置后可使用 5 个私钥槽位(0-4),私钥可随时重新生成。按提示输入证书生效年月日时及有效期(年)。使用槽位 0 存储签名私钥,槽位 8 存储证书签名及有效期。

复制生成的 SHA1 指纹(如 99d6d96fa55bdf08b4040a142a8d0d934bc9d12b),后续在 Azure 中需用到。

2. 创建 Azure IoT Hub 与设备

  1. 登录 Azure 门户,创建或登录账户
  2. 点击 "创建资源" → "物联网" → "IoT 中心"
  3. 填写订阅、资源组、区域、IoT 中心名称,点击 "查看 + 创建" → "创建"
  4. 等待部署完成,点击 "转到资源"
  5. 左侧 "探索" 下选择 "IoT 设备",点击 "添加"
  6. 输入设备 ID(如 MyMKRNB1500),选择 "X.509 自签名" 选项卡
  7. 将 SHA1 指纹分别粘贴到 "主指纹" 和 "辅助指纹",点击 "保存"

连接开发板到 Azure IoT Hub

  1. 打开示例:文件 → 示例 → Arduino Cloud Provider Examples → AzureIoTHub → Azure_IoT_Hub_NB
  2. 在 arduino_secrets.h 标签页填入 SIM 卡 PIN 码(如无留空)
  3. 修改 SECRET_BROKER 为你的 IoT Hub 主机名:<中心名称>.azure-devices.net
  4. 修改 SECRET_DEVICE_ID 为 Azure 中创建的设备 ID
  5. 上传代码,打开串口监视器观察连接过程

在 Azure IoT Hub 与设备交互

发送消息到设备

  1. 在 Azure 门户的 IoT 设备列表中点击你的设备
  2. 点击工具栏 "发送消息到设备"
  3. 输入消息内容(如 "Hello there :)"),点击发送
  4. Arduino IDE 串口监视器将显示接收到的消息

查看设备发送的遥测数据

  1. 登录 Azure Cloud Shell(首选 Bash)
  2. 安装 IoT 扩展:az extension add --name azure-cli-iot-ext
  3. 运行监控命令:az iot hub monitor-events --hub-name <你的中心名称>
  4. 终端将实时显示设备上报的消息(默认每 5 秒一条)

总结

本教程演示了利用 MKR NB 1500 板载加密芯片生成自签名 X.509 证书,通过 MQTT over TLS 安全接入 Azure IoT Hub 的完整流程。私钥始终安全存储在硬件加密元件中,永不暴露。成功连接后,可实现云端下发指令与设备上报遥测的双向通信,为进一步集成 Azure Functions、Stream Analytics、Time Series Insights 等服务奠定基础。

源代码仓库

GitHub - ArduinoCloudProviderExamples

制造工艺

  1. 树莓派 3 接 DHT11 传感器上传数据到 ThingsIo.ai 云平台
  2. 构建 GPS 数据记录器:结合 Azure IoT Hub 实现空间分析
  3. 基于 Arduino 与 MAX30100 的实时物联网心率监测系统
  4. 基于 Arduino MKR1000 与 ThingSpeak 的远程 IoT 机械臂控制系统
  5. 物联网双轴太阳能跟踪器:基于 Arduino 与 Cayenne 的智能能源管理
  6. 基于 Arduino、Yaler 与 IFTTT 构建 Web 化 IoT 仪表盘
  7. Azure IoT智能游泳池监控系统:温度感知与远程控制
  8. 无需编程:用 Arduino 和 Octoblu Tentacle 构建 IoT 设备
  9. Arduino 发布 Portenta H7:CES 首秀工业级 IoT 开发板
  10. Azure RTOS扩展主流嵌入式平台,新增开发套件支持
  11. 物联网与 5G 如何重塑现代职场
  12. Azure对决AWS:哪个云平台更胜物联网?