Inspiration
We thought, what's the best way to feasibly learn about rapid prototyping, hardware and software integration, and front and back end development over the course of a weekend? With wearables and IOT! We needed a project that would force us to do it all, and we came up with one: limband. A band that can go on any limb, whether that be your arm, your leg, your other arm, or your other leg.
What it does
Limband takes a user-inputted workout goal through a locally hosted website on the band's ESP8266 chip and takes this data and compares it to the user's actual workout performance, which is tracked by GPS. The number and pattern of LEDs that light up correspond to differences in user performance and target. For example, depending on how close the user is to achieving his/her target distance traveled, the LED strip will light up a different amount of LEDs.
How we built it
Limband is, at its core, an arm band housing the following electronic components: Adafruit UltimateGPS, Node MCU/ESP8266, Adafruit MetroMini, and NeoPixel strip, powered by a 3.7V battery which is boosted to a 5V output by a BoostConverter. The MetroMini received GPS codes from the UltimateGPS module. The ESP8266 hosted the website, and was in communication with the MetroMini through i2c connections. Through this line of communication, the MetroMini sent GPS data to the ESP8266 for excercise logging and target tracking. Finally, the ESP8266 provided the signal to the NeoPixel strip for our LED display.
Challenges we ran into
We ran into some issues initially getting clean GPS data because the metal box ceiling of the Physical Science Building blocked our module from connecting to satellites and receiving GPS signals. So, we spent a lot of time outside, walking back and forth from Duffield to Klarman, collecting data and testing Limband.
We also ran into issues with web development front end/back end compatibility. It was difficult to create a back end that could parse the data from our locally-hosted front end web page, so we had to simplify and/or remove some functionality to make it work in the time alotted.
The ESP8266 was also not compatible with Arduino library SoftwareSerial, which was the library we used to communicate with the UltimateGPS module and an Arduino Uno. So, when we were integrating our hardware components, we had to find a workaround this incompatibility. We decided to put an intermediate microcontroller in our hardware design, so we could keep both GPS data and ESP8266 website-hosting.
Finally, towards the end of the hackathon, when we were working on integration between different software components for the ESP8266 chip, more specifically, the constraints needed for the LED display (distance dependent) and the data we were coll
Log in or sign up for Devpost to join the conversation.