说明
当复刻完ESP-AI之后,我们还是一头雾水,不知道怎么和ESP-AI说话,那么这篇文章将让你茅塞顿开,ESP-AI支持多种唤醒,能满足不同需求
按键唤醒
在目前版本中,官方推荐的是天问语音唤醒模块,既然推荐天问,为什么还要按键唤醒?那是因为,经过实测,天问对电量消耗巨大,并且价格昂贵,虽然好用,但性价比并不高 言归正传,那么按键唤醒我们该怎样做?
接线
按键模块一共有3个引脚,将按键模块的VCC接到esp32的GND,将按键模块的OUT接到esp32的10号引脚
修改客户端配置文件
将以下代码粘贴到Arduino ide 中,记住将wifi 配置,服务配置改为自己的,然后将唤醒方案改为custom,改完之后编译就可以了,最后按上键就可以唤醒了,以下为示例代码
#include <esp-ai.h>
ESP_AI esp_ai;
// 定义按键引脚
const int buttonPin = 10;
bool lastButtonState = HIGH; // 用于记录上一次按键状态
void setup() {
Serial.begin(115200);
bool debug = true;
// [必 填] wifi 配置: { wifi 账号, wifi 密码 } 注意:要用双引号!
ESP_AI_wifi_config wifi_config = { "Xiaomi_FANFAN", "yangfan0522", "ESP-AI" };
//ESP_AI_server_config server_config = { }; // 如果你使用的是开发者平台,这留空即可
// [必 填] 服务配置: { 服务IP, 服务端口, "请求参数,用多个参数&号分割" }
ESP_AI_server_config server_config = { "", , "&token=123456" };
// [必 填] 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒
ESP_AI_wake_up_config wake_up_config = {};
strcpy(wake_up_config.wake_up_scheme, "custom"); // 唤醒方案
strcpy(wake_up_config.str, "start");
// [可留空] 麦克风引脚配置:{ bck_io_num, ws_io_num, data_in_num }
ESP_AI_i2s_config_mic i2s_config_mic = { 4, 5, 6 };
// [可留空] 扬声器引脚配置:{ bck_io_num, ws_io_num, data_in_num, 采样率 }
ESP_AI_i2s_config_speaker i2s_config_speaker = { 16, 17, 15, 16000 };
// [可留空] 音量调节配置:{ 输入引脚,输入最大值(1024|4096),默认音量(0-1) }
ESP_AI_volume_config volume_config = { 34, 4096, 1 };
// 开始运行 ESP-AI
esp_ai.begin({debug, wifi_config, server_config, wake_up_config, volume_config, i2s_config_mic, i2s_config_speaker});
// 设置按键引脚为输入模式
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
esp_ai.loop();
// 检测按键是否按下
bool buttonState = digitalRead(buttonPin);
if (buttonState == LOW && lastButtonState == HIGH) {
esp_ai.wakeUp();
}
lastButtonState = buttonState;
}