使用Seeed Studio Xiao ESP32构建一个可通过网页控制的钢琴
Xiao ESP32运行一个小型Web服务器,向WiFi网络中的任何浏览器提供交互式钢琴键盘。当你轻触琴键(或按下键盘按键)时,浏览器会向ESP32发送HTTP请求,ESP32随后生成相应频率的正弦波,并通过I2S总线将信号传输至MAX98357放大器输出。
功能特点:
- 网页界面:采用HTML/CSS实现完整的25键钢琴,支持点击与物理按键操作
- I2S正弦波发生器:实时生成22.05 kHz、16位立体声正弦波
- 自动播放引擎:内置5首歌曲(《一闪一闪》《欢乐颂》《生日快乐》《铃儿响叮当》《月光奏鸣曲》),并可随机串接播放
- OLED状态显示:实时显示IP地址、当前音符/频率以及自动播放歌曲名称
获取适合项目使用的PCB板
请务必访问PCBWAY在线订购PCB板,价格实惠!
您可获得10块高品质PCB板,低价直接送货上门。首次下单还可享受运费折扣。将您的Gerber文件上传至PCBWAY,即可获得高质量且交货迅速的生产服务。PCBWAY现在可提供从设计到外壳制造的完整产品解决方案。请查看他们的在线Gerber查看器功能。通过奖励积分,您还可以在礼品商店免费获取各种物品。此外,点击此处查看PCBWay为KiCad提供的实用插件博客。使用该插件,您只需在KiCad中完成设计后,一键即可直接订购PCB板。
1. 硬件连接:
2.安装 Arduino IDE 库
打开工具 → 管理库,安装以下内容:
•Adafruit SSD1306(由 Adafruit 提供)
•Adafruit GFX 库(由 Adafruit 提供)
`WiFi.h`、`WebServer.h`、`Wire.h` 和 `driver/i2s.h` 库已内置在 ESP32 Arduino 核心中,无需额外安装。
3. 选择您的开发板
前往工具 → 开发板 → 开发板管理器,搜索“Seeed Xiao ESP32”,并安装该开发板的包。
然后选择:
4. 配置 WiFi
打开 `xiao_piano.ino` 文件,修改第 17 至 18 行:``cpp
仅使用 2.4GHz — ESP32 不支持 5GHz WiFi。
5.上传
点击上传(→),打开工具 → 串行监视器,波特率为115200。你应该能看到:
OLED还会显示IP地址。在同一个WiFi网络中的任意浏览器中打开该URL。
OLED会显示IP地址。在同一个WiFi网络中的任意浏览器中打开它。
6. 如何操作
手动模式
点击或轻触钢琴上的任意按键,或者使用键盘:
提示:如果键盘无法使用,请点击页面任意位置以使其获得焦点。
自动播放模式
在钢琴下方,您会看到三个控制按钮:
•随机(绿色)—— 从库中随机播放一首歌曲
•歌曲选择下拉菜单 — 可选曲目:《一闪一闪》、《欢乐颂》、《生日快乐》、《铃儿响叮当》、《月光奏鸣曲》
•停止(橙色)—— 停止自动播放
当一首歌曲播放完毕后,系统将自动切换为另一首随机歌曲播放——这是一款自动演奏的钢琴。OLED屏幕会显示当前歌曲名称和音符。点击任意按键即可退出自动播放,返回手动模式。
结论
一个 .ino 文件,你就能得到一个 WiFi 钢琴,可以从家中的任何手机、平板或笔记本电脑上播放。内置 5 首歌曲的自动播放模式,让它同时充当一个自动演奏的音乐盒。这是一个有趣的周末项目,集 I2S 音频、I2C 显示屏、WiFi 网页服务和实时合成于一体,全部运行在拇指大小的 Xiao ESP32 芯片上。
本文编译自hackster.io





