When you live in a dorm, there's often only one or two washing machines for everyone. So walking several floors down only to see that the washing machines are already in use is not a rarity. When this happens more than once a day it really get's annoying. Especially, because you have to carry not only your laundry, but also money and your phone with you in order to pay and set a timer for the duration of your wash.
As many of our team members face these problems every day, we decided to develop a solution: our friendly and smart bot washy which can be integrated in Twilio, Facebook messenger and Telegram.
What it does
You only need to open for example facebook messenger and search for Washy. Then you can start a conversation with our bot washy by typing for example "I want to wash tomorrow". The bot replies with all possible time slots for the requested day allowing you to choose your preferred slot, that gets reserved immediately by washy for you. He even reminds you 10 minutes prior to your reserved time so that you have plenty of time to get to the washroom by sending you a sms via twilio.
Now you only need to grab your laundry and go to the washroom. When you reach the machine, the system checks via face recognition if you are indeed the person who reserved this machine for this time. If this is the case you can fill the machine and start washing!
How we built it
So how exactly does our system work? The washing machines in the dorms are equipped with sensors and connected to Microsoft Azure's IoT Hub building the connection between these devices and our backend running on a Microsoft Azure Virtual Machine. In the backend, our algorithms used for choosing the time slots and our occupancy calendar for the washing machines are located. The connection from the backend to the user is done via our chat bot washy running on the Microsoft Azure Web App Service, which was build using the Microsoft Bot Framework and can be easily integrated in multiple chats like Twilio, Facebook messenger and Telegram. Twilio is important for our use here, as the reminder sent 10 minutes before your scheduled time needs to be reliable and therefore also received without an internet connection.
When the user approaches a machine, he or she is detected by our ultrasonic sensor connected to a Raspberry Pi running on Windows 10 IoT Core and a picture is taken through a camera also attached to the Raspberry Pi. This picture is send via the Microsoft Azure IoT Hub to the backend which forwards it to the Microsoft Azure Cognitive Service classifying the image using Microsoft's Face recognition classifier.
Challenges we ran into
As our system is quite complex, we needed some time to come up with a performant architecture at the beginning and figure out communication protocols between the different services. Afterwards we had some issues connecting our bot written in node.js to facebook messenger, so we switched to C# using the Microsoft bot framework which is working perfectly.
Accomplishments that we're proud of
We're really proud that we have a working prototype that solves a real life problem for us and which was developed in such a short time frame! In our opinion this solution can be easily extended not only to big dormitories, but also to family housing, as we support social media and sms interfaces. Also we managed to connect many different Microsoft Azure Services, which provides us with an easy to deploy and scalable solution.
What we learned
We learned to use many different Microsoft Azure Services, Visual Studio and how to deploy and test bots. Additionally we worked with the Microsoft Windows 10 IoT Core on a Raspberry Pi and twilio.
What's next for washy
The first thing for us will to be to deploy it in our own student dorms :) After this step, everything is possible, for example raising this service to the next level and providing it as a solution to other dorms. We are exited for this future!