top of page

 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

​

​

20230819_173250.jpg

 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)

​

​

​

circuit board.JPG

v1.012 to 1.035

finished all the physicals parts with   buzzers' connection, linked with microcontroller

-light buzzer

-button buzzer

- all cables ...

20230910_215454 (1).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/ )

bottom of page