Back to Parent

Outcome


Outcome

    • The outcome of this project was to create an ambient orb (a light that sits passively in the background and is seamlessly integrated with one's environment). The orb would display real time information by being hooked up to a cloud function. In this case, it was hooked up to my Google Calendar so that when a meeting was about to start, the light would alert me that a meeting was about to start and that the meeting was underway (the way this was communicated was via a gradually more and more intense red color being emitted from the orb, and a gradually less and less intense red color being emitted from the orb until it returned to its normal 'on' state, which is white). 

Process

I tried at least ten different ways to code this...I won't include the 'bad code' for readability purposes, but some of the things I tried include:

-Using a variable to trigger an event if less than x minutes had passed and an event if more than x minutes had passed. The light would gradually become more or less intense depending on each event's conditions.

-Using void functions to kick off the next series of actions expected

-Creating one big nested if function

-Many more approaches which all did not work

After struggling to understand why my attempts were not working, I realized I needed to spend time learning how to properly debug the code. I then spent A LOT of time learning how to use Serial.print and the command prompt to trace where the code was working and where it was not. After some time fine-tuning the code, I was able to come up with a way to 'mostly' get the program to work. Admittedly, this code could be optimized, but it's a LONG WAY from where I started.

Reflection

I learned a few things. First, I learned how to debug code using the serial function. Frankly, had I not invested time in this, I don't think I would have been able to figure out how to get the program to work. I also enhanced my learning of how circuit boards work. I felt more confident wiring the neopixel and the switch this time around; whereas, on the last lab, I felt pretty shaky on wiring. I felt more confident tying prior labs to this lab, as is demonstrated by the switch that is configured on the breadboard. I learned, too, how to use webhooks via IFTTT. Though the instructional video was very helpful on the class website, I could not figure out how to actually get my webhook to communicate to my program (I kept getting a 400 error). I realized that I needed to pass a value back from webhook that my program could consume. So, I ended up entering a response item that could be used by my program. A very valuable lesson for me. Additionally, I learned enhanced my understanding of how functions work. Initially, my program only included one additional function (aside from setup and void). Once I experimented a bit, I realized that I would need to include another function to transition from a pre-meeting state to a post-meeting state.

Lastly, I learned to ask for help. I didn't ask for much help with this lab and it was very frustrating - I feel now that if I had asked for help earlier I could have easily avoided some of the silly mistakes I had made.

Show Advanced Options
Image3.thumb
Show Advanced Options
Image2%281%29.thumb
Show Advanced Options
Image0%281%29.thumb
Show Advanced Options
Image1%281%29.thumb
Show Advanced Options
Show Advanced Options
Drop files here or click to select

You can upload files of up to 20MB using this form.