IGME-470 - Project 3: Neopixel Controller
For my final project, we needed to interface our Arduino with something else. I chose to create a React web app that used a NodeJS and Express back-end to communicate with my Arduino and the neopixels. As you can see in the video, not only can you control the neopixel on the web, but you can also control it via your phone’s internet browser.
I originally wanted to interface my Arduino with a Raspberry Pi 3, so I drew inspiration from this tutorial found here. I decided to scrap that because it used python to make its back-end, and I’m a front-end developer. As such, I decided that I still wanted to utilize the Arduino ALA library used in the tutorial, but I wanted to use NodeJS as my server.
The image above is the final front-end I developed using React. In the original example, it only had a basic html page for all of the buttons, which can be found in this repo. I wanted to use my web design skills to create something better and more user-friendly.
For my web page, the user is able to use the radio buttons to turn the neopixel on and off. The color pad on the left side allows the user to click on the colors to make the neopixel light up with that color. The animation buttons call upon a few of the animations found in the ALA library. The brightness buttons set the brightness of the neopixel to 20%, 40%, 60%, 80%, or 100%. At the bottom, the user can select some pre-determined color palettes that were also defined in the ALA library.
The hardest part about this project was getting an idea. With COVID-19, I wasn’t able to have the resources needed to create any of the ideas I thought about prior to quarantine. After I determined that I wanted to interface my Arduino with something on the web, things got easier. This was only the second time I’ve built a web app using a front-end AND a back-end, as well as the second time using React. Although I figured a lot of it out myself, I did have to enlist the help of Austin Willoughby--who I previously had as a professor for IGME-430.
Overall, I’m very happy with what I created, especially given the circumstances. Not only was I able to create another project using my Arduino, but I was also able to grow my understanding of React and NodeJS, which will carry me into my future careers. This class has easily been one of my favorite classes at RIT. I learned so much about physical computing with Arduinos, and it has been a fantastic experience having Paul as a professor. I’m glad that this is the note I end on!








