Lndry - If it's shakin', it's taken
Real-time, scalable, non-crowdsourced washer and dryer availability statuses for laundromats at RIT and beyond.
Zack Banack and Connor Egbert faced frustration as freshmen when they brought their dirty clothes down to their communal dorm laundry rooms only to find that all the (non-smart) washer and dryer machines were occupied. This wasted time and caused mild inconvenience that could be fixed with some crafty engineering.
What it does
Lndry uses motion detection packaged in an adorable 3D-printed mini-washer machine to deliver real-time availability statuses on iOS and Android for individual washer and dryer machines. If it's shakin', it's taken.
While this non-crowdsourced solution may not be the end-all solution to determine if machines are occupied or not, our real-world tests have proven to be successful.
How we built it
Front-end: React Native and Native Base
Hardware: Raspberry Pi + Bluetooth and MPU 6050 modules, Teensy microcontroller, Neopixel Ring
How does it work?
Essentially, the MPU 6050 module tells the Raspberry Pi how much it's moved (x, y, and z-position in 3D space). If a particular threshold is met, a threshold we trial-and-error concluded by placing the device on top of active laundry machines, it's considered "occupied" and communicates with the server ("0" for a laundry slot is open, "1" for occupied). This is formatted in JSON which the app can conveniently pull based on location and laundromat name. We didn't quite finish the Push Notifications, but in essence, you can "subscribe" to a laundromat's washers or dryers and be notified (in queue) when one opens up.
Challenges we ran into
Overly-sensitive movement detection (caused by adjacent machines). This caused a lot of tweaking threshold values.
Finding working modules
Printing the 3D case
Communicating between the Pi and Teensy
Familiarizing ourselves with React Native
iOS fetch request problems with RIT non-secure .student subdomains (tsk, tsk)
Accomplishments that we're proud of
Getting the hardware actually working
The GUI and overall style
Zack: my first time 3D printing! Connor did a great job making the case (with Anmol's help)
What we learned
You don't have nearly as much time as you expect
Things will go wrong at the most inconvenient time possible
Getting out of our comfort zones and using new technology and mediums under pressure can lead to surprising results.
Close communication is important, even between a small group of 3. Documenting progress in Slack to refer to at any time is helpful. It might seem redundant saying something aloud then typing it, but 24 hours is a long time to be working straight so lots of information is going around.
What's next for Lndry
Push Notifications. The foundation's been laid, we just need to construct queues.
More units installed + a "HUB" in each laundromat that interacts with the individual sensors to reduce server calls and cost
is to bring smart functionalities to non-smart laundromat machinery.
Replacing working older models of washers and dryers with new "smart" machines isn't RIT's first priority, nor is it likely within their budget. Our affordable, scalable solution is the perfect hack to bridge the gap between outdated and modern.
Lndry targets laundromats or facilities, not households, starting in the greater Rochester area and expanding. Though, anyone with access to a washer or dryer can benefit from the services we offer.
Regarding something that could be considered consumer-grade, we created two 3D-printed units during BrickHack. One acts as a sensor, and one acts as a receiver that changes light colors based on the status of the sensor unit. The unit lights up and buzzes, making it hard of hearing- and deaf-friendly.
RIT has approximately 200 washers and 200 dryers available for student use. Replacing these machines would run the cost of ~$250,000 based on current machine averages (~$650/unit). Our solution, using our theoretical HUB model, would cost <$10,000 initially.
No! Mass-scale automation of sensor-based availability can be adapted for rental of equipment (e.g. SOFA cage), 3D printing machinery, tamper-detection, and door closure. Don't want to use movement as an indicator? Swap out Pi components for light measurement or atmospheric noise and plug it into our framework.
The Pi Casing (Mini-washer machine)
Frontend Dev Timelapse!
Team Information (Table #7)
Zack Banack (https://zackbanack.com) - Front-end app dev, GUI + design
Connor Egbert (https://connor.rocks) - Raspberry Pi, Server, 3D printing
And a huge shoutout to Anmol Modur (http://www.anmolmodur.com) for being a great mentor and helping us figure out 3D printing and lights!