For my midterm project I chose to create an SMS controlled interactive pumpkin that lights up and changes colors according to the text it receives. I’m a huge fan of Halloween and always wanted to create interactive halloween props. The user will send texts such as “wicked” and “ghost” that will turn the lights inside the pumpkin to green and blue respectively. Through this interaction, I want to convey the message that it’s interesting how we are all connecting specific words to specific colors. It was really a very big challenge because I had never worked with the GSM shield before and setting it up and figuring out its functions took me a really long time.
After hours of trying to figure out the GSM shield, I connected an LED and tried to make it blink via text message. I was immediately relieved when I saw the LED blinking 🙂
However, the next day, I tried making and RGB LED blink and it was not working. My GSM shield stopped responding as well and it seemed like it needed external power. After hours of trying again with simple LEDs that were not lighting up either, I realized that the reason they were not working was that all the pins were being “used” by the GSM Shield. The only pin that finally worked was pin 7!
Panicked that I would fail my midterm, I tried using the LED RGB ring that works by only connecting it to one pin. I had to combine the example code from GSM Library and the Neopixel Library for the code to work. After hours and hours of changing the code and using some help from the residents, my LED ring was finally working. Moreover, I created some if statements for the pumpkin to light up and change color according to Halloween related words like chaos, wicked, ghost, scared and pumpkin.
What I learned from this whole process is that you need to really do everything one step at a time and sometimes you have to be okay with just keeping things simple, especially in the beginning. Adding too many features, shields, lights etc. might just not work together when you are dealing with hardware. If you get stuck you need to go back and test things. Understanding what the problem is and where your code or the actual hardware gets stuck is the most important thing and needs a lot of patience!!