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

【源码】基于Arduino和Azure的ESP8266遥测数据发送系统

项目简介

本项目致力于解决使用ESP8266向Azure IOT Hub发送遥测数据时面临的问题。基于ESP8266 Arduino SDK(版本2.7.1)和Microsoft相关连接文档,对ESP8266 SDK部分代码进行优化改进,实现了遥测数据向Azure IOT Hub的成功发送。

项目的主要特性和功能

  • 达成ESP8266与Azure IOT Hub的连接,实现遥测数据的发送。
  • 修复官方代码存在的问题,保障项目可顺利编译运行。
  • 支持利用Azure账户接收并控制ESP8266发送的遥测数据。

安装使用步骤

前提条件

  • 安装VS code。
  • 安装最新版Arduino IDE(推荐1.8.13便携版)。
  • 注册Azure账户(可申请一个月免费试用)。
  • 准备ESP8266开发板。

步骤说明

  1. 安装Arduino IDE和ESP8266插件:下载安装最新版Arduino IDE,依据https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/安装ESP8266插件,安装完成后重启Arduino IDE。
  2. 安装必要库文件:打开Arduino IDE,通过“Sketch -> Include library -> Manage libraries”安装以下库(确保发布者为Microsoft):AzureIoTHub(版本1.3.8)、AzureIoTUtility(版本1.3.8)、AzureIoTProtocol_MQTT(版本1.3.8)、ArduinoJson(版本5.1.3),若使用MCP3008还需安装Adafruit_MCP3008。
  3. 修复ESP8266 SDK代码错误
    • 找到路径 C:\Users\Change_to_your_window_user_name\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266 下的 Arduino.h 文件,用VS code打开,注释掉第137行的 #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
    • C:\Users\Change_to_your_window_user_name\Documents\Arduino\libraries\AzureIoTHub\examples\iothub_ll_telemetry_sample\esp8266 下的 platform.local.txt 文件复制到 C:\Users\Change_to_your_window_user_name\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1 目录下。
    • 打开 platform.txt 文件,在 build.extra_flags= 中添加 -DDONT_USE_UPLOADTOBLOB-DUSE_BALTIMORE_CERT。若设备不连接全球 portal.azure.com,需根据 certs.c 更改CERT定义,且因ESP8266内存限制,只能选择一个CERT定义。
  4. 解决Python路径错误:打开之前保存到ESP8266核心的 platform.local.txt 文件,删除内容,添加 build.extra_flags=-DESP8266 -DDONT_USE_UPLOADTOBLOB -DUSE_BALTIMORE_CERT
  5. 编译上传代码:将Microsoft的示例代码编译并上传到ESP8266开发板。

下载地址

点击下载 【提取码: 4003】