19-ESP32_豆包AI语音智能风扇
基于ESP32与豆包AI的语音智能风扇
AI语音交互 · 自然语言控制 · PWM调速 · 物联网
一、项目简介
本项目将ESP32单片机与字节跳动豆包AI大模型结合,打造了一款语音控制的智能风扇。用户通过自然语言下达指令(如"风大一点""吹自然风""定时关机"),ESP32录音后上传至豆包AI进行语义理解,AI返回控制指令,单片机据此调节风扇转速和模式。
系统支持自然风、睡眠风、强力风等多种模式,支持定时开关机和语音调速。相比传统红外遥控风扇,AI语音交互更自然、更灵活,是AIoT应用的典型案例。
项目属性 | 说明 |
主控平台 | ESP32 |
开发语言 | C语言 |
开发环境 | Keil C51 / Keil MDK |
仿真工具 | Proteus(部分项目) |
图1-1 系统整体效果图
二、系统总体架构
本系统以单片机为核心,外围连接传感器、显示模块、按键模块和执行机构。系统总体架构如下:单片机通过相应接口与各外设通信,采集传感器数据后进行处理,结果输出至显示模块,同时根据逻辑控制执行机构动作。
图2-1 系统总体架构框图
模块 | 功能描述 |
主控模块 | 系统核心,负责数据采集、逻辑处理和输出控制 |
传感器模块 | 采集环境参数(温度/光照/按键输入等) |
显示模块 | LCD1602/OLED实时显示数据和状态 |
按键模块 | 用户输入,参数调整和模式切换 |
执行机构 | 蜂鸣器/LED/电机等,执行报警和驱动动作 |
三、硬件设计
3.1 核心器件选型
器件 | 型号 | 说明 |
主控芯片 | ESP32 | 双核240MHz,WiFi+蓝牙 |
AI服务 | 豆包大模型 | 语音识别+语义理解 |
电机驱动 | L298N/MOS管 | PWM调速控制风扇 |
麦克风 | INMP441 | I2S数字麦克风 |
喇叭 | MAX98357 | 语音反馈播放 |
图3-1 核心器件实物图
3.2 引脚分配
单片机各引脚分配如下表所示,在设计时需注意引脚复用和电平匹配问题:
引脚 | 连接 | 功能描述 |
GPIO4/GPIO5 | I2S MIC | 麦克风数据/时钟 |
GPIO25/GPIO26 | I2S SPK | 喇叭数据/时钟 |
GPIO14 | PWM | 风扇PWM控制 |
GPIO0 | KEY | 配网/唤醒按键 |
图3-2 引脚分配电路原理图
四、软件设计
4.1 软件流程
按键唤醒→I2S录音2~5秒→HTTP上传至豆包AI→AI返回控制指令(风速/模式/定时)→解析指令→调节PWM输出→TTS语音反馈"好的,已调到3档"。
图4-1 主程序流程图
4.2 模块划分
源文件 | 模块名称 | 功能描述 |
audio.c | 音频采集 | I2S录音+音频编码 |
ai_client.c | AI通信 | HTTP请求豆包API |
fan_ctrl.c | 风扇控制 | PWM调速+风型模式 |
wifi.c | 网络 | WiFi连接+HTTP通信 |
4.3 关键代码
以下代码均从项目工程源文件中直接提取,完整展示了各模块的核心实现:
📄 qqq.ino — 完整 ESP32-S3 豆包语音程序







































五、项目文件结构
项目工程的目录结构如下,展示了源代码文件的组织方式:

六、功能演示
系统功能演示步骤如下:
1. 按键唤醒,说"开风扇"
2. AI识别后开启风扇,语音回复确认
3. 说"风大一点",风速增大
4. 说"吹自然风",切换自然风模式
5. 说"30分钟后关机",定时关闭
图6-1 功能演示照片/截图
图6-2 运行状态特写
七、总结
本项目展示了AI大模型在嵌入式设备上的创新应用。ESP32作为边缘节点采集语音,云端AI进行语义理解,实现了自然语言交互。这种"端云结合"模式是AIoT的未来方向。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— END —

浙公网安备 33010602011771号