Clueless Closet

Skill LevelArea of FocusOperating System
BeginnerComputer Vision, IoT,
Sensors, Smart Home
Linux

Why pick your own clothes when you can have a computer do it for you? Clueless Closet is designed to take clothes inside your closet and make recommendations based on the weather and machine-learned style preferences. This project is composed of a front-end website, an Android application, and a hardware tool. All of which are connected through the power of a back-end server.

We were originally excited about using machine learning tools to pick out outfits based on weather and style preferences. We realized that with the DragonBoard™ 410c development platform from Arrow Electronics, the hardware resources were here to extend our vision to IoT.

Materials Required / Parts List / Tools

Source Code / Source Examples / Application Executable

Additional Resources

Build / Assembly

IoT
We made the individual smart hangers using Arduinos with associated components to create sensing units for each hanger. Each hanger is connected to a bus where a master DragonBoard 410c polls the individual hangers. The DragonBoard 410c runs on multiple threads to manage both interfaces.

Web App
We worked on APIs first, then generated multiple front ends for the API. The Web app was one of the front ends, and it was built with node.js.

Back End Server
Handles the API requests that power our Web App and Android front end. Built on a MEAN stack.

Android
We used a null-safe modern language to create a material-compliant Android application.

Challenges We Ran Into

  • Integrating all the components:
    With a mobile app, a web app, a back-end server and an IoT interface, our project had a lot of moving parts. Managing responsibilities was difficult, but it was a very rewarding experience to see all the pieces come together at the end.
  • Improvising hardware:
    There were a few key pieces of hardware we would have liked to see on our project, but we were able to manage without. We would have liked to connect our IoT devices via Bluetooth® instead of I2C (because the DragonBoard 410c has integrated Bluetooth, which is why we chose it). Also, we couldn't find a suitable digital switch to monitor the hangers, so we made one from analog sensors instead.
  • Manually uploading images to our MEAN stack:
    It’s just a pain to transfer coordinating file transfers across different networks. This ended up being a dull and time-consuming process that had to get done.

Accomplishments That We're Proud Of

  • Full system integration:
    By far the most exciting achievement of this project was having all of the components come together.