侧边栏壁纸
博主头像
封存记忆 博主等级

行动起来,活在当下

  • 累计撰写 32 篇文章
  • 累计创建 29 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

小智AI

Administrator
2025-03-02 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

硬件

  • ESP32-S3-N16R8
  • MAX 98257
  • INMP441

接线

MAX 98257ESP32-S3-N16R8
VIN3.3V
GNDGND
DINGPIO7
BCLKGPIO15
LRCGPIO16
INMP441ESP32-S3-N16R8
SDGPIO6
VON3.3V
GNDGND
L/RGND
WSGPIO4
SCKGPIO5

小智刷机教程

小智源码
小智固件下载

# v1.3.0_bread-compact-wifi.zip

烧录教程
小智AI服务注册
小智刷机资料

音频播放 arduino源码

ESP32-audioI2S

#include "Arduino.h"
#include "WiFiMulti.h"
#include "Audio.h"

// Digital I/O used
#define I2S_DOUT      7
#define I2S_BCLK      15
#define I2S_LRC       16

Audio audio;
WiFiMulti wifiMulti;

// config your wifi
String ssid =     "wifi账户";
String password = "wifi密码";

void setup() {

    Serial.begin(115200);

    WiFi.mode(WIFI_STA);
    wifiMulti.addAP(ssid.c_str(), password.c_str());
    wifiMulti.run();
    while(WiFi.status() != WL_CONNECTED){
        WiFi.disconnect(true);
        delay(500);
        Serial.print(".");
        wifiMulti.run();
    }
    audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
    audio.setVolume(5); // 0...21
    audio.connecttohost("http://res.a.hebei9.cn/tv/test.mp3"); //  128k mp3
}

void loop()
{
    audio.loop();
    if(Serial.available()){ // put streamURL in serial monitor
        audio.stopSong();
        String r=Serial.readString(); r.trim();
        if(r.length()>5) audio.connecttohost(r.c_str());
        log_i("free heap=%i", ESP.getFreeHeap());
    }
}

// optional
void audio_info(const char *info){
    Serial.print("info        "); Serial.println(info);
}
void audio_id3data(const char *info){  //id3 metadata
    Serial.print("id3data     ");Serial.println(info);
}
void audio_eof_mp3(const char *info){  //end of file
    Serial.print("eof_mp3     ");Serial.println(info);
}
void audio_showstation(const char *info){
    Serial.print("station     ");Serial.println(info);
}
void audio_showstreamtitle(const char *info){
    Serial.print("streamtitle ");Serial.println(info);
}
void audio_bitrate(const char *info){
    Serial.print("bitrate     ");Serial.println(info);
}
void audio_commercial(const char *info){  //duration in sec
    Serial.print("commercial  ");Serial.println(info);
}
void audio_icyurl(const char *info){  //homepage
    Serial.print("icyurl      ");Serial.println(info);
}
void audio_lasthost(const char *info){  //stream URL played
    Serial.print("lasthost    ");Serial.println(info);
}
0

评论区