
This web page is a small devlog on research on creating smart/connected electronic devices from a to z , and oriented for the education and learning field and using AI technology.
v 1.001 getting more experiences on design with autocad : enclosure, screw support, places for electronics.
below pictures of 3d print design / design of smart electronic devices
powerbank




v 1.002 prototype electronics circuits with smart intelligence with properties in mind
- project will use AI voice recognition.
- device will think by itself with randomness on activities( so even the developer doesn't know the outcome).
below the picture is the first step on creating smart memory/ audio player / audio amplifier to give life to smart devices / premium shield :)

v1.003 to 1.006 improving , testing other capabilities of the project ,
- easy plug for other shield by usb( extensions of product)
-power by external battery for easy of use, or plug in on computer or charger.
- add 32 gb with usb stick memory
- add sd card 32 gb of memory, with possibilities to switch between so 64 gb of memory in total :) ( smart)
- adding manual controls with buttons

v1.007 to 1.009 adding voice recognition trough third parties amazon Alexa, as microcontroller cannot handle smart recognition due to their limitations. only testing the viability, and it's a positive check.
v1.010
getting familiar on amazon api , create communications between the two to give smart activities in math as a start.
- create a smart buzzer system to a able to interact with players with sound and light
v1.0.11 support for circuit and components for external plug in. (pic below)

v1.012 to 1.035
finished all the physicals parts with buzzers' connection, linked with microcontroller
-light buzzer
-button buzzer
- all cables ...
.jpg)
1.036 to 1.038
- buzzer 1 on , others off when pressed
-sound response when pressed.
AI voice recognition.
1.039 changing plan to free up memory on esp. and move all games ( unlimited possibilities and memory) as Alexa skills.
1.040 testing with my kid buzzer and voice recognition -- great motivation for kids, nice experience.
1.41 make full game , give random calculation , listen to answer and give feedbacks correct/ wrong.
great potential.
1.042 ... linked buzzers to voice so if correct answer play light effects and sounds
-wrong , activate sounds and lights to show bad answers, make all buzzer light up one second to restart game. players can replay until good answers is given.
coding parts on microcontroller. + app external.
1.043 to 1.062
-made the android app to connect to smart buzzers and use as a remote or more....
-code for bluetooth connection
-code for generating list of students , and remove from lists when played.
-encode audio files of students names...
- polished sounds and light and voices effects when playing smart buzzers.
-add decibel for clear sound of voices.
Sample code below
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
//bluetooth
#include "BluetoothSerial.h"
BluetoothSerial ESP_BT;
//
// Parameters for Bluetooth interface
int incoming;
int value = incoming ;
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 25; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 26; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
//buzzer
//end buzzer
const int ledPin1 = 14;// ufirst buzzer right usb
const int ledPin2 = 12;//second buzzer
const int ledPin3 = 13;//second buzzer
const int ledPin4 = 05;//second buzzer
const unsigned char leds[4] = {14, 12, 13, 05};
const int buttonPin1 = 23;// usb1
const int buttonPin2 = 19;// usb2
const int buttonPin3 = 18;// usb2
const int buttonPin4 = 01;// usb2
const unsigned char switches[4] = {23, 19, 18, 01};
// button design
// reset
// Reset button
const unsigned char switch_reset = 16;
//end buzzer
// Create the Player object
DFRobotDFPlayerMini player;
//int
int volume ;
// design button quiz
//fuctions
void Volumedown()
{
volume = (volume-1);
player.volume(volume);
delay (500);
}
void Volumeup()
{
volume = (volume+1);
player.volume(volume);
delay (500);
}
//functions
void resetting()
{
for (unsigned char sw=0; sw<4; sw++)
{
digitalWrite(leds[sw], HIGH);
delay(300);
digitalWrite(leds[sw], LOW);
delay(300);
digitalWrite(leds[sw], HIGH);
delay(300);
digitalWrite(leds[sw], LOW);
}
}
//end functons
void setup() {
// Init USB serial port for debugging
Serial.begin(115200);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
ESP_BT.begin("Smart Buzzer"); //Name of your Bluetooth interface -> will show up on your phone
// Prepare the pins
pinMode(switch_reset, INPUT_PULLUP);
for (unsigned char sw=0; sw<4; sw++)
{
pinMode(switches[sw], INPUT_PULLUP);
pinMode(leds[sw], OUTPUT);
digitalWrite(leds[sw], LOW);
}
resetting();
//end prepare pin
// button for volume
//pinMode(17, INPUT_PULLUP);
//pinMode(16, INPUT_PULLUP);
//end volume
//buzzer
pinMode(ledPin1, OUTPUT); //usb a 1
pinMode(ledPin2, OUTPUT); //usb a 1
pinMode(ledPin3, OUTPUT); //usb a 3
pinMode(ledPin4, OUTPUT); //usb a 4
pinMode(buttonPin1,INPUT_PULLUP); // Set the Tilt Switch as an input
pinMode(buttonPin2,INPUT_PULLUP); // Set the Tilt Switch as an input
pinMode(buttonPin3,INPUT_PULLUP); // Set the Tilt Switch as an input
pinMode(buttonPin4,INPUT_PULLUP); // Set the Tilt Switch as an input
//end buzzer
//quiz
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
player.EQ(DFPLAYER_EQ_BASS);
//----Set device we use SD as default----
player.outputDevice(DFPLAYER_DEVICE_U_DISK);
// Set volume to maximum (0 to 30).
player.volume(25);
volume =25;
player.playFolder(01,001);
//1=USB-Disk, 2=TF-Card, 3=Aux, 4=Sleep, 5=NOR Flash
//player.playFolder(01,001);
// Play the "0001.mp3" in the "mp3" folder on the SD card
// player.playMp3Folder(1);
//player.randomAll();
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
void loop()
{
//bluetooth
// code value 1 = resetting game
if (ESP_BT.available())
{
incoming = ESP_BT.read(); //Read what we receive
switch (incoming) {
case 1:
Serial.print("Button 1:"); Serial.println(value);
player.playFolder(01,002); //play specific mp3 in SD:/15/004.mp3; Folder Name(1~99); File Name(1~255)
delay (3500);
Serial.print("working button1");
delay (3500);
incoming =0;
break;
case 2:
Serial.print("Button 2:"); Serial.println(value);
player.playFolder(01,003); //play specific mp3 in SD:/15/004.mp3; Folder Name(1~99); File Name(1~255)
delay (3500);
delay (3500);
incoming =0;
break;
}//end switch
}// enf if avalaiable bluetooth
//
// fucntion button press
//end button press
// Check all 4 switches
for (unsigned char sw=0; sw<4; sw++)
{
// Is it pressed?
if (digitalRead(switches[sw]) == LOW) {
// Turn on its LED
digitalWrite(leds[sw], HIGH);
// Play its sfx
player.play(sw+1);
// Wait for the reset button
while (digitalRead(switch_reset) == HIGH) {};
// Stop any playing sfx
player.stop();
player.playFolder(01,002);
// Turn off the LED
digitalWrite(leds[sw], LOW);
resetting();
// Stop!
break;
}
}
}
//end loop
ideas of development :
talking response to color winner / students names
- script to select random students , assign to colors and remove students from list if game over ( might have manual validation in case of students errors until voice recognition) +keep winner and let it on the list.
- 1 reset button for manual quiz game , other quiz
- add files for calculation process , additions, subtractions, multiply , divisions)
- app to be able to select different quizzes, subjects ( example additions, subtractions...). --- bluetooth connection with esp. ( possible problem with double connection : app and voice recognition).
- count and tell by voice state of championship : quater final, semi-final ...
- build a language game , exemple on phonics. spell the words, guess the words with voice recognition .
- add voice recognition connectivity, sending back to esp an integer, then esp checks validity.
- make different gameplay mode : competitive or cooperative ( students against a bot of different intelligence/speed/ probabilities of mistakes/ )