项目简介
本项目致力于解决使用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开发板。
步骤说明
- 安装Arduino IDE和ESP8266插件:下载安装最新版Arduino IDE,依据https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/安装ESP8266插件,安装完成后重启Arduino IDE。
- 安装必要库文件:打开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。
- 修复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定义。
- 找到路径
- 解决Python路径错误:打开之前保存到ESP8266核心的
platform.local.txt
文件,删除内容,添加build.extra_flags=-DESP8266 -DDONT_USE_UPLOADTOBLOB -DUSE_BALTIMORE_CERT
。 - 编译上传代码:将Microsoft的示例代码编译并上传到ESP8266开发板。
下载地址
点击下载 【提取码: 4003】