本教程将介绍如何使用Unit Gateway H2搭配CoreS3主控运行ESP Zigbee Gateway案例程序。ESP Zigbee Gateway 是一个基于 ESP32 系列 Wi-Fi SoC 和 ESP32-H2 802.15.4 SoC 的网关设备。它可以将 Zigbee 网络与 Wi-Fi 网络连接起来,实现智能家居设备的互联互通。
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
clone recursive
递归克隆ESP-Zigbee-SDK仓库git clone --recursive https://github.com/espressif/esp-zigbee-sdk.git
cd esp-zigbee-sdk
. ./export.sh
用于激活相关的环境变量。详细说明请参考
ESP-IDF - ESP32S3上手教程
。esp32h2
。cd $IDF_PATH/examples/openthread/ot_rcp
idf.py set-target esp32h2
idf.py menuconfig
idf.py menuconfig
进入配置页面。在menuconfig中配置:Component config
-> OpenThread RCP Example
- Enable OPENTHREAD_NCP_VENDOR_HOOK
main/esp_ot_config.h
,将43行 .baud_rate = 460800;
修改为 .baud_rate = 230400;
。idf.py build
idf.py flash
esp_zigbee_gateway
案例程序路径, 设置编译对象。cd esp-zigbee-sdk/examples/esp_zigbee_gateway
idf.py set-target esp32s3
idf.py menuconfig
- Board Configuration
- Pin to RCP reset: -1
- Pin to RCP boot: -1
- Pin to RCP TX: 18
- Pin to RCP RX: 17
- 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);
}
idf.py build
idf.py erase_flash
idf.py flash
idf.py monitor
或其他的串口调试工具在115200bps配置下查看运行日志。正常运行日志内容: