传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集

这篇具有很好参考价值的文章主要介绍了传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、接线说明

         使用不同传感器前需要了解其连接及通信方式。对于ESP-WROOM-32 and INMP441麦克风是通过I2S方式进行通信。具体连接引脚参照下图:

esp32 inmp441,Sensor,音视频,matlab,c++
ESP-WROOM-32引脚示意图

         使用的麦克风为MEMS麦克风,具体规格可参照芯片规格数说明。

esp32 inmp441,Sensor,音视频,matlab,c++
INMP441麦克风

        I2S音频连接:

        PIN 14——SCK;PIN 15——WS;PIN 32——SD;VDD——3.3;GND——GND

esp32 inmp441,Sensor,音视频,matlab,c++
实物连接图

二、数据采集测试

        确定接线完成后,这里利用Arduino IDE进行数据采集测试,代码如下:

// 头文件
#include <driver/i2s.h>
 
//按照接线确定编号
#define I2S_WS 15
#define I2S_SD 32
#define I2S_SCK 14
 
// 使用I2S处理器
#define I2S_PORT I2S_NUM_0
 
// 定义缓冲区长度
#define bufferLen 64
int16_t sBuffer[bufferLen];
 
void i2s_install() {
  //设置I2S处理器配置
  const i2s_config_t i2s_config = {
    .mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX),
    .sample_rate = 44100,
    .bits_per_sample = i2s_bits_per_sample_t(16),
    .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
    .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S),
    .intr_alloc_flags = 0,
    .dma_buf_count = 8,
    .dma_buf_len = bufferLen,
    .use_apll = false
  };
 
  i2s_driver_install(I2S_PORT, &i2s_config, 0, NULL);
}
 
void i2s_setpin() {
  // 设置I2S引脚配置
  const i2s_pin_config_t pin_config = {
    .bck_io_num = I2S_SCK,
    .ws_io_num = I2S_WS,
    .data_out_num = -1,
    .data_in_num = I2S_SD
  };
 
  i2s_set_pin(I2S_PORT, &pin_config);
}
 
void setup() {
  // 设置串口监视器
  Serial.begin(115200);
  Serial.println(" ");
  delay(1000);
  // 设置I2S
  i2s_install();
  i2s_setpin();
  i2s_start(I2S_PORT);
  delay(500);
}
 
void loop() {

  // 获取I2S数据并将其放入数据缓冲区
  size_t bytesIn = 0;
  esp_err_t result = i2s_read(I2S_PORT, &sBuffer, bufferLen, &bytesIn, portMAX_DELAY);
 
  if (result == ESP_OK)
  {
    // 读取I2S数据缓冲区
    int16_t samples_read = bytesIn / 8;
    if (samples_read > 0) {
      float mean = 0;
      for (int16_t i = 0; i < samples_read; ++i) {
        mean += (sBuffer[i]);
      }
       // 取数据读数的平均值
      mean /= samples_read;
      // 串口绘图   
      Serial.println(mean);
    }
  }
}

        在串口监视器处能够看到实时读取的声音数据:

esp32 inmp441,Sensor,音视频,matlab,c++

        当打开串口绘图时,可以观察到实时采集的声学数据图:

esp32 inmp441,Sensor,音视频,matlab,c++

三、Matlab上位机读取串口数

        接下来通过Matlab中的APP designer实现数据的读取和显示,并编写了一个简易的操作界面

esp32 inmp441,Sensor,音视频,matlab,c++

        需要定制不同传感器操作界面可联系~文章来源地址https://www.toymoban.com/news/detail-700059.html


到了这里,关于传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ESP32 直接使用WIFI进行UDP通信, 将光敏电阻传感器数值, 显示在OLED上 - 米思齐/Arduino

    ESP32主: 读取光敏传感器数值, 并通过UDP发送 ESP32从: 读取主机发送的数值, 并显示在OLED显示屏上 左边为ESP32, 连接OLED, 为STA模式从机 右边为ESP32, 连接光敏传感器, 为AP+STA主机, 可连接外网和连接从机

    2024年02月13日
    浏览(182)
  • 【ESP32】BL0942功耗传感器SPI接口驱动

    BL0942功耗模块在物联网设备中的应用比较广泛,本博文完成ESP32基于SPI接口驱动功耗BL0942模块(上海贝岭公司)的寄存器的读写,从而可以完成寄存器模式的配置,以及读取寄存器的值完成电流电压,功率等值的计算。 在通信模式下,先发送 8bit 识别字节(0x58) 或(0xA8), (0x5

    2024年02月14日
    浏览(64)
  • ESP32设备驱动-BMP183温度传感器驱动

    BMP183 是 BMP085 的功能兼容后继产品,BMP085 是面向消费类应用的新一代高精度数字压力传感器。 BMP183 的超低功耗、低电压电子器件针对移动电话、PDA、GPS 导航设备和户外设备的使用进行了优化。 BMP183 在快速转换时的低海拔噪声仅为 0.25 米,可提供卓越的性能。 SPI 接口允许

    2024年02月06日
    浏览(56)
  • ESP32设备驱动-DPS310气压传感器驱动

    Infineon 的 DPS310 传感器是一款高精度气压传感器,非常适合测量高度变化,精度高达 ±0.002 hPa(或 ±0.02 m)高精度模式和 ± 1 hPa 绝对精度。 这意味着您可以在设置海平面压力时以 1 = 米的精度知道您的绝对高度,并以高达 2 厘米的精度测量高度变化。 这使其成为适用于无人机

    2024年02月07日
    浏览(41)
  • ESP32应用教程(0)— PMW3901MB光流传感器

    文章目录 前言 1 传感器介绍 1.1 关键特征 1.2 关键参数 2 硬件概述 2.1 信号引脚 2.2 参考电路图 3 寄存器 3.1 寄存器列表 3.2 性能优化寄存器 4 代码说明 4.1 结构体说明 4.2 编译说明 5 波形分析 本文介绍了在 ESP32 DEVKIT V1 开发板上开发 PMW3901MB-TXQ1  光流传感器的过程。 PMW3901MB-T

    2024年02月11日
    浏览(37)
  • ESP32-硬件IIC读取温湿度传感器SHT30

    esp32 使用硬件I2C读取温湿度传感器SHT30,例程基于 EDP-IDF-4.4.X 的I2C Simple Example 例程修改 打开 VSCODE ,通过 查看-- 命令面板(快捷键Ctrl+Shift+P),打开 ESP-IDF 的例程后,选择 i2c_simple 例程,点击 Create project using example i2c_simple,选择自己要存储的目录。【PS:工程的目录不要有中文路

    2024年02月02日
    浏览(42)
  • ESP32应用教程(1)— VL53L3CX距离传感器

    文章目录 前言 1 产品概述 1.1 技术规格 1.2 系统框图 1.3 设备引脚分布 2 工作流程 2.1 系统功能描述 2.2 状态机描述 2.3 测距模式说明 3 控制接口 3.1 设备地址 3.2 I²C写1个字节数据 3.3 I²C读1个字节数据 3.4 I²C写多个字节数据 3.5 I²C读多个字节数据 3.6 I²C 接口 - 参考寄存

    2024年02月11日
    浏览(67)
  • ESP32设备驱动-SCD40二氧化碳湿度和温度传感器驱动

    SCD4x 是 Sensirion 的下一代微型 CO2 传感器。 该传感器基于光声 NDIR 传感原理和 Sensirion 的专利 PASens® 和 CMOSens® 技术,以无与伦比的价格和最小的外形尺寸提供高精度。 SMD 组装允许以成本和空间有效的方式集成传感器,并具有最大的设计自由度。 片上信号补偿是通过内置的

    2024年02月11日
    浏览(41)
  • ESP32设备驱动-MAX30102脉搏血氧饱和度和心率监测传感器驱动

    MAX30102是一款集成脉搏血氧饱和度和心率监测生物传感器模块。 它包括内部 LED、光电探测器、光学元件和具有环境光抑制功能的低噪声电子设备。 MAX30102提供完整的系统解决方案,简化移动和可穿戴设备的设计流程。 MAX30102具有如下特性: LED 反射式解决方案中的心率监测器

    2023年04月18日
    浏览(43)
  • ESP32设备驱动-OLED显示单个或多个DS18B20传感器数据

    在本文中,我们将介绍如何ESP32驱动单个或多个DS18B20传感器,并将DS18B20传感器数据在OLE中显示。 DS18B20 是一种温度传感器,本质上是单线可编程的。 它广泛用于测量存在于硬环境中的化学溶液和物质的温度。 使用此传感器的优势之一是我们只需要 ESP 板上的一个引脚即可传

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包