Reading Realm LED NeoPixel: Using Technology to Promote Education

IDM382: Internet of Things by Leanne Chin

Overview

Over the past 11 weeks, I worked on developing a device using the Internet of Things to be able to control a series of NeoPixel lights using a web browser in order to promote the use of technology to better the fundamental developmental growth of early childhood education. Through this project, I not only learned about the educational benefits that colors bring to a child’s education but also the process of understanding how to wire breadboards and work with Arduino without short-circuiting any equipment. I learned how to use a variety of different tools to reach my goal of working on my device online and how to adapt my code to each program.

LED lights with a recording of the controller interface in the bottom right corner to turn lights on and off.

Goals

  • Allow online access from online dashboard to control LED lights
  • Debug problem with sticky buttons
  • Debug problem where clicking onto one button

Final Presentation

Future Plans

  • Seeing if it is possible to attach a projector to the Arduino
  • Developing an interactive story book projector that reacts to the buttons that are pressed using IoT

Sample Code

 
void loop() {
    ArduinoCloud.update();
    // Your code here 
    //Serial.println("looping");
    
    for(int i=0;i<NUMPIXELS;i++){

      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor)); 
      // Moderately bright green color.

      pixels.show(); // This sends the updated pixel color to the hardware.

      delay(delayval); // Delay for a period of time (in milliseconds).
      
      // Serial.println(i);
      
    }
    
  } // END LOOP 


  void onLEDbuttonChange() {
    // Do something
  }

  void onButton1Change() {
    // Do something
    
    Serial.println("virtual button click");
    
    lEDbutton = "Button Color 1 Pushed";
      
      noColor();
    
  } // End Here

  void onButton2Change() {
    // Do something
    
    lEDbutton = "Button Color 2 Pushed";
    
    setColor();
    
  } // End Here


  void onButton3Change() {
    // Do something
    
    lEDbutton = "Button Color 3 Pushed";
    
    setColor2();
  }

  void noColor() {
    redColor = 0;
    greenColor = 0;
    blueColor = 0;
  };


  void setColor(){
    redColor = 0;
    greenColor = 255;
    blueColor = 255;
    Serial.print("red: ");
    Serial.print("green: ");
    Serial.print("blue: ");
    
  };

  void setColor2() {
    redColor = 255;
    greenColor = 0;
    blueColor = 255;
};