将 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 中心

  1. 登录到 Azure 门户
  2. 选择“创建资源” > “物联网” > “IoT 中心”。

    屏幕截图显示 Azure 门户到 IoT 中心的导航

  3. 在“IoT 中心”窗格中,输入 IoT 中心的以下信息:

    • 订阅:选择需要将其用于创建此 IoT 中心的订阅。

    • 资源组:创建用于托管 IoT 中心的资源组,或使用现有的资源组。 有关详细信息,请参阅使用资源组管理 Azure 资源

    • 区域:选择最近的位置。

    • 名称:创建 IoT 中心的名称。 如果输入的名称可用,会显示一个绿色复选标记。

    Important

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

    IoT 中心基本信息窗口

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

  5. 选择“定价和缩放层”。 就本文来说,请选择“F1 - 免费”层(前提是此层在订阅上仍然可用)。 有关详细信息,请参阅定价和缩放层

    IoT 中心大小和规模窗口

  6. 选择“查看 + 创建”。

  7. 查看 IoT 中心信息,然后单击“创建”。 创建 IoT 中心可能需要数分钟的时间。 可在“通知”窗格中监视进度。

创建 IoT 中心以后,即可找到将设备和应用程序连接到 IoT 中心时需要使用的重要信息。

在 IoT 中心导航菜单中,打开“共享访问策略”。 选择“iothubowner”策略,然后复制 IoT 中心的“连接字符串---主密钥”。 有关详细信息,请参阅控制对 IoT 中心的访问

Note

此设置教程不需要此 iothubowner 连接字符串。 不过,在完成此设置以后,可能需要将其用于某些介绍其他 IoT 方案的教程。

获取 IoT 中心连接字符串

在 IoT 中心为设备进行设备注册

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

    在 IoT 中心的“IoT 设备”中添加设备

  2. 输入新设备的“设备 ID”。 设备 ID 区分大小写。

    Important

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

  3. 单击“保存” 。

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

    获取设备连接字符串

将 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 的包:

  1. 打开存储示例应用程序的文件夹。
  2. 在 Visual Studio Code 中打开 app 文件夹中的 app.ino 文件。

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

  3. 在 Visual Studio Code 中,输入 F1

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

    VS Code Arduino 开发板管理器

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

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

    在 VS Code 中配置 Arduino 包 URL

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

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

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

    已安装 esp8266 包

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

  11. 单击“所选开发板:”旁边的框,键入“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 方案,请参阅以下文章: