ESP-AI高级玩法–唤醒-ESP32论坛-极客爱好者-青柠博客

ESP-AI高级玩法–唤醒

说明

当复刻完ESP-AI之后,我们还是一头雾水,不知道怎么和ESP-AI说话,那么这篇文章将让你茅塞顿开,ESP-AI支持多种唤醒,能满足不同需求

按键唤醒

在目前版本中,官方推荐的是天问语音唤醒模块,既然推荐天问,为什么还要按键唤醒?那是因为,经过实测,天问对电量消耗巨大,并且价格昂贵,虽然好用,但性价比并不高 言归正传,那么按键唤醒我们该怎样做?

接线

由于我手上关于按键,只有一个五向摇杆按键模块 , 其他按键操作起来其实一样的 20240327183237287-image 图中说的很清楚了,这个模块一个5个按键,我们本次只用他的上键(UP)

将esp32s3的10号引脚连接UP,COM连接esp32s3中的GND即可

修改客户端配置文件

将以下代码粘贴到Arduino ide 中,记住将wifi 配置服务配置改为自己的,改完之后编译就可以了,最后按上键就可以唤醒了

#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 = { "192.168.31.108", 8088, "&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");
  // [可留空] 麦克风引脚配置:{ 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;
}
请登录后发表评论

    没有回复内容