本站改版新增arduino频道
import network
import urequests
import ustruct
import machine
import time
# WiFi配置
SSID = 'NBWIFI2'
PASSWORD = 'z7758521'
# MP3文件URL
MP3_URL = 'http://doc.itprojects.cn/0006.zhishi.esp32/01.download/audio/chaojimali.wav'
# 连接WiFi
def connect_wifi(ssid, password):
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('WiFi连接成功:', wlan.ifconfig())
# 初始化I2S
def init_i2s():
i2s = machine.I2S(
0,
sck=machine.Pin(10), #BCLK
ws=machine.Pin(9), #LRC
sd=machine.Pin(11), #DIN
mode=machine.I2S.TX,
bits=16,
format=machine.I2S.MONO,
rate=22000,
ibuf=20000
)
return i2s
# 调整音量
def adjust_volume(data, volume):
samples = ustruct.unpack('<' + 'h' * (len(data) // 2), data)
adjusted_samples = [int(sample * volume) for sample in samples]
adjusted_data = ustruct.pack('<' + 'h' * len(adjusted_samples), *adjusted_samples)
return adjusted_data
# 播放MP3文件
def play_mp3(url, i2s, volume=1.0):
response = urequests.get(url)
#response.raw.read(44) # 跳过开头的44字节音频文件头信息
if response.status_code == 200:
while True:
data = response.raw.read(1024)
if not data:
break
adjusted_data = adjust_volume(data, volume)
i2s.write(adjusted_data)
response.close()
# 主程序
def main():
connect_wifi(SSID, PASSWORD)
i2s = init_i2s()
volume = 1.0 # 设置音量,范围为0.0到1.0
play_mp3(MP3_URL, i2s, volume)
if __name__ == '__main__':
main()
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.0093529224395752 seconds