Task2:ESP32代码学习和基础API需求
第一部分:项目全景与目标
  • 项目核心:基于ESP32-S3主控的“WhaleBot鲸鱼小车”。
  • 最终能力:让小车成为一个联网的智能终端,能够接收来自“天问”平台(或其他上位机)的指令,并整合百度AICoze AI的能力,实现语音交互智能对话
  • 学习路径:本笔记涵盖从软件开发环境搭建->外部AI服务申请->程序烧录与测试的完整闭环。
第二部分:软件开发环境搭建(Arduino IDE篇)

1. 安装Arduino IDE

  • 作用:编写、调试、上传代码到ESP32-S3主板的唯一工具。
  • 版本:推荐使用官网最新版(如2.3.7),兼容性最好。
  • 关键操作:安装后首次打开,无需额外配置。

2. 安装ESP32-S3主板支持包(核心步骤)

  • 为什么需要:Arduino IDE默认不支持ESP32系列芯片,必须手动添加。
  • 推荐方法离线安装(稳定、快速,避免网络问题)。
  • 详细步骤
    1. 获取ESP32离线支持包(通常是一个压缩包)。
    2. 找到Arduino的软件包存放目录:C:\Users\[你的用户名]\AppData\Local\Arduino15\packages
      • 提示:AppData是隐藏文件夹,需要在文件管理器选项中开启“显示隐藏的项目”。
    3. 将离线包解压到上述packages目录中。
    4. 重启Arduino IDE。
    5. 验证安装:点击“工具” -> “开发板” -> 查看列表中是否出现“ESP32 Arduino”系列,并选择“ESP32S3 Dev Module”

3. 安装必要的程序库(Library)

  • 库是什么:他人编写好的功能代码包,避免我们重复造轮子。
  • 安装位置:IDE菜单栏“工具” -> “管理库…”。
  • 必须安装的库清单
    • Base64by Densaugeo (编码解码用)
    • ArduinoJsonby Benoit Blanchon (处理JSON数据,与API通信必备)
    • UrlEncodeby Masayuki Sugahara (对URL进行编码)
  • 注意:以下库通常包含在ESP32支持包中,无需单独安装,但代码中会用到:
    • WiFi.h(连接Wi-Fi)
    • HTTPClient.h(发起网络请求)
    • driver/i2s.h(处理音频输入输出)
第三部分:AI能力接入(API申请与配置篇)

1. 百度智能云 - 赋予“听觉”与“嗓音”

  • 功能语音识别(ASR)将你的话转为文字;语音合成(TTS)将文字转为语音播放。
  • 申请流程
    1. 注册/登录百度智能云,完成个人实名认证。
    2. 领取免费资源:在产品服务中找到“语音技术”,领取“短语音识别”的免费额度。
    3. 创建应用
      • 应用名称:自拟(如“我的智能小车”)。
      • 包名:可留空或随意填写。
      • 接口选择:务必勾选“语音识别”和“语音合成”
      • 应用类型:个人。
    4. 获取密钥:创建成功后,在应用详情页找到API KeySecret Key立即复制保存
    5. 开通付费:在控制台为“短语音识别”服务开通**“按量后付费”**,这是使用免费额度的前提。

2. Coze.cn - 赋予“大脑”与“智慧”

  • 功能:提供大语言模型能力,让小车能理解问题并生成有逻辑的回复。
  • 申请流程
    1. 注册/登录Coze.cn。
    2. 创建Bot(智能体)
      • 点击“创建”,输入名称和描述,其他配置可暂不修改。
      • 点击“发布”。
    3. 获取Bot ID:发布后,浏览器地址栏URL中/bot/后面的那串字符就是bot_id,复制保存。
    4. 获取API访问令牌
      • 进入“API管理” -> “授权” -> “个人访问令牌”。
      • 点击“添加令牌”,权限务必选择“全部”
      • 【致命警告】:生成的pat_开头的令牌只会显示一次,必须立即妥善保存,丢失无法找回。
第四部分:程序烧录与首次运行

1. 获取并打开项目代码

  • 从项目资料中获取完整的.ino程序文件。
  • 用Arduino IDE打开该文件。

2. 关键配置与烧录前设置
在IDE的“工具”菜单中,依次确认:

  • 开发板ESP32S3 Dev Module
  • PSRAMOPI PSRAM(ESP32-S3一般具有外部PSRAM,此选项可提升性能)
  • 端口:选择你的ESP32-S3连接的COM口(插入USB后会出现)。

3. 修改配置文件

  • 在代码中找到config.h或类似的文件头部分。
  • 填入你的专属信息
    • WIFI_SSIDWIFI_PASSWORD:你的Wi-Fi名称和密码。
    • BAIDU_APP_KEYBAIDU_SECRET_KEY:从百度云获取。
    • COZE_BOT_IDCOZE_API_TOKEN:从Coze获取。

4. 编译与上传

  • 点击IDE左上角的“→”箭头(上传按钮)。
  • IDE会先编译代码,然后自动上传到ESP32-S3。
  • 上传成功标志:看到“Hard resetting via RTS pin…”等提示,且下方日志显示上传完成。

5. 观察运行结果

  • 打开IDE的“串口监视器”(右上角放大镜图标)。
  • 设置正确的波特率(通常为115200)。
  • 你将看到:
    1. 串口打印连接Wi-Fi的日志。
    2. 连接成功后,显示“WiFi Connected!”和获得的IP地址。
    3. 最后一行提示:“等待指令(指令由天问发送)…”
  • 至此,硬件基础平台与AI服务通道已全部就绪,小车已进入等待控制指令的状态。
第五部分:核心信息检查清单(一站式核对)

在开始前,请确保你已齐备以下所有“钥匙”:

类别需要准备的信息获取来源/备注
开发环境Arduino IDE 软件官网下载安装
ESP32-S3离线支持包解压到Arduino15/packages目录
三个第三方库 (Base64, ArduinoJson, UrlEncode)通过IDE库管理器在线安装
网络可用的Wi-Fi名称(SSID)和密码你的家庭/手机热点网络
百度云API Key百度云应用列表
Secret Key百度云应用列表
Cozebot_id发布Bot后,从浏览器地址栏复制
个人访问令牌(以pat_开头)Coze API管理页生成,仅一次
总结与核心逻辑梳理
  1. 硬件是身体:ESP32-S3是核心,负责执行所有操作。
  2. 代码是灵魂:我们编写的程序定义了硬件的行为逻辑。
  3. API是外挂技能:通过百度云获得“听和说”的技能,通过Coze获得“思考”的技能。
  4. Wi-Fi是神经:连接所有部分,让数据(语音、指令、回复)能够自由流动。
  5. 完整工作流上电->连接Wi-Fi->等待指令->接收指令->调用百度API识别语音->调用Coze API思考回复->调用百度API合成语音->播放结果

课程来自:AI+硬件:动手做智能鲸鱼小车Task2