pdf-icon

产品上手指引

Thread

Module Gateway H2

IoT 工具

IoT 云端服务

Ethernet 摄像头

拨码开关&引脚切换

Module GPS v2.0

Module ExtPort For Core2

ESP Zigbee Gateway

本教程将介绍如何使用Unit Gateway H2搭配CoreS3主控运行ESP Zigbee Gateway案例程序。ESP Zigbee Gateway 是一个基于 ESP32 系列 Wi-Fi SoC 和 ESP32-H2 802.15.4 SoC 的网关设备。它可以将 Zigbee 网络与 Wi-Fi 网络连接起来,实现智能家居设备的互联互通。

1.准备工作

ESP-IDF 版本
该案例编译推荐使用ESP-IDF版本v5.3.1
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
git checkout v5.3.1 # recommend
./install.sh
. ./export.sh
  • 2.使用Git指令clone recursive递归克隆ESP-Zigbee-SDK仓库
git clone --recursive https://github.com/espressif/esp-zigbee-sdk.git
cd esp-zigbee-sdk

  • 4.后续教程使用到的idf.py指令均依赖ESP-IDF, 运行指令前需要执行ESP-IDF中. ./export.sh用于激活相关的环境变量。详细说明请参考 ESP-IDF - ESP32S3上手教程

2.编译RCP固件

  • 1.在编译 Gateway 固件之前,需要先生成 RCP 固件。参考下方指令进入对应的rcp固件目录, 设置编译target为esp32h2
cd $IDF_PATH/examples/openthread/ot_rcp
idf.py set-target esp32h2
idf.py menuconfig
  • 2.使用idf.py menuconfig进入配置页面。在menuconfig中配置:Component config -> OpenThread RCP Example - Enable OPENTHREAD_NCP_VENDOR_HOOK
波特率修改
由于芯片的引脚驱动能力等因素,使用长的连接线连接 Unit 时串口有可能无法正常工作,如遇到这种情况则需适当降速处理,此处将默认波特率460800降速为230400。
  • 3.修改波特率,打开 main/esp_ot_config.h ,将43行 .baud_rate = 460800; 修改为 .baud_rate = 230400;
  • 4.完成配置后, 执行以下指令进行RCP固件编译。
idf.py build
  • 5.打开 Unit Gateway H2 外壳,按住设备boot按键,然后连接USB供电使其进入下载模式。并执行以下指令进行烧录。
idf.py flash

3.编译Gateway固件

  • 1.进入esp_zigbee_gateway案例程序路径, 设置编译对象。
cd esp-zigbee-sdk/examples/esp_zigbee_gateway
idf.py set-target esp32s3
idf.py menuconfig
  • 2.并在menuconfig中配置正确的通信引脚, 该引脚配置针对CoreS3主控, 若使用其他的主控设备可根据实际情况进行修改。
- Board Configuration
  - Pin to RCP reset: -1
  - Pin to RCP boot: -1
  - Pin to RCP TX: 18
  - Pin to RCP RX: 17
  • 3.Gateway WiFi连接配置
- Example Connection Configuration
  - WiFi SSID
  - WiFi Password

添加以下函数与头文件, 并添加到app_main中开头进行调用初始化,打开CoreS3的Grove供电输出能力。

#include "driver/i2c.h"

void fix_aw9523_p0_pull_up(void)
{
    /* AW9523 P0 is in push-pull mode */
    const i2c_config_t i2c_conf = {
        .mode = I2C_MODE_MASTER,
        .sda_io_num = GPIO_NUM_12,
        .sda_pullup_en = GPIO_PULLUP_DISABLE,
        .scl_io_num = GPIO_NUM_11,
        .scl_pullup_en = GPIO_PULLUP_DISABLE,
        .master.clk_speed = 400000
    };
    i2c_param_config(I2C_NUM_1, &i2c_conf);
    i2c_driver_install(I2C_NUM_1, i2c_conf.mode, 0, 0, 0);

    uint8_t data[2];
    data[0] = 0x11;
    data[1] = 0x10;
    i2c_master_write_to_device(I2C_NUM_1, 0x58, data, sizeof(data), 1000 / portTICK_PERIOD_MS);
    i2c_driver_delete(I2C_NUM_1);
}

4.编译和烧录

idf.py build
idf.py erase_flash
idf.py flash

5.开始运行

  • 将CoreS3与 Unit Gateway H2 连接。
  • 将CoreS3连接至电脑
  • 通过idf.py monitor或其他的串口调试工具在115200bps配置下查看运行日志。

正常运行日志内容:

  • RCP 固件版本检查
  • Wi-Fi 连接成功
  • Zigbee 网络创建成功
  • 网络开放允许设备加入
On This Page