ESP32 AI互动硬件代码【免费开源可商用】--ESP-AI

项目介绍

本文完全基于ESP-AI开源库进行实现,旨在为开发者和企业提供快速接入ESP-AI服务的参考单吗。开发者仅需通过调用ESP-AI OPEN API或快速开通一套开放平台分站就能快速的开发自己的应用,进行可商业使用的AI产品落地,减少开发周期及开发成本。
总的来说:基于本仓库代码,可以实现各种业务需求。开发者可以删除不需要的功能,或者在固件中写好您的秘钥信息等各种灵活操作…
功能实现:

  1. ✅硬件适配:
    ·1 支持多种开发板型号(通过宏定义选择):
    · ESP-AI S3 系列(不同屏幕版本)
    · 小智AI S3 二代/三代开发板
    ·2 ✅适配不同屏幕类型(OLED/TFT)和引脚配置
    · 支持 OLED 屏幕(0.96寸/0.91寸。 动态小表情)
    · 支持 TFT 屏幕(1.3寸,240 *240,7789驱动。 可根据情绪渲染不同图片)
    · 支持
    · 支持情绪指示灯及灯带(ws2812)
    快乐->蓝色 / 伤心->绿色 / 愤怒->红色 / 恐惧->黄色
  2. ✅核心功能
    · 语音交互系统(ASR+LLM+TTS)
    · 情绪检测与表情显示(通过OLED屏幕)
    · RGB情绪灯光控制(WS2812灯带)
    · 电池电量监测
    · 网络连接管理(Wi-Fi配网+WebSocket通信)
  3. ✅服务对接
    · OTA无线升级功能
    · 与云端服务的HTTP/WebSocket通信
    · 设备状态上报(电量、位置等)
  4. ✅外设控制
    物理按键控制(音量调节)
    屏幕显示管理
    麦克风/扬声器驱

即将推出

  1. 微信小程序客户端
  2. 蓝牙配网
    进展请入群关注,最新进展会第一时间发布在群中。

项目结构

esp-ai-business-arduion/
├── main/
│   ├── main.ino                    # 主程序
│   └── voice.hd                    # 天问代码(天问语音唤醒)
├── main-img/             
│   ├── main-img.ino                # 主程序
│   └── voice.hd                    # 天问代码(天问语音唤醒)
├── web/              
│   ├── index.html                  # 配网页面
│   └── index_xiao_zhi_2.html       # 配网页面(兼容小智硬件)
└── README.md

环境配置:

  1. 先看一遍文档:Arduino IDE 文档
  2. 下载依赖库 libraries2.zip,然后解压到 C:\Users[用户名]\Documents\Arduino\libraries (注意 用户名自己改成你电脑用户名,并且删除中括号。)

固件打包

参见文章:Arduino 导出bin文件并且使用ESP32烧录工具进行烧录(esp32生产环境批量烧录)

将固件发布到 ESP-AI 开放平台或者发布到您的分站

该功能正在积极开发中,预计在 2025/6 月份或更早上线,敬请期待~

关键代码解析

  1. 硬件选择配置
// 开发板选择(取消注释对应型号)
#define IS_ESP_AI_S3  // OLED屏版本
//#define IS_XIAO_ZHI_S3_2  // 小智二代
  1. 电量检测实现
BatteryMonitor batteryMonitor(8, 1181); // ADC引脚和满电校准值
int batteryLevel = batteryMonitor.getBatteryPercentage();

  1. OTA升级流程
void update_ota(String url) {
  httpUpdate.onProgress(update_progress); // 进度回调
  t_httpUpdate_return ret = httpUpdate.update(upDateClient, url);
}

  1. WebSocket通信
webSocket_yw.begin(host, port, path);
webSocket_yw.onEvent(webSocketEvent_ye); // 事件回调
  1. 情绪显示系统
face->Behavior.SetEmotion(eEmotions::Happy, 1.0); // 设置表情
pixelsEmotion.setPixelColor(i, color); // RGB灯光控制

典型问题解决方案

Q1: 如何选择正确的开发板型号?

A: 在代码开头取消注释对应开发板的宏定义:

// 正确示例(ESP-AI OLED版):
#define IS_ESP_AI_S3
// 错误示例(同时启用多个定义):
//#define IS_ESP_AI_S3  
//#define IS_XIAO_ZHI_S3_2

Q2: OTA升级失败的可能原因?

检查以下方面:

服务器URL有效性(https校验)
网络连接稳定性
分区表配置(至少1.5MB SPIFFS)
固件签名验证

Q3: 屏幕显示异常处理步骤

  1. 确认屏幕类型宏定义正确
  2. 检查引脚配置
Face(128, 64, 40, 38, 39, "096", 0); // width, height, eyesize, SCK, SDA, type, rotation
  1. 测量屏幕供电(3.3V)
  2. 更新U8g2图形库版本

Q4: 如何调整语音识别灵敏度?
修改VAD静音检测参数:

// 文件全局变量区
String vad_first = "5000"; // 首次静默时间(ms)
String vad_course = "500"; // 说话间隔静默时间

// 配置读取处
wake_up_config.vad_first = vad_first.toInt();

开发建议

  1. 调试技巧
    启用串口调试输出:
#define DEBUG_SERIAL Serial

使用内存监控:

Serial.printf("Free Heap: %d KB\n", ESP.getFreeHeap()/1024);
  1. 性能优化
    调整任务堆栈大小:
xTaskCreate(faceTask, "faceTask", 8192, NULL, 1, NULL); // 原为4096

启用PSRAM优化:

configTASK_STACK_DEPTH_TYPE = 16*1024; // 在sdkconfig中配置

  1. 安全注意事项
    增加OTA签名验证:
httpUpdate.setLedPin(LED_BUILTIN, LOW);
httpUpdate.authorize("Bearer YourAPIToken");

加密敏感配置:

preferences.begin("cfg", false); // 使用NVS加密存储

资源仓库

github

码云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值