littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于ESP8266的Azure IoT Hub演示项目

项目简介

本项目演示了如何使用ESP8266微控制器连接到Azure IoT Hub、Cosmos DB和Power BI。ESP8266从DS18B20温度传感器收集数据,并将其发送到Azure IoT Hub,然后存储在Cosmos DB中,最后在Power BI中进行可视化展示。

项目的主要特性和功能

  • ESP8266微控制器:用于数据采集和发送。
  • DS18B20温度传感器:用于收集温度数据。
  • Azure IoT Hub:用于接收并存储数据。
  • Cosmos DB:用于存储从IoT Hub转发过来的数据。
  • Power BI:用于数据的可视化和分析。

安装使用步骤

1. 硬件连接

具体的硬件连接方式依赖于你使用的ESP8266和DS18B20的版本。对于ESP8266 - 1和"DS18B20 outside"版本,连接方式如下: +-------------------+ |DS18b20 | ESP8266| |-------------------| | VCC --- 3,3v | | GND --- GND | | S --- GPIO2 | +-------------------+ 同时,为了供电和烧录程序,建议使用Arduino。

2. 软件安装与配置

  1. 安装Arduino IDE:在计算机上安装最新版本的Arduino IDE。
  2. 安装库:在Arduino IDE库管理器中安装Azure SDK for C和DallasTemperature库及其相关依赖。
  3. 配置连接信息:在Arduino IDE中打开Azure_IoT_Hub_ESP8266示例草图,并在iot_configs.h文件中更新你的连接信息。包括WiFi信息、Azure IoT Hub信息、设备ID和设备密钥等。
  4. 更新数据发送函数:更新getTelemetryPayload()函数,以发送你想要的特定数据到Azure IoT Hub和Azure Cosmos DB。
  5. 创建消息路由:在Azure IoT Hub中创建消息路由,将数据传输到Cosmos DB。在Power BI中登录你的Azure账户,以便连接到Cosmos DB。

3. 常见问题与解决方案

如果在存储数据到Cosmos DB时遇到问题,可以尝试在sendTelemetry()函数的顶部添加以下代码: ```c uint8_t property_buffer[64]; az_span property_span = AZ_SPAN_FROM_BUFFER(property_buffer);

az_iot_message_properties props; az_iot_message_properties_init(&props, property_span, 0);

az_iot_message_properties_append( &props, AZ_SPAN_FROM_STR(AZ_IOT_MESSAGE_PROPERTIES_CONTENT_TYPE), AZ_SPAN_LITERAL_FROM_STR("application%2Fjson")); az_iot_message_properties_append( &props, AZ_SPAN_FROM_STR(AZ_IOT_MESSAGE_PROPERTIES_CONTENT_ENCODING), AZ_SPAN_LITERAL_FROM_STR("utf-8")); ``` 这可以确保数据以JSON utf - 8格式进行存储,而非Base64编码。

许可证

本项目的SDK和示例采用MIT许可证。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】