将 Adafruit Feather HUZZAH ESP8266 连接到云中的 Azure IoT 中心

DHT22、Feather HUZZAH ESP8266 与 IoT 中心之间的连接

准备工作

将 Adafruit Feather HUZZAH ESP8266 连接到创建的 Azure IoT 中心。 然后,在 ESP8266 上运行一个示例应用程序,用于从 DHT22 传感器收集温度和湿度数据。 最后,将传感器数据发送到 IoT 中心。

Note

如果使用其他 ESP8266 开发板,仍可使用这些步骤将其连接到 IoT 中心。 根据所用的 ESP8266 开发板,可能需要重新配置 LED_PIN。 例如,如果使用 AI-Thinker 提供的 ESP8266,可将此参数从 0 更改为 2。 还没有工具包? 从 Azure 网站获取。

学习内容

  • 如何创建 IoT 中心以及注册 Feather HUZZAH ESP8266 的设备
  • 如何将 Feather HUZZAH ESP8266 与传感器和计算机相连接
  • 如何在 Feather HUZZAH ESP8266 上运行示例应用程序来收集传感器数据
  • 如何将传感器数据发送到 IoT 中心

需要什么

本教程所需的部件

若要完成此操作,需要使用 Feather HUZZAH ESP8266 初学者工具包中的以下部件:

  • Feather HUZZAH ESP8266 开发板。
  • Micro USB 转 Type A USB 线缆。

还需要为开发环境做好以下准备:

Note

适用于 Arduino 的 Visual Studio Code 扩展使用的 Arduino IDE 版本必须是 1.6.8 或更高版本。 早期版本不适用于 AzureIoT 库。

如果没有传感器,以下各项是可选的。 也可以使用模拟的传感器数据。

  • Adafruit DHT22 温度和湿度传感器
  • 试验板
  • M/M 跳线

创建 IoT 中心

此部分介绍如何使用 Azure 门户创建 IoT 中心。

  1. 登录到 Azure 门户

  2. 选择+“创建资源”,然后选择“物联网”。

  3. 在右侧列表中单击“Iot 中心”。 随即显示 IoT 中心创建过程的第一个屏幕。

    显示了在 Azure 门户中创建中心的屏幕截图

    填充字段。

    订阅:请选择要用于 IoT 中心的订阅。

    资源组:可创建新的资源组或使用现有资源组。 若要新建一个,请单击“新建”,并填写要使用的名称。 若要使用现有资源组,请单击“使用现有资源组”并从下拉列表中选择该组。 有关详细信息,请参阅使用资源组管理 Azure 资源

    区域:这是要在其中设置中心的区域。 从下拉列表中选择最靠近自己的位置。

    IoT 中心名称:输入 IoT 中心的名称。 此名称必须全局唯一。 如果输入的名称可用,会显示一个绿色复选标记。

    Important

    IoT 中心将公开为 DNS 终结点,因此,命名时请务必避免包含任何敏感信息。

  4. 单击“下一步: 大小和规模”,以便继续创建 IoT 中心。

    屏幕截图显示使用 Azure 门户为新的 IoT 中心设置大小和缩放级别

    在此屏幕上,可以采用默认值,只需在底部单击“查看+创建”即可。

    定价和缩放层级:可以根据需要的功能数以及每天通过解决方案发送的消息数从多个层中进行选择。 免费层适用于测试和评估。 它允许 500 台设备连接到 IoT 中心,并且每天最多传输 8,000 条信息。 每个 Azure 订阅可以在免费层中创建一个 IoT 中心。

    IoT 中心单位:每日每单位允许的消息数取决于中心的定价层。 例如,如果希望 IoT 中心支持 700,000 条消息输入,则选择两个 S1 层单位。

    有关其他层选项的详细信息,请参阅选择合适的 IoT 中心层

    高级/设备到云的分区:此属性将设备到云消息与这些消息的同步读取器数目相关联。 大多数 IoT 中心只需要 4 个分区。

  5. 单击“查看+创建”可查看选择。 会显示类似于以下的屏幕。

    屏幕截图显示用于创建新 IoT 中心的信息

  6. 单击“创建”以创建新的 IoT 中心。 创建中心需要几分钟时间。

检索 IoT 中心的连接字符串

创建中心以后,请检索中心的连接字符串。 该字符串用于将设备和应用程序连接到中心。

  1. 单击中心,查看“IoT 中心”窗格,其中包含“设置”等内容。 单击“共享访问策略”。

  2. 在“共享访问策略”中,选择 iothubowner 策略。

  3. 在“共享访问密钥”下,复制“连接字符串 -- 主密钥”供以后使用。

    显示如何检索连接字符串

    有关详细信息,请参阅“IoT 中心开发人员指南”中的访问控制

在 IoT 中心内注册新设备

本部分在 IoT 中心的标识注册表中创建设备标识。 设备无法连接到 IoT 中心,除非它在标识注册表中具有条目。 有关详细信息,请参阅 IoT 中心开发人员指南的“标识注册表”部分

  1. 在 IoT 中心导航菜单中,打开“IoT 设备”,然后单击“添加”,在 IoT 中心注册新设备。

    在门户中创建设备标识

  2. 提供新设备的名称(例如 myDeviceId),然后单击“保存”。 此操作会为 IoT 中心创建新设备标识。

    添加新设备

    Important

    收集的日志中可能会显示设备 ID 用于客户支持和故障排除,因此,在为日志命名时,请务必避免包含任何敏感信息。

  3. 创建设备后,在“IoT 设备”窗格的列表中打开该设备。 复制“连接字符串 ---主密钥”供以后使用。

    设备连接字符串

Note

IoT 中心标识注册表仅存储用于实现 IoT 中心安全访问的设备标识。 它存储设备 ID 和密钥作为安全凭据,以及启用/禁用标志让你禁用对单个设备的访问。 如果应用程序需要存储其他特定于设备的元数据,则应使用特定于应用程序的存储。 有关详细信息,请参阅 IoT 中心开发人员指南

将 Feather HUZZAH ESP8266 与传感器和计算机相连接

在此部分中,将传感器连接到开发板。 然后,将设备插入计算机以供进一步使用。

将 DHT22 温度和湿度传感器连接到 Feather HUZZAH ESP8266

按如下所示,使用试验板和跳线建立连接。 如果没有传感器,请跳过本部分,因为可以改用模拟的传感器数据。

连接参考

对于传感器引脚,请使用以下接线:

启动(传感器) 结束(开发板) 线缆颜色
VDD(引脚 31F) 3V(引脚 58H) 红线
DATA(引脚 32F) GPIO 2(引脚 46A) 蓝线
GND(引脚 34F) GND(引脚 56I) 黑线

有关详细信息,请参阅 Adafruit DHT22 传感器设置Adafruit Feather HUZZAH Esp8266 引出线

现在,Feather Huzzah ESP8266 应已连接到正常工作的传感器。

将 dht22 与 Feather huzzah 相连接

将 Feather HUZZAH ESP8266 连接到计算机

按如下所示,使用 Micro USB 转 Type A USB 线缆将 Feather HUZZAH ESP8266 连接到计算机。

将 feather huzzah 连接到计算机

添加串行端口权限(仅适用于 Ubuntu)

如果使用 Ubuntu,请确保有权在 Feather HUZZAH ESP8266 的 USB 端口上操作。 若要添加串行端口权限,请执行以下步骤:

  1. 在终端中运行以下命令:

    ls -l /dev/ttyUSB*
    ls -l /dev/ttyACM*
    

    返回以下输出之一:

    • crw-rw---- 1 root uucp xxxxxxxx
    • crw-rw---- 1 root dialout xxxxxxxx

    请注意,在输出中,uucpdialout 是 USB 端口的组所有者名称。

  2. 运行以下命令,将用户添加到该组中:

    sudo usermod -a -G <group-owner-name> <username>
    

    <group-owner-name> 是在上一步骤中获取的组所有者名称。 <username> 是 Ubuntu 用户名。

  3. 需要注销 Ubuntu,并重新登录,更改才会显示。

收集传感器数据并将其发送到 IoT 中心

在本部分,你会在 Feather HUZZAH ESP8266 上部署并运行一个示例应用程序。 该示例应用程序会使 Feather HUZZAH ESP8266 上的 LED 闪烁,并将从 DHT22 传感器收集的温度和湿度数据发送到 IoT 中心。

从 GitHub 获取示例应用程序

该示例应用程序托管在 GitHub 中。 从 GitHub 中克隆包含该示例应用程序的示例存储库。 若要克隆示例存储库,请执行以下步骤:

  1. 打开命令提示符或终端窗口。
  2. 转到用于存储示例应用程序的文件夹。
  3. 运行以下命令:

    git clone https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app.git
    

    接下来,在 Visual Studio Code 中安装 Feather HUZZAH ESP8266 的包。

  4. 打开存储示例应用程序的文件夹。

  5. 在 Visual Studio Code 中打开 app 文件夹中的 app.ino 文件。

    在 Visual Studio Code 中打开示例应用程序

  6. 在 Visual Studio Code 中,输入 F1

  7. 键入“Arduino”并选择“Arduino: 开发板管理器”。
  8. 在“Arduino 开发板管理器”选项卡中,单击“其他 URL”。

    VS Code Arduino 开发板管理器

  9. 在“用户设置”窗口,在文件末尾复制并粘贴以下内容

    "arduino.additionalUrls": "http://arduino.esp8266.com/stable/package_esp8266com_index.json"

    在 VS Code 中配置 Arduino 包 URL

  10. 保存文件并关闭“用户设置”选项卡。

  11. 单击“刷新包索引”。 完成刷新后,搜索 esp8266。
  12. 单击 esp8266 的“安装”按钮。

    Boards Manager 指示 ESP8266 安装了版本 2.2.0 或更高版本。

    已安装 esp8266 包

  13. 输入 F1,然后键入“Arduino”,选择“Arduino: 开发板配置”。

  14. 单击“所选开发板:”旁边的框,键入“esp8266”,然后选择“Adafruit HUZZAH ESP8266 (esp8266)”。

    选择 esp8266 开发板

安装所需的库

  1. 在 Visual Studio Code 中,输入 F1,然后键入“Arduino”并选择“Arduino: 库管理员”。
  2. 逐个搜索以下库名称。 对于找到的每个库,单击“安装”。
    • AzureIoTHub
    • AzureIoTUtility
    • AzureIoTProtocol_MQTT
    • ArduinoJson
    • DHT sensor library
    • Adafruit Unified Sensor

没有真正的 DHT22 传感器?

如果没有真正的 DHT22 传感器,示例应用程序可以模拟温度和湿度数据。 若要设置示例应用程序以使用模拟的数据,请执行以下步骤:

  1. 打开 app 文件夹中的 config.h 文件。
  2. 找到以下代码行并将值从 false 更改为 true

    define SIMULATED_DATA true
    

    将示例应用程序配置为使用模拟数据

  3. 保存文件。

将示例应用程序部署到 Feather HUZZAH ESP8266

  1. 在 Visual Studio Code 中,单击状态栏的
  2. 输入 F1,然后键入“Arduino”并选择“Arduino: 上传”以生成示例应用程序并将其部署到 Feather HUZZAH ESP8266。

输入凭据

上传成功完成后,按照以下步骤输入凭据:

  1. 打开 Arduino IDE,单击“工具” > “串行监视器”。
  2. 在串行监视器窗口的右下角,可以看到两个下拉列表。
  3. 在左侧下拉列表中选择“No line ending”(无行尾)。
  4. 在右侧下拉列表中选择“115200 baud”(115200 波特率)。
  5. 在串行监视器窗口顶部的输入框中输入以下信息(如果系统要求提供),并单击“Send”(发送)。
    • Wi-Fi SSID
    • Wi-Fi 密码
    • 设备连接字符串

Note

凭据信息存储在 Feather HUZZAH ESP8266 的 EEPROM 中。 如果在 Feather HUZZAH ESP8266 开发板上单击重置按钮,示例应用程序将询问是否要擦除这些信息。 输入 Y 以擦除这些信息。 按提示再次提供这些信息。

验证示例应用程序是否成功运行

如果串行监视器窗口中显示以下输出并且 Feather HUZZAH ESP8266 上的 LED 闪烁,则表示示例应用程序已成功运行。

Arduino IDE 中的最终输出

后续步骤

现已成功将 Feather HUZZAH ESP8266 连接到 IoT 中心,并将捕获的传感器数据发送到了 IoT 中心。

若要继续了解 Azure IoT 中心入门知识并浏览其他 IoT 方案,请参阅以下文章: