Difference between revisions of "Laundry Alert Page"
Runkunwang (talk | contribs) m |
|||
Line 3: | Line 3: | ||
==Overview== | ==Overview== | ||
Don't you just hate it when you walk all the way down to the laundry room to find every single machine in use? Our 'Laundry Alert Device' idea will bring a solution to this problem. Our idea consists of a device that will alert, through text message, a washing machine's user that his or her laundry is done. We believe our device will cut the waiting time by a significant amount. To meet this goal, we will be creating a device using a raspberry pi 0 and vibration sensors. First the user will text the number attached to the device "Start" to notify it that they have started their laundry load. The pi will use the vibration sensor to determine when the laundry machine has finished the load. When the load is finished, using Twilio API, the pi will send a text message to the user telling them that their laundry has been finished. | Don't you just hate it when you walk all the way down to the laundry room to find every single machine in use? Our 'Laundry Alert Device' idea will bring a solution to this problem. Our idea consists of a device that will alert, through text message, a washing machine's user that his or her laundry is done. We believe our device will cut the waiting time by a significant amount. To meet this goal, we will be creating a device using a raspberry pi 0 and vibration sensors. First the user will text the number attached to the device "Start" to notify it that they have started their laundry load. The pi will use the vibration sensor to determine when the laundry machine has finished the load. When the load is finished, using Twilio API, the pi will send a text message to the user telling them that their laundry has been finished. | ||
+ | |||
+ | [[Laundry_Alert_Log|Link to weekly log]] | ||
+ | Link to Tutorial: | ||
+ | Link to Project Proposal Presentation. | ||
==Project Proposal Presentation== | ==Project Proposal Presentation== | ||
Line 15: | Line 19: | ||
==Objectives== | ==Objectives== | ||
− | + | *Hardware | |
− | *Vibration sensors to determine completion of a washing cycle | + | *Vibration sensors to determine completion of a |
− | *Need Battery for power source | + | washing cycle |
− | *Case (preferably 3D Printed) for enclosure, protection, and presentation of device | + | *Need Battery for power source |
+ | *Case (preferably 3D Printed) for enclosure, | ||
+ | protection, and presentation of device | ||
[[File:205 raspberry pi schematic bb.jpg | thumb]] | [[File:205 raspberry pi schematic bb.jpg | thumb]] | ||
− | + | *Software | |
− | *Distinguish between vibration and no motion | + | *Distinguish between vibration and no motion |
− | *Get program to successfully send sms messages | + | *Get program to successfully send sms messages |
− | *Use ngrock to establish communication from twilio to Pi | + | *Use ngrock to establish communication from twilio |
− | *Recognize texts received from user and store its phone number | + | to Pi |
− | *Get program to send messages based on user response | + | *Recognize texts received from user and store its |
− | *Get a waitlist set-up for users who are waiting for a machine to be open | + | phone number |
+ | *Get program to send messages based on user response | ||
+ | *Get a waitlist set-up for users who are waiting for | ||
+ | a machine to be open | ||
==Challenges== | ==Challenges== | ||
Line 35: | Line 44: | ||
*Figuring out how to exclude the vibration noise of other washing machines or other vibrating objects nearby. | *Figuring out how to exclude the vibration noise of other washing machines or other vibrating objects nearby. | ||
*Finding a way to demonstrate the project: we do not want to have to carry an entire washing machine for the demonstration so we will have to find a less challenging way to demonstrate our project | *Finding a way to demonstrate the project: we do not want to have to carry an entire washing machine for the demonstration so we will have to find a less challenging way to demonstrate our project | ||
+ | |||
+ | |||
==Gantt Chart== | ==Gantt Chart== | ||
Line 44: | Line 55: | ||
*[https://www.adafruit.com/product/856 | A/D converter] (provided) | *[https://www.adafruit.com/product/856 | A/D converter] (provided) | ||
*[https://www.seeedstudio.com/Grove-Piezo-Vibration-Sensor-p-1411.html | Analog Vibration Sensor] $13.45 | *[https://www.seeedstudio.com/Grove-Piezo-Vibration-Sensor-p-1411.html | Analog Vibration Sensor] $13.45 | ||
− | *sw-420 vibration sensor $4.45 | + | *[https://www.elecrow.com/vibration-sensor-module-sw420-p-525.html | sw-420 vibration sensor] $4.45 |
− | *ngrok $10.00 | + | *[https://ngrok.com/ | ngrok] $10.00 |
− | *Magnets $6 | + | *Magnets (provided by Washington University Bookstore) $6 |
− | *Battery $32.84 | + | *[https://www.sunfounder.com/battery-power-pack.html | Battery] $32.84 |
− | |||
− | + | Total Cost: | |
+ | $86.74 | ||
==Final Poster== | ==Final Poster== | ||
Line 57: | Line 68: | ||
=Design and Solutions= | =Design and Solutions= | ||
+ | *Precursor Steps | ||
+ | Our project required a lot of knowledge in areas that all team members were unfamiliar with, so we spent the first few weeks learning the tools that we would need for this project. The main three things to learn were how to use the raspberry pi, how to program in java, and how to use Twilio API. At the end of this stage, we were able to make the raspberry pi to send us an email with its ip address everytime on boot, program a java program that would read the values of a potentiometer and A/D converter using the GPIO pins of the raspberry pi, and program simple programs using the Twilio API to first send out a text, and then send a text as a response to recieving a text. | ||
+ | |||
+ | |||
link to final code | link to final code | ||
Revision as of 05:52, 1 May 2018
Contents
Our Product
The Laundry Alert Device!
Overview
Don't you just hate it when you walk all the way down to the laundry room to find every single machine in use? Our 'Laundry Alert Device' idea will bring a solution to this problem. Our idea consists of a device that will alert, through text message, a washing machine's user that his or her laundry is done. We believe our device will cut the waiting time by a significant amount. To meet this goal, we will be creating a device using a raspberry pi 0 and vibration sensors. First the user will text the number attached to the device "Start" to notify it that they have started their laundry load. The pi will use the vibration sensor to determine when the laundry machine has finished the load. When the load is finished, using Twilio API, the pi will send a text message to the user telling them that their laundry has been finished.
Link to weekly log Link to Tutorial: Link to Project Proposal Presentation.
Project Proposal Presentation
https://docs.google.com/presentation/d/1_Z8Xa3uJgJewrvXhD7aH8ir0iT577_uLS-mbA0qntTQ/edit?usp=sharing
Team Members
- Ezra Blair
- Young Wang
- Billy Gilbert Habimana Cyusa
- Ellen Dai (TA)
- Jim Feher (Instructor)
Objectives
- Hardware
*Vibration sensors to determine completion of a washing cycle *Need Battery for power source *Case (preferably 3D Printed) for enclosure, protection, and presentation of device
- Software
*Distinguish between vibration and no motion *Get program to successfully send sms messages *Use ngrock to establish communication from twilio to Pi *Recognize texts received from user and store its phone number *Get program to send messages based on user response *Get a waitlist set-up for users who are waiting for a machine to be open
Challenges
- Deciding Interface: one of the issues that we anticipate to encounter is choosing between using a website or a Self Contained Server.
- Connectivity to private networks
- Finding out the vibration pattern and level of the washing machine and making the Pi recognize it
- Figuring how to integrate Twilio into the interface: Considering that none of our team members has any experience with the Twilio API, we expect managing to integrate it into our interface to be difficult.
- Figuring out how to exclude the vibration noise of other washing machines or other vibrating objects nearby.
- Finding a way to demonstrate the project: we do not want to have to carry an entire washing machine for the demonstration so we will have to find a less challenging way to demonstrate our project
Gantt Chart
Budget
- Raspberry Pi Zero W (provided)
- Twilio API $20
- | A/D converter (provided)
- | Analog Vibration Sensor $13.45
- | sw-420 vibration sensor $4.45
- | ngrok $10.00
- Magnets (provided by Washington University Bookstore) $6
- | Battery $32.84
Total Cost: $86.74
Final Poster
Design and Solutions
- Precursor Steps
Our project required a lot of knowledge in areas that all team members were unfamiliar with, so we spent the first few weeks learning the tools that we would need for this project. The main three things to learn were how to use the raspberry pi, how to program in java, and how to use Twilio API. At the end of this stage, we were able to make the raspberry pi to send us an email with its ip address everytime on boot, program a java program that would read the values of a potentiometer and A/D converter using the GPIO pins of the raspberry pi, and program simple programs using the Twilio API to first send out a text, and then send a text as a response to recieving a text.
link to final code
Raspberry Pi Zero
Set-up
This is how we set-up the pi / refer to code
Wiring
This is how we wired the pi / add Pics of wiring* - possible diagram we can refer to
Vibration Sensors
This is how we set-up vibration sensors / refer to code
Battery
This is how we set-up the battery
Twilio
Overview of twilio
Set-up
this is how we set-up twilio / refer to tutorial / refer to code
Communication
this is how we successfully got consistent communication / refer to code
User Input
this is how we incorporated user input / refer to code
Flask app
this is the purpose of our flask app / refer to code
ngrok
this is how it was used
Communication
this is why it was needed for communication
Design of Case
After finishing most of the softwares for our device, a solid cover was then needed to enclose everything. This was necessary in order to prevent loose cords and wires from being exposed, for protection against drops and or damage, to be easily handled by a user, and of course for better device presentation. So the practicalities of having a good case was an obvious step we couldn't overlook.
3D Design Drafts
pics of drafts along the way and reasons for optimizations
Improvisation
Unfortunately, due to time and circumstance we weren't able to get our 3D designs printed. After news of the printers not working, we had to improvise. We ended up building a decent replacement case from the tools we had around us. We had ordered a battery and when it came in the mail it was much bigger then expected, even bigger then the pi. So we started with the cardboard box that the battery came in and went from there. We adjusted the size and made some cuts to the box to be optimized to fit the pi. Much of this done by trial and error, we cut holes into the box for the port holes and found good spots within the box to fit everything to go inside of it. First we attached the battery to the inner corner using duct tape. Then we screwed in the pi to the bottom using the holes in the corner of the zero with very small screws. Then we laid our breadboard and A-D converter along the inner wall of the box to prevent stuffing the box too much. The vibration sensor being attached to the pi, we stuck it out the box and attached it to the bottom so that the sensor can get good reads and direct contact to a laundry machine. Our final touch was to add the magnets to the bottom of the case. After taking apart the store-bought magnets we proceeded to hot glue the medal part on to the bottom of our device. The magnets were used to give it better attaching to a laundry machine.
Que
reason for it
Que Drafts
reference code through pics or link
Implementation
how we implemented it with Twilio and the pi refer to final code
Final Product
pic of final product and basic overview of functions
Demo Day
how we optimized our device for demo day and pic of final poster :)