esp32wroom32 inmp441麦克风
时间: 2025-05-21 20:41:51 浏览: 28
### 关于ESP32-WROOM-32与INMP441麦克风的集成和使用
#### 材料准备
为了完成ESP32-WROOM-32与INMP441麦克风的集成,需要以下硬件和软件资源:
- **硬件**: ESP32-WROOM-32开发板、INMP441麦克风模块。
- **软件**: Arduino IDE环境配置完毕并安装必要的库文件(I2S库、WiFi库等)。具体可以参考Arduino官方文档或第三方教程。
#### 连接方式
ESP32-WROOM-32与INMP441之间的连接主要依赖于I2S接口协议。以下是具体的引脚映射关系[^1]:
| ESP32 Pin | Function | INMP441 Pin |
|-----------|----------------|-------------|
| GPIO26 | BCLK (Bit Clock) | BCLK |
| GPIO25 | WS (Word Select/LRCLK) | LRCLK |
| GPIO22 | DIN (Data Input) | SDOUT |
注意:以上GPIO编号可能因实际电路设计而有所不同,请务必查阅所使用的开发板的具体资料确认引脚定义。
#### 软件设置
在Arduino环境中编写程序来初始化I2S设备并与麦克风通信。下面是一个简单的代码示例用于读取来自INMP441的数据并通过串口打印出来:
```cpp
#include <driver/i2s.h>
void setup() {
Serial.begin(115200);
i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),
.sample_rate = 16000,
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
.communication_format = I2S_COMM_FORMAT_I2S_MSB,
.intr_alloc_flags = 0,
.dma_buf_count = 8,
.dma_buf_len = 64,
.use_apll = false,
.tx_desc_auto_clear = true,
.fixed_mclk = 0
};
i2s_pin_config_t pin_config;
pin_config.bck_io_num = 26; // Bit clock output
pin_config.ws_io_num = 25; // Word select output
pin_config.data_out_num = I2S_PIN_NO_CHANGE; // Not used in RX mode
pin_config.data_in_num = 22; // Data input
i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
i2s_set_pin(I2S_NUM_0, &pin_config);
}
int16_t sample;
void loop() {
size_t bytes_read;
i2s_read(I2S_NUM_0, &sample, sizeof(sample), &bytes_read, portMAX_DELAY);
if(bytes_read > 0){
Serial.println((float)sample / INT16_MAX); // Normalize and print to serial monitor.
}
}
```
此段代码实现了基本的功能——从麦克风接收声音信号并将它们转换为数值形式显示到电脑上的串行监视器中[^2]。
#### 测试与调试
测试阶段可以通过观察串口输出判断是否成功获取到了有效的音频数据流;另外还可以借助Wireshark这样的网络分析工具捕获由ESP32发送出去的UDP包以进一步验证整个系统的正常运作情况[^1]。
阅读全文
相关推荐













