零知IDE——基于零知ESP32S3部署AI 小智,轻量化智能交互终端

✔零知开源(零知IDE)是一个专为电子初学者/电子兴趣爱好者设计的开源软硬件平台,在硬件上提供超高性价比STM32系列开发板、物联网控制板。取消了Bootloader程序烧录,让开发重心从 "配置环境" 转移到 "创意实现",极大降低了技术门槛。零知IDE编程软件,内置上千个覆盖多场景的示例代码,支持项目源码一键下载,项目文章在线浏览。零知开源(零知IDE)平台通过软硬件协同创新,让你的创意快速转化为实物,来动手试试吧!

✔访问零知实验室,获取更多实战项目和教程资源吧!

www.lingzhilab.com

项目概述

项目基于零知ESP32-S3主控,搭配ST7789驱动的LCD屏、"小智"扩展底板以及扬声器,实现语音控制"小智"唤醒、对话,提供从音频采集到云端交互到音频播放的全链路解决方案,同时提供丰富的状态监控和交互事件反馈。

一、系统接线部分

硬件清单

组件名称 型号规格 数量 备注
主控板 零知ESP32-S3 1 主控制器
底板 小智扩展底板 1 零知ESP32-S3扩展板
扬声器 腔体喇叭扬声器3.2W 1 音频输出
LCD显示屏 2.0寸SPI ST7789 1 数据显示

接线方案表

根据代码中的引脚定义,硬件接线方案如下:

组件名称 连接模块 连接方式 功能说明
零知ESP32-S3主控板 小智扩展底板 直插 扩展板套件,需要注意方向
扩展板8P排母 LCD 直插 对应LCD引脚,需要注意方向
扩展板2.0插座 喇叭 直插 插座有方向

散件图

请注意:主板安装有方向,看清楚丝印再安装,确认无误再通电;

实物拼装图

二、安装与使用

打开零知IDE,点击开源平台

搜索"小智",点击"代码下载"

配网以及绑定设备

首次烧录需要配网以及绑定设备,这里我们搜索微信账号"安信可科技",点击"微信配网",注意连接的WIFI频段要2.4G的,暂不支持5G频段


配置完成后,屏幕和串口都会显示和输出"验证码"

输入小智官网网址

"https://xiaozhi.me/"点击跳转

绑定后可给你的"小智"配置角色;

更多内容可下划探索

绑定完成后,按下开发板上的"RST"键

三、代码讲解部分

屏幕配置

cpp 复制代码
// LCD屏幕硬件引脚配置逻辑
constexpr gpio_num_t kDisplayBacklightPin = GPIO_NUM_42; //BL
constexpr gpio_num_t kDisplayCsPin = GPIO_NUM_41;        ///CS
constexpr gpio_num_t kDisplayDcPin = GPIO_NUM_40;        //DC
constexpr gpio_num_t kDisplayRstPin = GPIO_NUM_45;      //RST
constexpr gpio_num_t kDisplayMosiPin = GPIO_NUM_47;      //SDA
constexpr gpio_num_t kDisplayClkPin = GPIO_NUM_21;        //SCL

//这里的引脚配置刚好跟扩展板的引脚对应上,如果不用扩展板的可自行修改

//显示屏参数的编译期常量配置
constexpr auto kDisplaySpiMode = 0;
constexpr uint32_t kDisplayWidth = 240;
constexpr uint32_t kDisplayHeight = 320;
constexpr bool kDisplayMirrorX = false;
constexpr bool kDisplayMirrorY = false;
constexpr bool kDisplayInvertColor = true;
constexpr bool kDisplaySwapXY = false;
constexpr auto kDisplayRgbElementOrder = LCD_RGB_ELEMENT_ORDER_RGB;

//kDisplayWidth 和 kDisplayHeight 是屏幕的分辨率,如果用其他分辨率(注意驱动ST7789必须一致),在对应位置修改即可

麦克风和扬声器配置

cpp 复制代码
// 麦克风硬件引脚配置逻辑
#if AUDIO_INPUT_DEVICE_TYPE == AUDIO_INPUT_DEVICE_TYPE_I2S_STD //标准 I2S 通讯协议
constexpr gpio_num_t kMicPinWs = GPIO_NUM_4;   // WS/WR/WCLK
constexpr gpio_num_t kMicPinSck = GPIO_NUM_5;  // SCK/BCK/BCLK
constexpr gpio_num_t kMicPinSd = GPIO_NUM_6;   // SD/DIN/DOUT/DI/DO/DATA
#elif AUDIO_INPUT_DEVICE_TYPE == AUDIO_INPUT_DEVICE_TYPE_PDM  //PDM通讯协议
constexpr gpio_num_t kMicPinSck = GPIO_NUM_15;  // SCK/BCK/BCLK
constexpr gpio_num_t kMicPinSd = GPIO_NUM_7;    // SD/DIN/DOUT/DI/DO/DATA
#endif

// 扬声器硬件引脚配置逻辑
constexpr gpio_num_t kSpeakerPinSck = GPIO_NUM_15;  // SCK/BCK/BCLK
constexpr gpio_num_t kSpeakerPinWs = GPIO_NUM_16;  // WS/WR/WCLK
constexpr gpio_num_t kSpeakerPinSd = GPIO_NUM_7;  // SD/DIN/DOUT/DI/DO/DATA

//以上配置均对应扩展板上的接线逻辑,不使用扩展板可以自行修改


//LED硬件引脚配置逻辑 IO2,可自行修改 
constexpr gpio_num_t kLedPin = GPIO_NUM_2;

四、项目结果演示

视频演示

零知ESP32S3,轻量化智能交互终端"小智"

五、常见问题解答(Q&A)

Q1:WiFi连接不上怎么办**?**

A: 确保自己的手机连接上2.4G 频段的WiFi,暂不支持5G 频段的WiFi;开启手机定位服务:对于Android手机,通常需要开启GPS或定位服务,以便App能够获取当前连接的Wi-Fi SSID信息

Q2:是否支持热点配网**?**

A: 支持Android手机 提供热点,另一部Android手机连接配网,当语音播报"网络已连接"说明配网成功,目前最稳定的方式还是WiFi配网

Q3:怎么重新配网?

A: 按下*****"RST"***** 重启后,在网络连接成功前,按下***"Boot"*** 键,可重新进入配网模式

Q4:唤醒词没反应,怎么判断哪里的问题

A: 打开串口调试,按*****"RST"***** 重启之后能输出*****"MC Quantized wakenet9: wakenet9l_tts1h8_你好小智_3_0.631_0.635, tigger:v4, mode:0, p:0, (Nov 11 2025 10:37:06)"***** 等内容则说明语音模型加载成功;按***"Boot"*** 键可以强制转换成***"聆听"*** 状态,若语音识别不出来,查看麦克风引脚定义是否正确,若还是不行,可联系我们帮忙分析;

项目资源整合

系统完整代码:

小智AI-零知ESP32S3.zip

相关推荐
laplace01238 小时前
Clawdbot 部署到飞书(飞连)使用教程(完整版)
人工智能·笔记·agent·rag·clawdbot
是小蟹呀^8 小时前
卷积神经网络(CNN):卷积操作
人工智能·神经网络·cnn
WarmSword8 小时前
mac上用cursor/vscode调试root权限进程
c++·ide·vscode·macos·mac
DN20208 小时前
AI销售机器人:节日祝福转化率提升30倍
人工智能·python·深度学习·机器学习·机器人·节日
爱喝可乐的老王8 小时前
PyTorch简介与安装
人工智能·pytorch·python
deephub8 小时前
用 PyTorch 实现 LLM-JEPA:不预测 token,预测嵌入
人工智能·pytorch·python·深度学习·大语言模型
量子-Alex9 小时前
【多模态大模型】Qwen2-VL项目代码初步解析
人工智能
飞鹰519 小时前
深度学习算子CUDA优化实战:从GEMM到Transformer—Week4学习总结
c++·人工智能·深度学习·学习·transformer
工程师老罗9 小时前
Pytorch如何验证模型?
人工智能·pytorch·深度学习