将 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 中心的名称。 如果输入的名称有效,则显示一个绿色复选标记。

    Important

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

    • 定价和缩放级别:对于本教程,请选择F1 - 免费级别。 有关详细信息,请参阅定价和缩放层

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

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

    • 固定仪表板:选中此选项可以方便地从仪表板访问 IoT 中心。

      IoT 中心窗口

  4. 单击“创建”。 创建 IoT 中心可能需要数分钟的时间。 可在“通知”窗格中监视进度。

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

  1. 创建 IoT 中心后,请在仪表板中单击它。 记下“主机名”,并单击“共享访问策略”。

    获取 IoT 中心的主机名

  2. 在“共享访问策略”窗格中单击“iothubowner”策略,并复制并记下 IoT 中心的连接字符串。 有关详细信息,请参阅控制对 IoT 中心的访问

Note

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

获取 IoT 中心连接字符串

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

  1. Azure 门户中打开 IoT 中心。
  2. 单击“设备资源管理器”。
  3. 在“设备资源管理器”窗格中,单击“添加”将设备添加到 IoT 中心。 然后执行以下操作:

    设备 ID:输入新设备的 ID。 设备 ID 区分大小写。

    身份验证类型:选择“对称密钥”。

    自动生成密钥:选中此复选框。

    将设备连接到 IoT 中心:单击“启用”。

    在 IoT 中心的设备资源管理器中添加设备

    Important

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

  4. 单击“保存” 。

  5. 创建设备后,在“设备资源管理器”窗格中打开设备。
  6. 记下连接字符串的主密钥。

    获取设备连接字符串

将 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 方案,请参阅以下文章: