数码之家

标题: esp32做蓝牙音响,可以改名字,调音量 [打印本页]

作者: mckk520    时间: 2022-11-30 08:11
标题: esp32做蓝牙音响,可以改名字,调音量

#include "BluetoothA2DPSink.h"

BluetoothA2DPSink a2dp_sink;

#define I2S_DOUT      25
#define I2S_BCLK      27
#define I2S_LRC       26

   i2s_pin_config_t  my_pin_config =
     {
        .bck_io_num = 27,
        .ws_io_num = 26,
        .data_out_num = 25,
        .data_in_num = I2S_PIN_NO_CHANGE
    };

    a2dp_sink.set_pin_config(my_pin_config);
    a2dp_sink.start("ESP32Music");

a2dp_sink.set_volume(  yingliang  ); //21

,,
,

作者: alangxl    时间: 2022-11-30 08:57
玩程式的大佬
作者: xushu    时间: 2022-11-30 08:58
这个代码实在看不懂。
作者: beiling    时间: 2022-11-30 09:53
大佬们都很厉害  就是现在的附件下载真是贵
作者: mckk520    时间: 2022-11-30 10:36
,用屏幕显示,

ESP32链接 NS4168功放芯片,再链接;喇叭就可以了
,


,[attach]1678137[/attach]
,
[attach]1678138[/attach]

,
//========程序全文


  1. #include <EEPROM.h>



  2. #include "BluetoothA2DPSink.h"




  3. BluetoothA2DPSink a2dp_sink;


  4. //===========esp32  对应 NS4168功放芯片脚位
  5. #define   pken    12   //    CTRL脚 1

  6. #define I2S_DOUT      25 //4
  7. #define I2S_BCLK      27//3
  8. #define I2S_LRC       26//2












  9.     #define   key1    0    //



  10. #define   copy_key1     15    // 收藏


  11. #define   xia_key1     2    //=========调节音量

  12. #define  bof_mode_key1     0    //

  13. #define   shang_key1    4    //=======调节音量

  14. #define   set_key1     5    //


  15. unsigned char yingliang;

  16. unsigned char  bkyingliang;

  17. bool  ksf;
  18. bool kxf;



  19. void setup()
  20. {

  21.     delay(10);

  22.    
  23.   Serial.begin(115200);
  24.   Serial.println("");

  25. pinMode( copy_key1   ,INPUT_PULLUP);    //定义 为带上拉输入引脚  
  26.   pinMode( xia_key1  ,INPUT_PULLUP);    //定义 为带上拉输入引脚  
  27.    pinMode(  bof_mode_key1  ,INPUT_PULLUP);    //定义 为带上拉输入引脚  
  28.     pinMode(  shang_key1  ,INPUT_PULLUP);    //定义 为带上拉输入引脚  
  29.      pinMode(  set_key1  ,INPUT_PULLUP);    //定义 为带上拉输入引脚  



  30.    delay(45);
  31. Serial.print("DR0;"); //DR0;
  32. Serial.print("CLS(0);"); //CLS(0);
  33. Serial.print("DS16(10,2,'\xC0\xB6\xD1\xC0',15);"); //DS16(0,0,'蓝牙',15);
  34. Serial.print("DS32(10,40,'ESP32Music',2,0);"); //
  35. Serial.print("\r\n");

  36.     delay(45);


  37.   delay(100);
  38.   EEPROM.begin(128);


  39.   delay(100);




  40.   
  41.   Serial.println("");




  42. int eeg = EEPROM.read( 7 );


  43.    Serial.print("===读取储存7=");


  44.   Serial.println(  eeg );
  45.   

  46. if(  eeg  != 8 )
  47. {

  48.   
  49.   yingliang=0x50;


  50.   
  51.   EEPROM.write(7, 8 );



  52.    EEPROM.write(6 ,  0x50 );//80  % 音量
  53.   EEPROM.commit();

  54.   delay( 22 );

  55.   
  56. }




  57. eeg = EEPROM.read( 7 );


  58.    Serial.print("===读取储存7=");


  59.   Serial.println(  eeg );


  60.   delay( 22 );
  61. yingliang =  EEPROM.read( 6 )  ;
  62.   delay( 22 );


  63.   Serial.print("===读取储存音量=");


  64.   Serial.println(  yingliang );


  65. if( yingliang<=0)
  66. yingliang=0;
  67. if( yingliang>=99)
  68.   yingliang=99;
  69.   

  70. bkyingliang =yingliang+1;

  71.   

  72.    pinMode( pken , OUTPUT );// 喇叭

  73.   delay( 22 );

  74.         digitalWrite( pken ,  0  );

  75.   delay( 22 );

  76.    i2s_pin_config_t  my_pin_config =
  77.      {
  78.         .bck_io_num = 27,
  79.         .ws_io_num = 26,
  80.         .data_out_num = 25,
  81.         .data_in_num = I2S_PIN_NO_CHANGE
  82.     };

  83.    
  84.     a2dp_sink.set_pin_config(my_pin_config);
  85.     a2dp_sink.start("ESP32Music");//蓝牙名称




  86. a2dp_sink.set_volume(  yingliang  ); //21

  87.   delay( 200 );

  88.         digitalWrite( pken ,  1  );

  89.   delay( 22 );
  90.   
  91. }



  92. String daosstt="";







  93. void loop()
  94. {




  95. //====================================
  96. //========= 调节音量 并断电保存
  97.    if (digitalRead(  xia_key1 )==0 )
  98.    {

  99. if(kxf)
  100. {
  101.   kxf=0;
  102.   if(yingliang>0)  
  103. yingliang--;

  104. }
  105.    
  106.    }
  107.    else
  108.    {

  109.     kxf=1;
  110.    }

  111.       if (digitalRead( shang_key1  )==0 )
  112.       {
  113. if(ksf)
  114. {
  115.   ksf=0;
  116. if(yingliang<99)  
  117. yingliang++;


  118. }
  119.         
  120.       }
  121.       else
  122.       {


  123.         ksf=1;
  124.       }



  125. if(bkyingliang !=yingliang)
  126. {
  127.   
  128. bkyingliang =yingliang;


  129.   a2dp_sink.set_volume(  yingliang  ); //21


  130. daosstt="";
  131. daosstt+="DS32(10,90,'";
  132. if(yingliang<10)
  133. daosstt+="0";
  134. daosstt+= String( yingliang );
  135. daosstt+="',4,0);";
  136. daosstt+="\r\n";
  137. Serial.print(  daosstt );

  138.     delay(35 );
  139.    
  140.    EEPROM.write(6 ,  yingliang );
  141.    EEPROM.commit();
  142.   
  143.    delay(35 );
  144.   

  145. }


  146.    delay(1);

  147.   
  148. }


复制代码






作者: devcang    时间: 2022-11-30 11:39
本帖最后由 devcang 于 2022-11-30 11:43 编辑
beiling 发表于 2022-11-30 09:53
大佬们都很厉害  就是现在的附件下载真是贵

嗯   

咱只看看先了。。。。


是不是这个贴 https://www.mydigit.cn/thread-272695-1-1.html

作者: skyrusher    时间: 2022-11-30 13:55
貌似我还有I2S的板子,回头试试。
作者: mckk520    时间: 2022-12-3 23:53
,
,
,
[attach]1681419[/attach],
[attach]1681421[/attach],
,
[attach]1681420[/attach],
,

作者: mckk520    时间: 2022-12-4 16:22

16:18:28.319 -> ======网络歌曲=获取=== dj
16:18:28.412 -> ===mp3_http_get== 网络获取歌曲==========
16:18:28.974 -> PS32(1,130,82,'59',15,0);
16:18:29.021 ->
16:18:29.021 -> ====长度=:  82072

16:18:32.578 -> ==传输 长度=:  82072
16:18:32.578 -> ==获取到曲目=:  100
16:18:32.624 -> ==节目[ 1 ] =:2002190019-->羊了个羊
16:18:32.624 -> ==节目[ 2 ] =:2002979119-->Down lowly 越鼓
16:18:32.624 -> ==节目[  100 ] =:-->

作者: tom666123    时间: 2022-12-10 23:37
厉害,手头一堆esp32,收藏吃灰
作者: apq    时间: 2022-12-15 22:04
esp23d的EEPROM应该是flash模拟的,掉电就恢复了应该用Preferences.h




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4