欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 小智AI -- ESP32-S3 DIY面包板WIFI-LCD彩屏

小智AI -- ESP32-S3 DIY面包板WIFI-LCD彩屏

2025/6/23 11:38:30 来源:https://blog.csdn.net/zhuwade/article/details/148809019  浏览:    关键词:小智AI -- ESP32-S3 DIY面包板WIFI-LCD彩屏

DIY 所需硬件

  • 开发板:ESP32-S3-DevKitC-1(选择 WROOM N16R8 模组) Goouuu ESP32-S3-N16R8开发板
  • 数字麦克风:INMP441 INMP441全向麦克风模块
  • 功放:MAX98357A MAX98357 I2S 音频放大器模块
  • 腔体喇叭:8Ω 2~3W 或 4Ω 2~3W 2030腔体-4Ω3W/8Ω2WBOX蓝牙音响扬声器
  • 导线:跳线一盒,杜邦线若干 140根优质跳线 面包板线
  • 400 孔面包板 2 块 优质面包板/迷你小面包板/ 实验板
  • SPI-LCD彩屏 黄保凯中景园1.3寸 IPS液晶屏 ST7789 新款8脚
  • 6*6mm 立式 轻触开关(可选)轻触开关 中两脚 6*6*4 微动/按键开关

1. SPI-LCD彩屏(带驱动板,焊接8Pin排针)

本教程以 1.3寸 IPS LCD彩屏为例,产品参数如下:

  • 1.3寸IPS彩屏,支持 RGB 65K色显示,显示色彩丰富
  • 240X240分辨率,显示清晰
  • IPS全视角面板,超宽可视范围
  • 采用4线制SPI串行总线,需8个IO引脚即可工作

 

2. 面包板WIFI-LCD彩屏接线方案

2.1. 开发板与元件模块接线对照表

注意:接线请按照表格的引脚进行接线,对应开发板接线照片仅供参考。

  • 把下方表格中的 ESP32S3开发板的加粗的数字/字母引脚,和 麦克风、数字功放、LCD显示屏等加粗的英文字母引脚用导线连接起来,短接的意思就是也连导线在一起

ESP32S3开发板

麦克风 INMP441(I2S接口)

GPIO4

WS 数据选择

GPIO5

SCK 数据时钟

GPIO6

SD 数据输出

3V3

VDD 电源正 3.3V

GND

GND 接地 短接L/R 左/右声道

数字功放 MAX98357A

GPIO7

DIN 数字信号

GPIO15

BCLK 位时钟

GPIO16

LRC 左/右时钟

3V3 /3.3V

Vin(或VCC)电源输入短接SD 关机频道

GND

GND 接地 短接GAIN 增益和频道

音频+喇叭正极一般红线,不清楚问卖家、或用万用表测或其他方法)

音频-喇叭负极

显示屏(SPI-LCD 8Pin接口)

GND

GND 接地

3V3

VCC 电源正

GPIO21

SCL 时钟线

GPIO47

SDA 数据信号

GPIO45

RES 复位

GPIO40

DC 数据选择

GPIO41

CS 片选

GPIO42

BLK 背光

2.2. ESP32-S3-DevKitC-1 开发板版本2(GOOUUU 果云版 42 IO引脚)LCD屏接线图

  • ESP32-S3果云 42 引脚开发板面包板DIY,请参考下图接线:

3. Windows搭建 ESP IDF 5.4开发环境以及编译小智

3.1. Windows 平台工具链的标准设置

ESP32 ESP-IDF Windows 平台工具链的标准设置-CSDN博客

3.2. 编译小智

3.2.1. 下载源码

进入虾哥代码主页:https://github.com/78/xiaozhi-esp32, 点击Code - Download ZIP

电脑装了git的话,建议还是用命令

git clone git@github.com:78/xiaozhi-esp32.git #虾哥Github
git clone https://gitee.com/zexuntec/xiaozhi-esp32.git #Gitee 每周同步一次虾哥Github

进入终端,打开IDF 5.4或者双击桌面的ESP IDF5.4 Powershell

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindowsSetting PYTHONNOUSERSITE, was not set
Using Python in D:\workspace\Espressif\python_env\idf5.4_py3.11_env\Scripts
Python 3.11.2
Using Git in D:\workspace\Espressif\tools\idf-git\2.44.0\cmd
git version 2.44.0.windows.1
Activating ESP-IDF 5.4
* Checking python version ... 3.11.2
* Checking python dependencies ... OK
* Deactivating the current ESP-IDF environment (if any) ... OK
* Establishing a new ESP-IDF environment ... OK
* Identifying shell ... powershell.exe
* Detecting outdated tools in system ... Found tools that are not used by active ESP-IDF version.
For removing old versions of idf-driver, idf-python-wheels use command 'python.exe D:\workspace\Espressif\frameworks\esp-idf-v5.4\tools\idf_tools.py uninstall'
To free up even more space, remove installation packages of those tools.
Use option python.exe D:\workspace\Espressif\frameworks\esp-idf-v5.4\tools\idf_tools.py uninstall --remove-archives.Done! You can now compile ESP-IDF projects.
Go to the project directory and run:idf.py buildPS D:\workspace\Espressif\frameworks\esp-idf-v5.4>cd D:\workspace\xiaozhi-esp32\

3.2.2. 设置芯片类型

默认的编译芯片是ESP32的,所以自己的板子是S3的话一定要输入以下命令把芯片设置为S3, idf.py set-target esp32s3

 idf.py set-target esp32s3

如果你使用的芯片是ESP32C3的话,需要输入 idf.py set-target esp32c3先把芯片类型设置为C3,再去menuconfig里选择对应的板子类型。

PS D:\workspace\xiaozhi-esp32> idf.py set-target esp32s3
Adding "set-target"'s dependency "fullclean" to list of commands with default set of options.
Executing action: fullclean
Build directory 'D:\workspace\xiaozhi-esp32\build' not found. Nothing to clean.
Executing action: set-target
Set Target to: esp32s3, new sdkconfig will be created.
Running cmake in directory D:\workspace\xiaozhi-esp32\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=D:\workspace\Espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DIDF_TARGET=esp32s3 -DCCACHE_ENABLE=1 D:\workspace\xiaozhi-esp32"...
-- Found Git: D:/workspace/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- The ASM compiler identification is GNU
-- Found assembler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
NOTICE: Dependencies lock doesn't exist, solving dependencies.
....................................NOTICE: Updating lock file at D:\workspace\xiaozhi-esp32\dependencies.lock
NOTICE: Processing 24 dependencies:
NOTICE: [1/24] 78/esp-ml307 (1.7.2)
NOTICE: [2/24] 78/esp-opus (1.0.4)
NOTICE: [3/24] 78/esp-opus-encoder (2.1.0)
NOTICE: [4/24] 78/esp-wifi-connect (2.3.1)
NOTICE: [5/24] 78/esp_lcd_nv3023 (1.0.0)
NOTICE: [6/24] 78/xiaozhi-fonts (1.3.2)
NOTICE: [7/24] espressif/button (3.5.0)
NOTICE: [8/24] espressif/cmake_utilities (0.5.3)
NOTICE: [9/24] espressif/esp-dsp (1.4.12)
NOTICE: [10/24] espressif/esp-sr (2.0.2)
NOTICE: [11/24] espressif/esp_codec_dev (1.3.4)
NOTICE: [12/24] espressif/esp_io_expander (1.0.1)
NOTICE: [13/24] espressif/esp_io_expander_tca9554 (2.0.0)
NOTICE: [14/24] espressif/esp_io_expander_tca95xx_16bit (2.0.0)
NOTICE: [15/24] espressif/esp_lcd_gc9a01 (2.0.2)
NOTICE: [16/24] espressif/esp_lcd_ili9341 (1.2.0)
NOTICE: [17/24] espressif/esp_lcd_panel_io_additions (1.0.1)
NOTICE: [18/24] espressif/esp_lcd_spd2010 (1.0.2)
NOTICE: [19/24] espressif/esp_lcd_st77916 (1.0.1)
NOTICE: [20/24] espressif/esp_lvgl_port (2.4.4)
NOTICE: [21/24] espressif/led_strip (2.5.5)
NOTICE: [22/24] lvgl/lvgl (9.2.2)
NOTICE: [23/24] waveshare/esp_lcd_sh8601 (1.0.2)
NOTICE: [24/24] idf (5.4.0)
-- Project sdkconfig file D:/workspace/xiaozhi-esp32/sdkconfig
C:\Users\ADMINI~1\AppData\Local\Temp\kconfgen_tmp42_640bb:16: warning: ignoring malformed line 'ESP_TASK_WDT_TIMEOUT_S=10'
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults...
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults.esp32s3...
-- Compiler supported targets: xtensa-esp-elf
-- Found Python3: D:/workspace/Espressif/python_env/idf5.4_py3.11_env/Scripts/python.exe (found version "3.11.2") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- App "xiaozhi" version: 1.5.1
-- Adding linker script D:/workspace/xiaozhi-esp32/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script D:/workspace/xiaozhi-esp32/build/esp-idf/esp_system/ld/sections.ld.in
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/soc/esp32s3/ld/esp32s3.peripherals.ld
-- ESP_LCD_NV3023: 1.0.0
-- BUTTON: 3.5.0
-- ESP_LCD_GC9A01: 2.0.2
-- ESP_LCD_ILI9341: 1.2.0
-- ESP_LCD_PANEL_IO_ADDITIONS: 1.0.1
-- ESP_LCD_SPD2010: 1.0.2
-- ESP_LCD_ST77916: 1.0.1
-- LVGL version: 9.2.2
-- ESP_LCD_SH8601: 1.0.2
-- Component idf::main will be linked with -Wl,--whole-archive
......
......
-- Configuring done (52.8s)
-- Generating done (3.0s)
-- Build files have been written to: D:/workspace/xiaozhi-esp32/build
PS D:\workspace\xiaozhi-esp32>

3.2.3. 更换编译板子类型

默认编译出的固件是面包板的,如果需要更换板子,需要输入idf.py menuconfig

idf.py menuconfig

进入Xiaozhi Assistant选项

选Board Type选项, 选“面包板新版接线(WiFi + LCD)”

选LCD Type选项, 选“ST7789, 分辨率240*240,8PIN”

选择需要编译的板子固件后按键盘的‘S’键保存 然后Esc退出menuconfig

3.2.4. 开始编译

再次输入idf.py build进行编译

idf.py build
Executing action: all (aliases: build)
Running ninja in directory D:\workspace\xiaozhi-esp32\build
Executing "ninja all"...
[0/1] Re-running CMake...
-- ccache will be used for faster recompilation
-- Building ESP-IDF components for target esp32s3
NOTICE: Processing 24 dependencies:
NOTICE: [1/24] 78/esp-ml307 (1.7.2)
NOTICE: [2/24] 78/esp-opus (1.0.4)
NOTICE: [3/24] 78/esp-opus-encoder (2.1.0)
NOTICE: [4/24] 78/esp-wifi-connect (2.3.1)
NOTICE: [5/24] 78/esp_lcd_nv3023 (1.0.0)
NOTICE: [6/24] 78/xiaozhi-fonts (1.3.2)
NOTICE: [7/24] espressif/button (3.5.0)
NOTICE: [8/24] espressif/cmake_utilities (0.5.3)
NOTICE: [9/24] espressif/esp-dsp (1.4.12)
NOTICE: [10/24] espressif/esp-sr (2.0.2)
NOTICE: [11/24] espressif/esp_codec_dev (1.3.4)
NOTICE: [12/24] espressif/esp_io_expander (1.0.1)
NOTICE: [13/24] espressif/esp_io_expander_tca9554 (2.0.0)
NOTICE: [14/24] espressif/esp_io_expander_tca95xx_16bit (2.0.0)
NOTICE: [15/24] espressif/esp_lcd_gc9a01 (2.0.2)
NOTICE: [16/24] espressif/esp_lcd_ili9341 (1.2.0)
NOTICE: [17/24] espressif/esp_lcd_panel_io_additions (1.0.1)
NOTICE: [18/24] espressif/esp_lcd_spd2010 (1.0.2)
NOTICE: [19/24] espressif/esp_lcd_st77916 (1.0.1)
NOTICE: [20/24] espressif/esp_lvgl_port (2.4.4)
NOTICE: [21/24] espressif/led_strip (2.5.5)
NOTICE: [22/24] lvgl/lvgl (9.2.2)
NOTICE: [23/24] waveshare/esp_lcd_sh8601 (1.0.2)
NOTICE: [24/24] idf (5.4.0)
-- Project sdkconfig file D:/workspace/xiaozhi-esp32/sdkconfig
C:\Users\ADMINI~1\AppData\Local\Temp\kconfgen_tmpbmqhc7y0:16: warning: ignoring malformed line 'ESP_TASK_WDT_TIMEOUT_S=10'
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults...
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults.esp32s3...
-- Compiler supported targets: xtensa-esp-elf
-- App "xiaozhi" version: 1.5.1
......
......
-- ESP_LCD_NV3023: 1.0.0
-- BUTTON: 3.5.0
-- ESP_LCD_GC9A01: 2.0.2
-- ESP_LCD_ILI9341: 1.2.0
-- ESP_LCD_PANEL_IO_ADDITIONS: 1.0.1
-- ESP_LCD_SPD2010: 1.0.2
-- ESP_LCD_ST77916: 1.0.1
-- LVGL version: 9.2.2
-- ESP_LCD_SH8601: 1.0.2
......
......
-- Configuring done (15.6s)
-- Generating done (1.7s)
-- Build files have been written to: D:/workspace/xiaozhi-esp32/build
[5/1890] Move and Pack models...
Recommended model partition size: 285K
[11/1890] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
model,data,spiffs,0x10000,960K,
ota_0,app,ota_0,0x100000,6M,
ota_1,app,ota_1,0x700000,6M,
*******************************************************************************
......
......
[1888/1890] Generating binary image from built executable
esptool.py v4.8.1
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Generated D:/workspace/xiaozhi-esp32/build/xiaozhi.bin
[1889/1890] C:\Windows\system32\cmd.exe /C "cd /D D:\works...on-table.bin D:/workspace/xiaozhi-esp32/build/xiaozhi.bin"
xiaozhi.bin binary size 0x360920 bytes. Smallest app partition is 0x600000 bytes. 0x29f6e0 bytes (44%) free.Project build complete. To flash, run:idf.py flash
oridf.py -p PORT flash
PS D:\workspace\xiaozhi-esp32>

3.2.5. 如何修改唤醒词

输入idf.py menuconfig进入配置界面

键盘上下选择“ESP Speech Recognition”

选择“Load Multiple Wake Words”

选择任意唤醒词后按Enter确定后按键盘的'S'保存退出

3.2.6. 如何修改websocket api接口

输入idf.py menuconfig进入配置界面

键盘上下选择“Xiaozhi Assistant”

选择“Websocket”确定

输入自己的api地址后保存退出重新编译

3.3. 配网步骤

(1)连接Xiaozhi-XXXX热点

使用手机或电脑连接到设备的 WiFi 网络,通常以 Xiaozhi-XXXX 命名。选中并连接,等待几秒wifi热点连接成功,将自动进入选择界面,请勿提前手动关闭界面,如下图示:

注意:

如果程序没有自动打开浏览器访问 http://192.168.4.1/,请在确保无线局域网(WIFI)连接的网络是 Xiaozhi-XXXXXX 不要切换,使用浏览器 地址栏输入网址 http://192.168.4.1/ 进入设备的网络配置页面。

(2)选择并配置WIFI

请在小智热点扫描到的2.4G网络中,选择用户自己家或办公室的WIFI网络(不用手动输入wifi名称SSID),选择名称后会自动填写。

在密码输入框中输入当前选择的wifi密码,点击 连接 按钮提交即可(如果是手机已经保存过的密码会自动提交)。

注意:打开wifi扫描页面会有点慢,请等待5秒左右,请勿取消或关闭页面。

(3)连接并重启设备

在网络配置页面上,选择 WiFi 名称(仅支持 2.4G,iPhone 热点要打开“最大兼容性”选项),SSID将会自动填写,在下方输入密码,然后点击 “连接” 按钮(如上图所示)。

如果 WiFi 名称和密码正确,设备将自动连接到 Wi-Fi,并显示 登录 成功标志,表示已经配置网络成功,设备将在 3 秒后自动重启。

重新启动后设备将会自动连接刚才配置的WIFI网络。

如果配置失败,请检查 WiFi 名称和密码是否正确,或者尝试重新配置

3.4. 如何添加新设备到管理后台

你的设备在WI-FI或4G联网后,需要到 小智AI聊天机器人-控制面板 添加设备验证通过,才能正常使用设备进行AI语音聊天,请按照以下步骤操作:

请先确保设备已连接到互联网,通过“你好,小智”唤醒,并出现要求添加设备的提示语6位设备验证码(可以重复唤醒重听)。

如使用不带离线唤醒的设备,如esp32-C3系列开发板或产品,请使用按键唤醒设备,进行通信,根据语音播报或屏幕显示的6位验证码,到小智AI控制面板添加设备。

注意:如果用户没有听到语音播报,喇叭没有发声,面包板方案用户请检查功放和喇叭接线是否正常,使用第三方开发板用户请检查固件是否匹配且正常运行。

电脑浏览器访问 小智AI聊天机器人-控制面板 后台:https://xiaozhi.me ,如未注册请先注册账号。

第一步:先创建智能体

智能体说明:是指具备人工智能(AI)能力的自主实体,能够感知环境、处理信息、做出决策并执行行动,以完成特定目标或任务。通常具备交互能力、感知能力、学习和适应能力、自主性、目标性等特征。

小智AI智能体是物理实体(设备终端及固件)+虚拟实体(后台服务端)结合体,目前主要用于AI聊天机器人、IOT物联网设备控制、学习教育、智能助手等领域。

注意:一个小智AI智能体可以在多个设备终端中连接使用,比如你放在家里的小智AI设备和放在公司的小智AI设备共用一个智能体,对应相同的AI角色和配置以及记忆体等。

在页面左侧导航下方点击 “+新建智能体”

确定提交后,新建智能体完成后,出现在智能体列表中,如下图示:

第二步:添加新设备

首次添加设备:请在智能体模块上选择“添加设备”按钮,点击进入“添加新设备”入口。

输入提示语中告知6位数字的设备 ID,然后点击“添加设备”按钮,如下图示。

已经添加过设备:请点击对应智能体模块下方 “设备管理” 进入设备列表页面,再通过右侧 “+添加设备” 按钮添加新设备,如下图示:

设备添加后将自动激活,并显示在“设备管理”列表页面上,如上图示,就可以正常使用了,目前测试服务器暂时免费。你可以和你的智能AI 女友聊天了。

3.5. 常见问题

乱码~2级菜单有重叠

按照下面顺序:时间和语言->语言和区域->管理语言设置->更改系统区域设置->勾选Beta版本->确认->重启

 4. 参考文献

GitHub - 78/xiaozhi-esp32: An MCP-based chatbot | 一个基于MCP的聊天机器人

小智 AI 聊天机器人百科全书 - 飞书云文档

面包板ESP32-S3 DIY教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词