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