将 Raspberry Pi 连接到 Azure IoT 中心 (C)
- Raspberry Pi Web 模拟器
- 使用 .NET 的模拟设备
- 使用 Java 的模拟设备
- 使用 Node.js 的模拟设备
- 将 IoT DevKit AZ3166 与 VS Code 配合使用
- 将 Raspberry Pi 与 Node.js 配合使用
- 将 Raspberry Pi 与 Python 配合使用
- 将 Raspberry Pi 与 C 配合使用
- 将 Intel Edison 与 Node.js 配合使用
- 将 Intel Edison 与 C 配合使用
- 将 Adafruit Feather HUZZAH ESP8266 与 Arduino IDE 配合使用
- 将 Sparkfun ESP8266 Thing Dev 与 Arduino IDE 配合使用
- 将 Adafruit Feather M0 与 Arduino IDE 配合使用
在本教程中,首先学习有关使用运行 Raspbian 的 Raspberry Pi 的基础知识。 然后学习如何使用 Azure IoT 中心将设备无缝连接到云。 有关 Windows 10 IoT Core 的示例,请访问 Windows 开发人员中心。 还没有工具包? 试用 Raspberry Pi 联机模拟器。 或在此处购买新工具包。
准备工作
- 创建 IoT 中心。
- 在 IoT 中心内为 Pi 注册设备。
- 设置 Raspberry Pi。
- 在 Pi 上运行示例应用程序,以将传感器数据发送到 IoT 中心。
将 Raspberry Pi 连接到所创建的 IoT 中心。 然后,在 Pi 上运行示例应用程序,从 BME280 传感器收集温度和湿度数据。 最后,将传感器数据发送到 IoT 中心。
学习内容
- 如何创建 Azure IoT 中心以及如何获取新的设备连接字符串。
- 如何通过 BME280 传感器连接 Pi。
- 如何通过在 Pi 上运行示例应用程序来收集传感器数据。
- 如何将传感器数据发送到 IoT 中心。
需要什么
- Raspberry Pi 2 或 Raspberry Pi 3 电路板。
- 一个有效的 Azure 订阅。 如果没有 Azure 帐户,只需几分钟时间就能创建一个 Azure 试用帐户。
- 连接到 Pi 的监视器、USB 键盘和鼠标。
- 运行 Windows 或 Linux 的 Mac 或电脑。
- Internet 连接。
- 16 GB 或更大容量的 microSD 卡。
- USB-SD 适配器或 microSD 卡,用于将操作系统映像刻录到 microSD 卡中。
- 带有 6 英尺微型 USB 电缆的 5 伏 2 安电源。
以下项可选:
- 已装配的 Adafruit BME280 温度、压力和湿度传感器。
- 试验板。
- 6 根 F/M 跳线。
- 散射的 10 毫米 LED 灯。
Note
上述项为可选项,因为代码示例支持模拟的传感器数据。
创建 IoT 中心
- 登录到 Azure 门户。
选择“创建资源” > “物联网” > “IoT 中心”。
在“IoT 中心”窗格中,输入 IoT 中心的以下信息:
- 名称:创建 IoT 中心的名称。 如果输入的名称有效,则显示一个绿色复选标记。
Important
IoT 中心将公开为 DNS 终结点,因此,命名时请务必避免包含任何敏感信息。
定价和缩放级别:对于本教程,请选择F1 - 免费级别。 有关详细信息,请参阅定价和缩放层。
资源组:创建用于托管 IoT 中心的资源组,或使用现有的资源组。 有关详细信息,请参阅使用资源组管理 Azure 资源
位置:选择最近的位置。
固定仪表板:选中此选项可以方便地从仪表板访问 IoT 中心。
单击“创建”。 创建 IoT 中心可能需要数分钟的时间。 可在“通知”窗格中监视进度。
创建 IoT 中心以后,即可找到将设备和应用程序连接到 IoT 中心时需要使用的重要信息。
创建 IoT 中心后,请在仪表板中单击它。 记下“主机名”,并单击“共享访问策略”。
在“共享访问策略”窗格中单击“iothubowner”策略,并复制并记下 IoT 中心的连接字符串。 有关详细信息,请参阅控制对 IoT 中心的访问。
Note
此设置教程不需要此 iothubowner 连接字符串。 不过,在完成此设置以后,可能需要将其用于某些讲述其他 IoT 方案的教程。
在 IoT 中心为设备进行设备注册
- 在 Azure 门户中打开 IoT 中心。
- 单击“设备资源管理器”。
在“设备资源管理器”窗格中,单击“添加”将设备添加到 IoT 中心。 然后执行以下操作:
设备 ID:输入新设备的 ID。 设备 ID 区分大小写。
身份验证类型:选择“对称密钥”。
自动生成密钥:选中此复选框。
将设备连接到 IoT 中心:单击“启用”。
Important
收集的日志中可能会显示设备 ID 用于客户支持和故障排除,因此,在为日志命名时,请务必避免包含任何敏感信息。
单击“保存” 。
- 创建设备后,在“设备资源管理器”窗格中打开设备。
记下连接字符串的主密钥。
设置 Raspberry Pi
为 Pi 安装 Raspbian 操作系统
准备用于安装 Raspbian 映像的 microSD 卡。
- 下载 Raspbian。
- 下载 Raspbian Jessie with Desktop(.zip 文件)。
- 将 Raspbian 映像提取到计算机上的一个文件夹中。
- 将 Raspbian 安装到 microSD 卡。
- 下载并安装 Etcher SD 卡刻录机实用工具。
- 运行 Etcher 并选择已在步骤 1 中解压缩的 Raspbian 映像。
- 选择 microSD 卡驱动器。 注意,Etcher 可能已选择了正确的驱动器。
- 单击“刷机”,将 Raspbian 安装到 microSD 卡。
- 在安装完成后,从计算机中移除 microSD 卡。 可以安全地直接取出 microSD 卡,因为 Etcher 会在完成后自动弹出或卸载 microSD 卡。
- 将 microSD 卡插入 Pi。
启用 SSH 和 SPI
- 将 Pi 连接到监视器、键盘和鼠标,启动 Pi,然后通过将
pi
用作用户名并将raspberry
用作密码来登录 Raspbian。 依次单击 Raspberry 图标 >“首选项” > “Raspberry Pi 配置”。
在“接口”选项卡上,将“SPI”和“SSH”设置为“启用”,然后单击“确定”。 如果没有物理传感器,但希望使用模拟传感器数据,可选择执行此步骤。
Note
若要启用 SSH 和 SPI,可在 raspberrypi.org 和 RASPI-CONFIG 中找到更多参考文档。
将传感器连接到 Pi
使用试验板和跳线,将 LED 灯和 BME280 连接到 Pi,如下所示。 如果没有该传感器,请跳过此部分。
BME280 传感器可以收集温度和湿度数据。 如果设备和云之间存在通信,LED 将闪烁。
对于传感器引脚,请使用以下接线:
始端(传感器和 LED 灯) | 结束(开发板) | 线缆颜色 |
---|---|---|
LED VDD(引脚 5G) | GPIO 4(引脚 7) | 白线 |
LED GND(引脚 6G) | GND(引脚 6) | 黑线 |
VDD(引脚 18F) | 3.3V 电源(引脚 17) | 白线 |
GND(引脚 20F) | GND(引脚 20) | 黑线 |
SCK(引脚 21F) | SPI0 SCLK(引脚 23) | 橙色电缆 |
SDO(引脚 22F) | SPI0 MISO(引脚 21) | 黄色电缆 |
SDI(引脚 23F) | SPI0 MOSI(引脚 19) | 绿色电缆 |
CS(引脚 24F) | SPI0 CS(引脚 24) | 蓝线 |
单击查看 Raspberry Pi 2 和 3 引脚映射以供参考。
成功将 BME280 连接到 Raspberry Pi 后,它应如下图所示。
将 Pi 连接到网络
使用 USB 微电缆和电源开启 Pi。 使用以太网电缆将 Pi 连接到有线网络,或者按照 Raspberry Pi Foundation 中的说明将 Pi 连接到无线网络。 将 Pi 成功连接到网络后,需要记下 Pi 的 IP 地址。
在 Pi 上运行示例应用程序
登录到 Raspberry Pi
使用主计算机的以下任一 SSH 客户端连接到 Raspberry Pi。
Windows 用户
- 下载并安装 PuTTY for Windows。
- 将 Pi 的 IP 地址复制到主机名(或 IP 地址)部分,并选择 SSH 作为连接类型。
Mac 和 Ubuntu 用户
使用 Ubuntu 或 macOS 上的内置 SSH 客户端。 可能需要运行
ssh pi@<ip address of pi>
,以通过 SSH 连接 Pi。Note
默认用户名是
pi
,密码是raspberry
。
配置示例应用程序
通过运行以下命令,克隆示例应用程序:
sudo apt-get install git-core git clone https://github.com/Azure-Samples/iot-hub-c-raspberrypi-client-app.git
运行安装脚本:
cd ./iot-hub-c-raspberrypi-client-app sudo chmod u+x setup.sh sudo ./setup.sh
Note
如果没有物理 BME280,可使用“--simulated-data”作为命令行参数来模拟温度和湿度数据。
sudo ./setup.sh --simulated-data
生成并运行示例应用程序
通过运行以下命令,生成示例应用程序:
cmake . && make
通过运行以下命令,生成示例应用程序:
sudo ./app '<DEVICE CONNECTION STRING>'
Note
确保将设备连接字符串复制并粘贴到单引号中。
应看到以下输出,其中显示传感器数据以及发送至 IoT 中心的消息。
后续步骤
此时已运行示例应用程序,以收集传感器数据并将其发送到 IoT 中心。 若要查看 Raspberry Pi 已发送到 IoT 中心的消息,或若要在命令行接口中将消息发送到 Raspberry Pi,请参阅使用 iothub-explorer 管理云设备消息传送教程。
若要继续了解 Azure IoT 中心入门知识并浏览其他 IoT 方案,请参阅以下文章: