使用WebSocket协议实现在ESP32上音频接收播放

 主要目的:学习WebSocket通讯协议和ESP32开发

所需配置:Pycharm, python3.12, ESP32S3N16R8, 扬声器(8欧,2W), 功放模块:MAX98357 I2S AMP。

一、介绍 

1、WebSocket协议 

WebSocket是一种网络通信协议,位于OSI模型的应用层。它提供了在单个TCP连接上进行全双工通信的能力,使得客户端和服务器之间的数据交换变得更加实时和高效。

WebSocket协议主要特点如下:

  1. 全双工通信:在WebSocket协议下,客户端和服务器可以在任何时候,互相发送消息,而不需要轮询。

  2. 持久连接:一旦建立WebSocket连接,客户端和服务器之间的连接会持续开放,直到任何一方显式地关闭连接。

  3. 减少开销:与HTTP相比,WebSocket减少了频繁的头部和握手信息,因此在大量数据交换时,可以减少延迟。

  4. 握手:WebSocket连接的建立是基于HTTP的,使用HTTP的Upgrade头从HTTP协议切换到WebSocket协议。

  5. 消息格式:WebSocket传输的数据可以是文本格式,也可以是二进制格式。

  6. 服务器推送:服务器可以主动推送信息到客户端,这对于实时应用,如在线游戏、实时交易系统等是非常有用的。

WebSocket协议广泛应用于需要实时互动的应用中,如即时聊天、游戏、实时交易系统、在线协作工具等。

WebSocket协议的URL以ws://wss://开始,其中wss://表示使用了SSL加密的WebSocket连接。这个协议在现代的浏览器中得到了广泛的支持。

2、ESP32

ESP32是一款由乐鑫信息科技(Espressif Systems)推出的低成本、低功耗的系统级芯片(SoC),它集成了Wi-Fi和双模蓝牙(经典蓝牙/蓝牙低功耗BLE)功能。ESP32适用于各种物联网(IoT)应用、智能家居项目、无线通信产品以及其他需要网络连接的嵌入式系统。

二、具体实现

(1)服务器端(发送音频):

由于WebSocket可接受的url地址是ws://和wss://(加密)格式的,网上暂时没有找到现成的地址,因此验证时可以自己搭建一个简易服务器。

环境搭建:Python3.12    Pycharm

需安装包:pip install asyncio websockets wave

服务器地址和端口:本电脑当服务器,IP地址就填本电脑的。端口号可以自己配置

查看自己电脑的IP地址请参考:如何快速查看电脑ip地址?四种方法告诉你_电脑ip地址查询-CSDN博客

音频文件:daoxiang.wav

启动方式:点击运行WebServer.py(当前脚本),服务器启动,一直运行

具体代码:

import asyncio
import websockets
import wave

# 服务器地址和端口
HOST = '172.19.1.180'  # 可以替换为服务器的实际 IP 地址或域名(本电脑的IP地址)
PORT = 8765            # WebSocket 服务器端口

# 音频文件路径
AUDIO_FILE_PATH = 'D:\\daoxiang.wav'  # 音
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值