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


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

输入小智官网网址



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

更多内容可下划探索

绑定完成后,按下开发板上的"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"*** 键可以强制转换成***"聆听"*** 状态,若语音识别不出来,查看麦克风引脚定义是否正确,若还是不行,可联系我们帮忙分析;
项目资源整合
系统完整代码: