玩转小智AI智能语音助手-ESP32-S3 WiFi+LCD

ESP32-S3 WiFi+LCD

玩小智AI智能语音助手

关于ESP32-S3开发板

ESP32-S3主要有2种版本:乐鑫标准版 44 IO引脚和GOOUUU 果云版 42 IO引脚

,区别不大,但要选择N16R8 模组的。

必需的模块和准备

  • 开发板:ESP32-S3-DevKitC-1(选择 WROOM N16R8 模组),主要有2种,蓝牙和WiFi天线都集成到开发板一起,一种可以外接天线,一种不可以。建议可以外接天线的,WiFi信号不好时可以通过WiFi天线来增益。
  • 必须模块:
    • MAX98357A I2S功放模块
    • INMP441麦克风
    • 3020喇叭:4欧~8欧,1W~3W喇叭都可以,根据自己需要选择。
  • LCD屏幕,以下五种驱动芯片的都可以,本文是ST7789,注意要买8脚的,7脚的有点麻烦。
    • ST7789:
    • ST7735
    • ST7796
    • ILI9341
    • GC9A01 240×240圆屏
  • 面包板、杜邦线或跳线,建议准备跳线更好。

下图是本文中用到的果云模组ESP32-S3核心板(兼容DevKitC-N16R8) GoouuuESP32开发板,之前买的标准版WiFi连接很慢,连接不上,换了这个稳定。

接线说明:

左边是当前模块 接 开发板引脚 G 就是开发板引脚数字,后面会附上接线图。

麦克风INM441:

  • WS 接 G4
  • SCK 接 G5
  • SD(DIN-代码里) 接 G6
  • L/R 接 GND
  • VDD 接 电源 VCC 3.3V
  • GND 接 GND

MAX98357A和喇 叭:

  • DIN (DOUT-代码里) 接 G7
  • BCLK 接 G15
  • LRCK 接 G16
  • GAIN 不用接
  • SD 不用接
  • GND 接 GND
  • VIN 接 电源 VCC 3.3V

喇叭接MAX98357A模块的喇叭接口即可。

ST7789 240×320-LCD屏幕:

  • GND 接 GND
  • VCC 接 电源 VCC 3.3V
  • SCL/CLK/SCK 接 G21
  • SDA/MOSI 接 G47
  • RST/RES:G45
  • DC:G40
  • CS : G41
  • BLK/B:G42

下面是接线图:

有点凌乱,开发板是反着焊接的,用了一块中型和微型面包板,使用了跳线和杜邦线。只要按照上面管脚接线就行。

下图是小智官方标准版本的接线示意图:

果云版接线图:

编译代码

下载代码

使用git 下载:

git clone github.com/78/xiaozhi-e

也可以直接下载zip文件:

打开 github.com/78/xiaozhi-e,点击Code按钮,选择下载zip:

可以使用迅雷下载更快。

或者打开release界面:github.com/78/xiaozhi-e 下载release源代码,点击直接下载或者用迅雷下载:

下载后解压,待编译。

编译环境安装:

Xiaozhi-esp32是基于esp-idf编写的,因此编译也就需要esp-idf SDK工具包。ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC。它基于 C/C++ 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。ESP-IDF 目前已服务支持数以亿计的物联网设备,并已开发构建了多种物联网产品,例如照明、消费电子大小家电、支付终端、工控等各类物联网设备。

下载ESP-IDF工具

打开ESP官网下载地址:dl.espressif.com.cn/dl/,选择合适的安装包点击下载即可。本文中下载的是5.4最新版本。

下载完成后的安装文件:

双击运行安装,按照提示和建议下一步下一步安装即可。

编译代码

打开ESP-IDF 命令窗口,注意必须是ESP-IDF 命令窗口不是普通的命令窗口,可以在开始中搜索“esp-idf”:

选择2个中的其中一个即可,这里选择:

。启动后:

然后使用命令将目录切换到xiaozhi-esp32代码文件夹,我这里下载的是xiaozhi-esp32-1.4.4源码,解压后的文件夹是D:\xiaozhi-esp32-1.4.4:

cd D:\xiaozhi-esp32-1.4.4

编译配置

编译配置主要修改的内容:

  • 开发板
  • 显示屏
  • Flash 频率和大小
  • 分区表

先清除所有编译和设置

为了方便和设置,也许你之前执行过idf.py命令,那么先清除再开始编译。

清除构建输出:clean

idf.py clean

此命令可清除构建目录中的构建输出文件,下次构建时,工程将完全重新构建。注意,使用此选项不会删除构建文件夹内的 CMake 配置输出。

删除所有构建内容:fullclean

idf.py fullclean

此命令将删除所有 “build” 子目录内容,包括 CMake 配置输出。下次构建时,CMake 将重新配置其输出。注意,此命令将递归删除构建目录下的 所有 文件(工程配置将保留),请谨慎使用。

设置芯片类型

使用 idf.py set-target esp32s3 设置“目标”芯片,虽然默认是ESP32,需要设置ESP32-S3,否者编译时可能找不到管脚设置等编译错误。

直到提示设置成功。如果提示需要clean it ,请根据提示操作 idf.py clean。

这个很重要,一定要在开始配置前执行,之后不要执行,否则配置会被覆盖。

开始开发板配置

执行命令idf.py menuconfig来进行编译配置:

完成后会显示命令行配置界面:

设置开发板和硬件,用上下键选中xiaozhi assistant选项:

然后回车进入:

有4个可变更项,需要修改后面2个:

修改开发板:

选择Board Type变更开发板,回车进入后,向下移动,选择第二个“面包板新版接线(WiFi)+LCD”:

回车会后变更:

修改LCD显示屏:

选择

进入后,有多个可选,根据自己的LCD显示屏选择:

我使用的是2.0英寸240×320 IPS ST7789的LCD,因此选择第一个:

选择后:

按S键先保存一下:

唤醒词设置:

返回到配置主界面,选择ESP Speech Recognition选项:

进入后,再选择Select wake words来设置唤醒词:

进入后,有很多提示词可选项,选择自己喜欢的一个即可,默认是“你好,小智!”:

按S保存后,ESC一路退出配置界面。

确保开发板芯片的准确性。

开始编译

使用命令“idf.py build”开始编译代码,编译开始时要看编译目标类型是esp32s3:

编译代码需要几分钟,这时候耐心等待即可。编译完成后会有提示(红色)和烧录的命令提示(蓝色):

烧录和运行

如果电脑只连接了一块开发板,直接运行idf.py flash 开始烧录:

idf.py flash

如果电脑只连接了多块开发板,需要指定端口:

idf.py -p COM7 flash

也可以使用epstool来烧录,这里idf命令更简洁。

执行idf.py flash开始烧录:

烧录完成后:

如果接线正确,不出意外,开发板会播报:进入配网模式,显示屏也会显示配网模式,并且RGB等蓝色闪烁:

备注:(编译器前手抖将显示器设置为240×280的配置了,因此,显示屏未显示满)

开始配网:

打开手机wifi列表,找到Xiaozhi-24F5(可能不同开发板不一样,xiaozhi开头)的wifi连接:

连接后就自动进入配网界面:

输入2.4Gwifi 名称和密码后,点击连接开始设置,设备重启后即可开始小智AI之旅。

配置智能体:

配网完成后,会提示登录到控制面板添加设备并播报一串数字验证码,同时屏幕也会显示激活设备和验证码:

打开小智AI后台:

xiaozhi.me/ ,点击控制台:

如果没有登录会提示登录,没有账号可以注册一个:

或者直接用手机后登录:

默认会有一个台湾女友的角色,可以使用这个角色也可以再创建一个。这里直接使用台湾女友的角色,点击添加设备添加开发板开启AI女友之旅:

激活后,就可以使用了。

开始AI之旅

按住按钮就可以开始说话了,需要说话时按住按钮说话即可,完成后松开按钮。

配置不同的角色

控制台智能体上有个配置角色按钮,点击进入后可以配置角色:

输入