跳转至

ESP8266 接入米家(Mi Home)教程

ESP8266 是一种功能强大的低成本 Wi-Fi 模块,适合用于各种物联网(IoT)项目。将 ESP8266 设备接入米家(Mi Home)平台,可以实现智能家居设备的远程控制和监控。本文将详细介绍如何将 ESP8266 接入米家平台。

前提条件

  1. 米家开发者账号:你需要在米家开发者平台(https://iot.mi.com/)注册一个账号,并创建一个产品。
  2. ESP8266 开发板:如 NodeMCU 或 ESP-01。
  3. Arduino IDE:用于编写和上传代码。

步骤一:注册米家开发者账号并创建产品

1. 注册和登录

首先,前往米家开发者平台 https://iot.mi.com/,注册一个开发者账号并登录。

2. 创建产品

  1. 登录后,点击“控制台”。
  2. 在控制台中,点击“创建产品”。
  3. 填写产品信息,包括产品名称、产品类别、通讯类型等。选择“Wi-Fi”作为通讯类型。
  4. 创建完成后,进入产品详情页面,获取产品的 “Product ID(产品ID)” 和 “Product Key(产品密钥)”。

步骤二:编写 ESP8266 代码

我们将使用 Arduino IDE 来编写代码,使 ESP8266 连接到 Wi-Fi,并与米家平台通信。

1. 安装必要的库

在 Arduino IDE 中,依次点击 Sketch -> Include Library -> Manage Libraries...,搜索并安装以下库:

  • ESP8266WiFi:用于 Wi-Fi 连接。
  • MQTT:用于与米家平台通信的 MQTT 协议。

2. 编写代码

以下是一个示例代码,用于将 ESP8266 接入米家平台:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

// WiFi 配置
const char* ssid = "your_SSID"; // 替换为你的WiFi名称
const char* password = "your_PASSWORD"; // 替换为你的WiFi密码

// 米家 MQTT 服务器配置
const char* mqtt_server = "mqtt.xxx.mi.com"; // 替换为米家 MQTT 服务器地址
const int mqtt_port = 1883; // 米家 MQTT 服务器端口
const char* product_id = "your_PRODUCT_ID"; // 替换为你的产品ID
const char* product_key = "your_PRODUCT_KEY"; // 替换为你的产品密钥

WiFiClient espClient;
PubSubClient client(espClient);

// 连接到 WiFi
void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

// 连接到米家 MQTT 服务器
void reconnect() {
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);

    if (client.connect(clientId.c_str(), product_id, product_key)) {
      Serial.println("connected");
      // 订阅主题或发布消息
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}

3. 上传代码

  1. 选择开发板:依次点击 Tools -> Board,选择 NodeMCU 1.0 (ESP-12E Module) 或其他适合你的 ESP8266 开发板。
  2. 选择端口:依次点击 Tools -> Port,选择相应的 COM 端口。
  3. 点击上传按钮,将代码上传到 ESP8266 开发板。

步骤三:在米家应用中添加设备

  1. 打开米家应用,登录你的账号。
  2. 点击右上角的“+”号,选择“手动添加设备”。
  3. 根据设备类型选择你创建的产品。
  4. 按照提示完成设备的配网和绑定操作。

结论

通过以上步骤,你已经成功将 ESP8266 设备接入了米家平台。现在,你可以通过米家应用远程控制和监控你的 ESP8266 设备。希望这个教程对你有所帮助!如果有任何问题,欢迎随时提问。