Steffs & Gränds Soundbox

Das Ausstandsgeschenk für zwei Kollegen powered by Arduino.

Soundbox

Die Soundbox ließt über einen RFID-Leser eine RFID-Karte aus und spielt eine ihr fest zu geordnete MP3-Datei ab.

Zusätzlich erhält die Soundbox drei Taster :

  • Lauter
  • Leiser
  • Wiedergabe unterbrechen

Design des Holzgehäuses by Kollege Teflonson.

Benötigte Bauteile

  • Arduino Nano
  • Mini-MP3-Player Modul
  • PCB für das Tonuino-Projekt / Selbst erstellen oder im Set kaufen
  • Drei Taster
  • Zwei Lautsprecher mit kleiner gleich 3 Ohm
  • RFID-Leser

Galerie

Die Bildergalerie zeigt den fertigen Aufbau samt Gehäuse usw.



.....

Quellcode


#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include "MFRC522.h"
#include "JC_Button.h"
/*---------------------------------------------------------------------------*/
#define RST_PIN 9                 // Configurable, see typical pin layout above
#define SS_PIN 10                 // Configurable, see typical pin layout above
#define DEBOUNCE 10
/*---------------------------------------------------------------------------*/
Button PLAY_PAUSE(14);
Button VOLUME_UP(15);
Button VOLUME_DN(16);
/*---------------------------------------------------------------------------*/
MFRC522 rfid(SS_PIN, RST_PIN); // Create MFRC522
byte nuidPICC[4];
/*---------------------------------------------------------------------------*/
SoftwareSerial mySoftwareSerial(2, 3); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
/*---------------------------------------------------------------------------*/
String RFID_UID = "";
String RFID_UID_alt = "";
/*---------------------------------------------------------------------------*/
int volume = 30;
/*---------------------------------------------------------------------------*/
static unsigned long timer = millis();
/*---------------------------------------------------------------------------*/
void setup()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  Serial.println("Initialisiere Buttons");
  PLAY_PAUSE.begin();
  VOLUME_UP.begin();
  VOLUME_DN.begin();
  Serial.println(F("Initialisiere MP3-Modul .....)"));
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }
  Serial.println(F("MP3-Modul in Betrieb"));
  myDFPlayer.volume(volume);
  SPI.begin(); // Init SPI bus
  rfid.PCD_Init(); // Init MFRC522 
  delay(500);
}
/*---------------------------------------------------------------------------*/
void increase_volume()
{
  volume = volume + 1;
  if (volume >= 30)
  {
    volume = 30;
  }
  Serial.print("Lautstärke bei ");
  Serial.print(volume,DEC);
  Serial.println(" / 30");
  myDFPlayer.volume(volume);
}
/*---------------------------------------------------------------------------*/
void decrease_volume()
{
  volume = volume - 1;
  if (volume <= 0)
  {
    volume = 0;
  }
  Serial.print("Lautstärke bei ");
  Serial.print(volume,DEC);
  Serial.println(" / 30");
  myDFPlayer.volume(volume);
}
/*---------------------------------------------------------------------------*/
void check_button()
{
  PLAY_PAUSE.read();               // read the button
  if (PLAY_PAUSE.wasPressed())    // if the button was released, change the LED state
  {
    myDFPlayer.pause();
    Serial.println("Play / Pause gedrückt");
  }
  VOLUME_UP.read();               // read the button
  if (VOLUME_UP.wasPressed()) 
  {
    increase_volume();
    Serial.println("Lautstärke PLUS gedrückt");
  }
  VOLUME_DN.read();               // read the button
  if (VOLUME_DN.wasPressed()) 
  {
    decrease_volume();
    Serial.println("Lautstärke MINUS gedrückt");
  }
}
/*---------------------------------------------------------------------------*/
void play_rfid()
{
  if (RFID_UID == "74153C2D")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 1");
      myDFPlayer.playMp3Folder(1);
    }
  else if (RFID_UID == "B0259335")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 2");
      myDFPlayer.playMp3Folder(2);
    }
  else if (RFID_UID == "64B2832D")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 3");
      myDFPlayer.playMp3Folder(3);
    }
  else if (RFID_UID == "A0C27E35")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 4");
      myDFPlayer.playMp3Folder(4);
    }
    else if (RFID_UID == "B01F0135")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 5");
      myDFPlayer.playMp3Folder(5);
    }
    else if (RFID_UID == "7444B02D")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 6");
      myDFPlayer.playMp3Folder(6);
    }
    else if (RFID_UID == "F2CC0335")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 7");
      myDFPlayer.playMp3Folder(7);
    }
    else if (RFID_UID == "023C0636")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 8");
      myDFPlayer.playMp3Folder(8);
    }
    else if (RFID_UID == "F2FCC635")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 9");
      myDFPlayer.playMp3Folder(9);
    }
    else if (RFID_UID == "F28DAF35")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 10");
      myDFPlayer.playMp3Folder(10);
    }
   else if (RFID_UID == "F2F82335")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 11");
      myDFPlayer.playMp3Folder(11);
    }
  else if (RFID_UID == "022F5836")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 12");
      myDFPlayer.playMp3Folder(12);
    }
  else if (RFID_UID == "2243C035")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 13");
      myDFPlayer.playMp3Folder(13);
    }
  else if (RFID_UID == "02099636")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 14");
      myDFPlayer.playMp3Folder(14);
    }
    else if (RFID_UID == "A0AE7635")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 15");
      myDFPlayer.playMp3Folder(15);
    }
    else if (RFID_UID == "34EB832E")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 16");
      myDFPlayer.playMp3Folder(16);
    }
    else if (RFID_UID == "209CE62F")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 17");
      myDFPlayer.playMp3Folder(17);
    }
    else if (RFID_UID == "20DB792F")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 18");
      myDFPlayer.playMp3Folder(18);
    }
    else if (RFID_UID == "2035D82F")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 19");
      myDFPlayer.playMp3Folder(19);
    }
    else if (RFID_UID == "C0E86535")
    {
      Serial.println(RFID_UID + " gelesen / Spiele MP3 - 20");
      myDFPlayer.playMp3Folder(20);
    }
  else
    {
     Serial.println(RFID_UID + " gelesen / unbekannt"); 
    }
}
/*---------------------------------------------------------------------------*/
void loop()
{
  if (millis() - timer > 5000) 
  {
    timer = millis();
    RFID_UID_alt = "";
  }
  check_button();
  if ( ! rfid.PICC_IsNewCardPresent())
  {
    return;
  }
  if ( ! rfid.PICC_ReadCardSerial()) 
  {
    return;
  }
  RFID_UID="";
  for (byte i = 0; i < rfid.uid.size; i++) 
  {
     RFID_UID.concat(String(rfid.uid.uidByte[i] < 0x10 ? "0" : ""));
     RFID_UID.concat(String(rfid.uid.uidByte[i], HEX));
  }
  RFID_UID.toUpperCase();
  if(RFID_UID != RFID_UID_alt)
  {
    RFID_UID_alt = RFID_UID;
    play_rfid();
  }
  else
  {
    //Nothing to do here ......
  }
}

...

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.