ESP32 ESP8266 WiFi 麦克风

该项目是 ESP32 ESP8266 WiFi 麦克风 固件 arduino 源代码 (.ino),用于在线音频流并录制音频。
该项目具有链网络功能选项。 “链式网络”是一种将设备一一连接起来的本地网络。 因此,您可以在无线 (OTA) 网络中添加多个 WiFi 麦克风或摄像头,并收听每个设备的音频流和视频流。
“Ai Thinker ESP12”模块(ESP8266MOD)和 NodeMCU 有一个 ACD 引脚(工作范围为 0V 至 3.3V),分辨率为 10 位(0-1023)。 该引脚位于 RST 和 EN 之间。 在“WiFi麦克风”项目中,我们使用该通道作为音频信号输入。
该项目中有以下文件:
ESP8266WiFiMicrophone.ino/ESP32WiFiMicrophone.ino(主处理程序文件)
user_global.h – 项目全局变量和定义文件。
user_init.ino – 项目初始脚本文件。
user_loop.ino – 该文件有一个重复调用的“userLoop()”函数(如arduino“loop()”函数)。
user_settings.ino – 项目设置文件。
user_main.ino – 音频播放器处理程序脚本。
user_sub.ino – 网络监视器处理程序脚本。
Webapp.h – 该文件包含 WiFi 麦克风 WebApp 的脚本。
该项目兼容具有 ADC 引脚的 ESP8266 模块,例如 ESP-12-E 和 ESP8266 NodeMCU。
网络应用程序:

WaveShare 声音传感器 ESP32 ESP8266 WiFi 麦克风
WaveShare 声音传感器是一款采用 LM386 的音频放大器和传感器。 该模块与该项目兼容。

带有 “NodeMCU” 和 “Waveshare 声音传感器” 的电路:

或者,您还可以为此项目使用以下原理图(使用 LM386):

在上面的原理图(LM386 和 ESP8266MOD)中,LED1 显示电源已打开,SW1 是 ESP8266 模块复位按钮,H1 是模块的 UART 连接器(用于烧写/编程),H2 排针需要跳线以将 ESP12 模块放入 闪存编程模式。
麦克风模块有一个电位器 (P1),用于校准输入音频信号。 在低电平时,音频噪音会减少,但输出音频较弱;在高电平时,您可以听到很小的声音,但噪音更大。
最好使用具有 2A 输出漏电流能力的 5-12V 电源。
该模块必须仅接收 3.3v(来自 LF33 稳压器)。 较高的电压会损坏模块。
自动录音机
您可以使用准备好的 SD/MMC 存储卡模块(带有电阻器和 3.3V 稳压器),也可以使用插槽并将电阻器添加到电路中。
如果您使用 NodeMCU,建议使用带有 3.3V 稳压器的内存模块,并为其提供 5V(“Vin”)电压,因为这样可以减少 ESP 模块的电源噪声和 ESP 模块内部稳压器的热量。

要自动录制声音,请插入存储卡,打开模块并选择灵敏度(噪音较大时为10db、20db和30db)。
然后设备开始听到噪音,一旦听到负载足够的噪音,它就会开始以选定的质量和录制时间将其录制在 .wav 文件中。
录制完成后,该文件将在文件管理器中可用。

- 您可以同时录制音频并在线收听流媒体,但在这种情况下,质量可能会降低。
- 打开文件管理器会停止录制。
- 录音期间 LED 将闪烁。
链网 (Chain Network)
“链式网络”是一种将设备逐一连接(系列)的本地网络。 在链式网络中,第一台设备是网络的主设备。 启动器(主模块或最后加入的模块)直接连接到 WebApp。 它将命令发送到下一个设备,下一个设备将命令发送到下一个设备,直到最后一个设备。 最后一个设备响应将被发送到第一个设备,最后通过中间设备发送到WebApp。
ESP32 ESP8266 WiFi麦克风 Web 应用程序
插上电源,以“正常模式”打开电路和模块。
然后,如果您使用 ESP12,板上的蓝色 LED 将打开。 然后您就可以通过PC或智能手机中的WiFi网络看到模块的热点ssid。
默认 SSID 为 WiCardMic,默认密码为 12345678。使用 PC 或智能手机网络浏览器(Chrome 或 Firefox)连接并访问 192.168.4.1。
这是网络用户界面:

加载页面后,模块立即自动开始录制和缓冲。 通过单击播放按钮,将播放录制的声音。
该页面自动将音频数据记录到浏览器的缓存中。 您还可以同时播放音频和现场聆听音频。
建议在点击播放按钮之前,等待几秒钟进行缓冲。
预设时间可以是 5 分钟、10 分钟、30 分钟和 60 分钟。 过了这段时间,您可以刷新页面并再次记录。
要直接下载音频文件,请访问192.168.4.1/0(或路由器给定的IP)。
在音频播放器上方,您可以看到目标设备。
如果关闭网页,录制将中止。
不要同时打开两个页面。 该模块一次只能处理一页。
WiFi信号强度影响模块性能和音频流。
该网络应用程序还与手机和移动设备浏览器兼容。
菜单
Web 应用程序分为 4 个菜单。 可以通过单击菜单按钮来选择菜单。
“Online Stream“ 实时音频播放器”页面,“Network” 是指网络 WiFi 麦克风监视器(示波器),“File Manager” 是指存储卡访问,“Settings” 是指设置和配置页面。
网络示波器和监视器
在 “Network” 页面中,有 4 个示波器/监视器通道。 这意味着您最多可以将 4 个设备(WiCard 麦克风或 WiCard 摄 像 头)添 加 到 链 网 络 中,并 同 时 查 看 音 频 信 号 或 在 线 视 频 流。

通 过 点 击 每 个 通 道,音 频 播 放 页 面 中 的 目 标 设 备 将 更 改 为 所 选 设 备。
Settings
Web 应用程序的设置菜单分为 5 个部分:
调制解调器配置
在此部分中,您可以看到可用的接入点、连接状态、设备 MAC 地址和 DHCP IP。
此外,在此部分中,您还可以设置调制解调器接入点的 SSID 和密码。
如果调制解调器不可用,请清除 SSID 文本框并保存。
设备热点配置
在此部分您可以设置模块的热点 SSID 和密码。
安全链接是一个字符串,将添加到模块 IP 地址的末尾。 例如,如果您将其设置为“123”,则模块的WebApp的IP地址将为192.168.4.1/123,而不是192.168.4.1
偶数表示默认 IP 为 192.168.4.1,奇数表示默认 IP 为 192.168.5.1
隐藏热点将设置热点隐藏。
临时热点将在模块连接到调制解调器或加入网络后立即禁用热点(对于网络中的最后一个设备)。
SSID 必须不含空格,以防您要将设备加入网络。
麦克风配置
在这个部分:
您可以设置设备的网络通道。 频道必须是 0-7 之间的数字,并且设备不能具有相同的频道。
“Audio Stream Sample Rate” 可以是 12、18 或 24 KHz。
“Audio Stream Packet Length” 可以是 5、10、30 或 60 分钟。
“Audio Stream Resolution” 可以是 8 位或 10 位。
对于 240Kbps,将采样率设置为 24 KHz,分辨率设置为 10 位。
本地网络配置
在本节中,您可以设置“Master”设备,还可以设置 userGlobal() 函数执行延迟。
链接的 WiCard IP 是链接设备到模块接入点的 IP。
如果不打开“需要加入”开关,该模块将被设置为Master
本地网络地图
在本节中,将显示链网络中的连接设备。
对于主设备,它从主设备的 SSID 开始,然后是第二个 ESP 设备,直到最后一个,但对于最后一个设备,排序反之亦然。
在目标文本框中输入目标设备 SSID,示波器将显示目标设备信号。
ESP32 和 ESP8266 都可以传输网络中其他模块的音频数据。
ESP32 ESP8266 WiFi 麦克风项目
这些项目以及 ESP8266 WiFi 麦克风、ESP32 WiFi 麦克风、ESP32 IP 摄像头 和 ESP32 摄像头 麦克风 的完整包可在以下位置获取:

作者:M. Mahdi K. Kanan – 全栈电子和编程工程师、WiCardTech 创始人