Forearm Audio Player for Teachers

by Markus Opitz in Circuits > Audio

1248 Views, 19 Favorites, 0 Comments

Forearm Audio Player for Teachers

mp3-Title2.jpg

Sound bar to play audio snippets.

I enjoy being a teacher. I like teaching children. But what I don't like is having to repeat certain things over and over again. Did you also have teachers whose sayings and phrases you kept track of? I don't want to become one of those weird teachers myself, so I make sure to vary my language. Nevertheless, some expressions do become repetitive. Can't this be automated? Yes, it can!

What at first glance seems like a nonsense gadget can be put to good use in the classroom and in sports.

A colleague suggested an audio device with a speaker that can be worn around the neck or on the forearm. The housing is 3D printed, and the heart of the audio device is a DFRobot MP3 player with an SD card slot, controlled by a XIAO ESP32-C3. It has the advantage of already having a LiPo charging device on board and can be charged via the USB port. Buttons can be used to select different mp3 tracks on the SD card. An audio amplifier and a potentiometer ensure that the messages are played at the right volume.


There are ways to operate the audio player with buttons and without a microcontroller. However, the ESP32 offers convenient programming and an integrated battery charger. In addition, a connection to an external speaker could be established via WiFi or Bluetooth (not included in this project).

Supplies

supply.JPG
  1. XIAO ESp32-C3
  2. DFRobot mp3 player
  3. 6 (or more) buttons
  4. resistor 220 Ohm
  5. potentiometer
  6. 3W speaker
  7. audio amplifier: transistor BC547, capacitor 22uF, resistor 2kOhm


  1. LiPo battery (150mAh)
  2. switch
  3. 3D printed housing
  4. Velcro band

Basic Arduino knowledge required!

The Circuit

FullWiring.jpg
amp.JPG

Heart of the Gadget are the DFRobot mp3-player and a XIAO ESP32-C3 microcontroller. The ESP32 gives commands to the mp3-player which gets the mp3 files from the SD card.

The files on the card are just named as „0001.mp3“, „0002.mp3“ and so on.

A small, homemade amplifier circuit between the output and the speaker amplifies the audio.

Circuit, Soldering

löten.JPG
innen2.JPG

Connect and solder everything as shown in the circuit diagram. Do not make the wires too short to prevent them from breaking. There is enough space for the wires in the housing.

Programming Arduino

The program is quite simple in structure, consisting of one part for the player and one part for the buttons.

The library ‘DFRobotDFPlayerMini.h’ plays the mp3 comfortably, while the library ‘ezButton.h’ provides clear signals when a button is pressed.

Both libraries can be found in the Library Manager of the Arduino IDE.

To upload the sketch please follow my project Getting Started With ESP32-C3 XIAO or one of the many other XIAO ESP guides on the net.



/*
/ Forearm Audio Player for Teachers
/ Markus Opitz 2025
/ instructables.com
*/

#include "Arduino.h"
#include "DFRobotDFPlayerMini.h" //mp3 player library

#define FPSerial Serial1
DFRobotDFPlayerMini myDFPlayer;

// button setup
#include <ezButton.h> //button library
#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define BUTTON_PIN_3 4
#define BUTTON_PIN_4 5
#define BUTTON_PIN_5 6
#define BUTTON_PIN_6 7

ezButton button1(BUTTON_PIN_1); // create ezButton object for button 1
ezButton button2(BUTTON_PIN_2);
ezButton button3(BUTTON_PIN_3);
ezButton button4(BUTTON_PIN_4);
ezButton button5(BUTTON_PIN_5);
ezButton button6(BUTTON_PIN_6);


void setup()
{
button1.setDebounceTime(100); // set debounce time to 100 milliseconds
button2.setDebounceTime(100);
button3.setDebounceTime(100);
button4.setDebounceTime(100);
button5.setDebounceTime(100);
button6.setDebounceTime(100);

FPSerial.begin(9600, SERIAL_8N1, /*rx =*/20, /*tx =*/21); // set connections to mp3 player as GPIO

Serial.begin(115200);

Serial.println();
Serial.println(F("Init DFPlayer ... (may take a few seconds)"));

if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //use serial 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){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
Serial.println(F("DFPlayer ready"));

myDFPlayer.volume(30); //Set volume value. From 0 to 30

myDFPlayer.play(7); //Play the last mp3, '0007.mp3' (jingle), optional
delay(100);
}

void loop()
{
button1.loop(); //call the loop() function first
button2.loop();
button3.loop();
button4.loop();
button5.loop();
button6.loop();

if (button1.isPressed()){
Serial.println("1");
myDFPlayer.play(1);
}
if (button2.isPressed()){
Serial.println("2");
myDFPlayer.play(2);
}
if (button3.isPressed()){
Serial.println("3");
myDFPlayer.play(3);
}
if (button4.isPressed()){
Serial.println("4");
myDFPlayer.play(4);
}
if (button5.isPressed()){
Serial.println("5");
myDFPlayer.play(5);
}
if (button6.isPressed()){
Serial.println("6");
myDFPlayer.play(6);
}
}


You could play more sound soundfiles by using e.g. this commands an press two buttons at a time:

if ((button1.isPressed()) && (button2.isPressed())){ //press 2 buttons to play more mp3
Serial.println("8");
myDFPlayer.play(8);
}

Sound Files

Using the mp3 files is very easy. Search for suitable mp3 files, jingles, ringtones and similar items on free download sites, or record your own voice using the dictation function on your mobile phone. The files must be named as follows: ‘0001.mp3’, ‘0002.mp3’ and so on.

The command myDFPlayer.play(2) means „play the 2nd file on the SD card“

Copy them all to an SD micro card, insert it into the MP3 player, and that's it!

The 3D Printed Case

3D print this case or just put the circiut into a cardboard box for your desktop. Make sure everything inside is fixed with hot glue to avoid breaking solderings. Plug in the USB, switch on and go!

Felt and Velcro Tape

klett2.JPG
filz1.JPG
filz2.JPG

To make the device portable, we need some felt and double-sided Velcro tape.

The tape is threaded through the eyelets. The felt is cut to size and fixed in place with hot glue.

Demo

Forearm Audio Player for Teachers #shorts #audio #tools