美文网首页我爱编程
使用微软 Azure IoT 开发者套件开发一个温湿度读取器

使用微软 Azure IoT 开发者套件开发一个温湿度读取器

作者: 还闹不闹 | 来源:发表于2017-04-07 16:47 被阅读107次

    这篇文章将帮你使用 Azure IoT 套件(树莓派 Pi2 和 Pi3)来熟悉 Azure IoT 的开发。这里主要演示如何通过开发者套件连接 Azure IoT 套件中的远程监视预配置解决方案。

    如果你以前没有使用过 Azure IoT 服务,我们鼓励你从远程监视预配置解决方案入手,所有相关的 Azure 服务将会在这个预配置方案中得到部署。

    接下来的演练将使用开发者套件(针对 Pi2 和 Pi3)开发一个温湿度读取器,在 Raspbian OS 上运行并通过微软 Azure IoT SDK 进行云端通讯。针对 Windows 10 IoT Core 的样例,请参考windowsondevices.com.

    概览

    在本文中,你将会:

    在 Azure IoT 远程监视预配置解决方案中配置环境

    配置设备和传感器以便它能够连接到你的计算机和 Azure IoT 服务

    更新连接信息到设备端的样例代码中,并将数据发送给 Azure IoT 端进行远程查看

    开始前准备

    必要的软件

    一个 SSH 客户端。它能够让你通过电脑远程访问树莓派命令行

    Windows 没有自带的 SSH 客户端,推荐使用PuTTY.

    许多 Linux 发行版和 Mac OS 都带有 SSH 命令行,如果你没有,推荐使用 OpenSSH.

    可参考:在 Linxu 或 Mac OS 上使用 SSH

    必要的硬件

    微软 Azure IoT 开发者套件

    8GB 的闪存卡(套件自带,已刷入 Windows 10 IoT Core)

    一个 USB mini 线

    以太网线或 Wi-Fi 网络

    创建新的 Azure IoT 远程监视预配置解决方案并添加设备

    使用微软账号登陆到Azure IoT Suite网站,并点击创建新的解决方案.

    注意:创建账号是免费的。点击这里获取免费体验。

    点击远程监视选项

    输入一个解决方案名称。本教程使用“PiSuite”这个名字。

    注意:请复制名称和连接字符串到文本文件,为下一步引用做准备。

    选择你的订阅和方案部署的区域,然后点击创建解决方案。

    等待 Azure 创建和部署你的 IoT 方案(这个过程大约需要 10 分钟),然后点击启动。

    注意:你也许会被要求重新登录。这是为了确保你的账号拥有合适的访问权限。

    打开解决方案的“仪表板”,你可能已经被重定向到这里了。

    这里打开的远程监视预配置方案的网址为<你的解决方案名称>.azurewebsites.net(例如:PiSuite.azurewebsites.net)

    在屏幕的左下角点击添加设备。

    输入你想要的设备 ID,这里我们将使用“PaspPi”,然后点击创建。

    记下你的设备 ID, 设备 Key 和 IoT Hub 的 Hostname,这些内容将会在代码中使用。

    警告:远程监视预配置解决方案将会使用你的 Azure 账号创建一组 Azure IoT 服务。这意味着将会有一个真实的企业级架构方案被创建并且它在 Azure 上的开销将会很大。为了避免不必要的 Azure 使用开销,我们建议你一旦完成演练(因为它非常容易被再次创建)就在 azureiotsuite.cn 上删掉预配置方案。或者,如果你希望保留它,你可以通过下面的方式减少它的开销:

    查看向导来使解决方案运行在演示模式下来减少 Azure 上的开销。

    禁用解决方案创建的模拟设备(在设备栏目中,选择设备,并在右侧的设备详情菜单中点击禁用设备。对所有的模拟设备重复该步骤)

    准备设备

    如果这是你第一次使用树莓派,那么是时候去设置它了。如果你想使用 Windows,请访问http://www.windowsondevices.com/查看更多的指导如何使用树莓派。如果你正在使用 Linux,树莓派和 Adafruit 有一系列的入门教程和视频。

    请访问下面的链接:

    树莓派 NOOBS 设置网页

    使用这张图片作为参考,连接你的 BME280 传感器到面包板和树莓派。

    注意:

    | Pi Pin     | 终点| 线路颜色|

    |:————:|:————-:|:———-:|

    | SPI_CE0 (Pin 24) |  CS (Pin 21A) | 蓝色      |

    | SPI_SCLK (Pin 23) |  SCK (18A) | 黄色      |

    | SPI_MISO (Pin 21) |  SDO (19A ) | 白色      |

    | SPI_MOSI (Pin 19) |  SDI (Pin 20A) | 绿色      |

    | GND (Pin 6) |  GND (Pin 17A) |   黑色    |

    | 3.3V (Pin 1) |  3Vo (Pin 16A) | 红色      |

    关于树莓派 GPIO 的更多参考请访问:https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/。

    最后,你的树莓派应该与一个工作中的传感器连接好了。

    登录并访问终端

    默认的树莓派用户名是 pi,密码是 raspberry. 如果你直接使用 Raspbian 的界面,在任务条顶部,你可以使用从左侧数第三个图片启动终端(类似显示器的图标)

    通过 PuTTY 登录

    在使用 PuTTY 之前,你需要找到树莓派的 IP 地址。在命令行窗口输入 hostname –I 并找到 IP。更多信息可参考:

    https://www.raspb[链接内容](https://www.raspberrypi.org/documentation/remote-access/ip-address.md)errypi.org/documentation/remote-access/ip-address.md

    在树莓派运行的时候,在你的电脑上打开 SSH 终端程序(例如 PuTTY)

    使用上一步获取到的 IP 地址作为主机名,端口号 22,连接方式为 SSH 来进行连接。

    默认的用户名为 pi,密码是 raspberry.

    使用 Linux 或 Mac OS 登录

    参考:SSH Using Linux or Mac OS

    配置远程监视设备样例代码

    现在我们可以下载远程监视样例代码了,然后输入你的设备证书(也就是“连接字符串”)并从树莓派发送数据到 Azure 远程监视解决方案。

    复制代码库

    复制下面的代码库,并通过下面的命令在树莓派上合并它们:

    cd ~

    git clone --recursive https://github.com/Azure-Samples/iot-hub-c-raspberrypi-getstartedkit.git

    git clone --recursive https://github.com/WiringPi/WiringPi.git

    然后,我们需要更新设备连接字符串

    更新连接字符串

    通过下面的命令编辑文件:

    nano ~/iot-hub-c-raspberrypi-getstartedkit/samples/remote_monitoring/remote_monitoring.c

    使用箭头键来导航到下面的行:

    static const char* deviceId = "[Device Id]";

    static const char* deviceKey = "[Device Key]";

    static const char* hubName = "[IoTHub Name]";

    static const char* hubSuffix = "[IoTHub Suffix, i.e. azure-devices.net]";

    用你在教程一开始的时候创建的设备和 IoT Hub 的信息替换占位符。例如:

    device Id →  RaspPi

    device Key →  < azure 设备 key,结尾有⇒

    IoTHub Name →  PiSuite

    IoTHub 后缀 →  azure-devices.net

    使用Control-o, Enter, Control-x保存和退出

    编译修改过的样例代码

    现在你已经退出了 Nano, 使用下面的命令安装必要的微软 Azure IoT Device SDK for C 程序包(可以直接在设备上运行或者通过 SSH 客户端如 PuTTY 运行)

    sudo apt-get update

    sudo apt-get install curl libcurl4-openssl-dev uuid-dev uuid g++ make cmake git unzip openjdk-7-jre libssl-dev libncurses-dev subversion gawk

    使用下面的命令继续编译样例代码

    cd ~/iot-hub-c-raspberrypi-getstartedkit/

    sudo ~/iot-hub-c-raspberrypi-getstartedkit/azure-iot-sdks/c/build_all/linux/setup.sh

    chmod +x ~/iot-hub-c-raspberrypi-getstartedkit/samples/build.sh

    ~/iot-hub-c-raspberrypi-getstartedkit/samples/build.sh

    在运行程序之前,我们需要激活 SPI 驱动

    sudo nano /boot/config.txt

    滚动并找到这一行:

    #dtparam=spi=on

    删除前面的 #

    使用Control-o, Enter, Control-x保存和退出

    重新启动树莓派来激活 SPI,这会使终端退出。你需要再次登录。运行命令:

    sudo reboot

    现在所有的事情都做完了,是时候启动程序了,运行命令:

    sudo ~/cmake/samples/remote_monitoring/remote_monitoring

    如果一切顺利的话,你将能够看到数据流!按下Ctrl+C随时退出程序。下面是一个运行中的脚本输出样例:

    Humidity = 48.4% Temperature = 23.9*C

    Sending sensor value Temperature = 23.9*C, Humidity = 48.4%

    IoTHubClient accepted the message for delivery

    通过 IoT 套件门户查看传感器数据

    一旦样本程序开始运行,通过 azureiotsuite.cn 并点击启动你的解决方案,并访问你的仪表板。

    确保右上角显示的设备栏中是你的树莓派。

    如果程序正在运行,你应该可以看到图表随着数据的更新在实时变化。

    注意:一旦你完成了演练确保你删除或停止你的远程监视解决方案以避免不必要的 Azure 开销。

    相关文章

      网友评论

        本文标题:使用微软 Azure IoT 开发者套件开发一个温湿度读取器

        本文链接:https://www.haomeiwen.com/subject/upihattx.html