-
Notifications
You must be signed in to change notification settings - Fork 0
/
wash-n-watch.html
152 lines (113 loc) · 8.82 KB
/
wash-n-watch.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Begin Jekyll SEO tag v2.6.1 -->
<title>Kelly Hsiao-Ching Su</title>
<meta name="generator" content="Jekyll v3.8.6" />
<meta property="og:title" content="Kelly Hsiao-Ching Su" />
<meta property="og:locale" content="en_US" />
<meta property="og:site_name" content="Kelly Hsiao-Ching Su" />
<script type="application/ld+json">
{"url":"/wash-n-watch.html","headline":"Kelly Hsiao-Ching Su","@type":"WebPage","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/assets/css/style.css?v=">
<script src="https://code.jquery.com/jquery-3.3.0.min.js" integrity="sha256-RTQy8VOmNlT6b2PIRur37p6JEBZUE7o8wPgMvu18MC4=" crossorigin="anonymous"></script>
<script src="/assets/js/main.js"></script>
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
</head>
<body>
<header class="header">
<h1>Kelly Hsiao-Ching Su</h1>
<p></p>
</header>
<div id="banner">
<!-- <a href="" class="button fork"><strong>View On GitHub</strong></a> -->
<a target="_blank" href="https://github.com/CApopsicle" id="github-logo"></a>
<a target="_blank" href="https://www.linkedin.com/in/hsiaochingsu" id="linkedin-logo"></a>
<div class="downloads">
<span>Downloads:</span>
<ul>
<li><a href="./Hsiao-Ching_Su_resume.pdf" class="button">RESUME</a></li>
<!-- <li><a href="" class="button">TAR</a></li> -->
</ul>
</div>
</div><!-- end banner -->
<div class="wrapper">
<nav>
<ul></ul>
</nav>
<section>
<a class="back-to-home" href="./">Back to Home</a>
<h2 id="wash-n-watch">Wash-N-Watch</h2>
<h4 id="the-girls-dorm-washing-machine-monitoring-and-notifying-system">The Girl’s dorm washing machine monitoring and notifying system</h4>
<h3 id="the-problem">The Problem</h3>
<p>University dorms are not an ideal place for living, there are no private bedrooms, the insulation is pretty bad, and there’s a limited amount of house appliances. In NTU girl’s dorm, we had 100 girls using only 2 washing machines. Washing clothes is a painful experience. </p>
<p>From this user pain point, comes this project of designing and implementation of a monitoring system for washing machines in NTU girl’s dorm. Our system aims to display the status of every washing machine in the girl’s dorm. We enabled <strong>sign-in</strong>, <strong>subscription</strong>, and <strong>text message notification</strong> for users. A user of our service can subscribe to a certain washing machine on our webpage, and she can get a text notification when that machine finishes its washing schedule.</p>
<p><img src="https://i.imgur.com/BOvNdWa.png" alt="image1" />
The interface of home page showing the two washing machines and their status</p>
<h3 id="scenario">Scenario</h3>
<p>Amy is in her junior year at NTU, and she lives in the girl’s 1st dormitory. She wants to do her laundry on a Saturday morning. However, the 2 washing machines on the 2nd floor are currently being used. One of them will finish washing in 30 minutes, and the other in 15 minutes. Amy takes the heavy laundry back to her room. However, when she goes again to the laundry room 20 minutes later, the machine is being used by another new user, and Amy has to keep on waiting. In addition, there’s a big pile of washed clothes sitting on top of a washing machine, and some of them are scattered on the floor. These are the clothes of the previous user, and they are taken out and piled up by the new user. Amy feels sorry for that previous user because her clothes are now dirty again. Yet, if Amy wants to wash her clothes in a hurry and the previous user’s clothes occupy the washing machine, she may do the same thing.</p>
<p><img src="https://i.imgur.com/aBOAdqf.jpg" alt="image2" />
The laundry room with a pile of clothes on top of a washing machine</p>
<p>From our personal experiences and talking to several of the residents, we had several problems with our washing clothes process</p>
<ul>
<li>There are too many students for only 2 washing machines. During the busy hours, it’s hard to get access to a washing machine.</li>
<li>The remaining time displayed on the machine is inaccurate.</li>
<li>People forget to pick up their clothes when they are done.</li>
</ul>
<h3 id="design-alternatives">Design Alternatives</h3>
<h3 id="system-to-detect-vibrations">System to detect vibrations</h3>
<p>The first approach we had was using sensors that detect vibrations in the washing machine with Arduino. However, the sensors we had were too sensitive. Therefore, they could not differentiate between subtle and excessive vibrations.</p>
<p><img src="https://i.imgur.com/997jZ2e.jpg" alt="image3" /></p>
<h3 id="monitoring-electrical-energy">Monitoring electrical energy</h3>
<p>We tried to look for other quantifiable data that discriminate between the different washing machine statuses (<strong>water-in</strong>, <strong>rinsing</strong>, <strong>water-out</strong>, <strong>spinning</strong>). After several trial and errors, we found that the electrical energy varies between these statuses.</p>
<p><img src="https://i.imgur.com/XdAnbnT.jpg" alt="image4" />
Variation of electrical energy in the different states</p>
<p>We then found a smart home appliance that corresponds to our needs. It was a smart plug made for monitoring power consumptions, and it provides data on the electrical energy consumed. We contacted the company of this smart plug and proposed our ideas to potentially collaborate with them.</p>
<p><img src="https://i.imgur.com/edvYfNf.jpg" alt="image5" />
The architecture of our system</p>
<p>To distinguish between the states based on the energy consumption, we used machine learning to train a decision tree model to predict the current progress and status synchronously. We collected 3-day electrical energy data from girl’s dorm laundry room (2 machines) as our training data and ran our model.</p>
<p>However, our model had low precision because there was irregular usage of the washing machine. For example, users keep opening the lid of the washing machine to add more clothes, or sometimes the electric power gets tripped. To fix this, we stored the last active stage value (water-in, rinsing, water-out, spinning) of the last minute since minute is our time unit. This gave us a much higher accuracy.</p>
<h3 id="interface-design">Interface Design</h3>
<p>In the main panel of our interface, we listed all the washing machines with their status, progress bar (in %) and the overall washing schedule. By logging in and clicking on the subscribe button of a certain machine, the user will get a text message when the current washing schedule is complete.</p>
<p><img src="https://i.imgur.com/I4F6tov.jpg" alt="image6" />
Home page showing the status of the available washing machines</p>
<p><img src="https://i.imgur.com/INMI6kc.jpg" alt="image7" />
Screenshots of our mobile web app and text message notification of an anonymous user</p>
<p>The system is built with</p>
<ul>
<li>Angular.js 1 - web framework</li>
<li>MySQL - database</li>
<li>Gulp, Bower - packaging, building, development tool</li>
<li>Node.js, Express.js - backend services: subscription, sign-in/log-in</li>
<li>Twilio - text message service</li>
</ul>
<h3 id="user-feedback">User Feedback</h3>
<p><img src="https://i.imgur.com/B1CAnbZ.jpg" alt="image8" /></p>
<p>We pinned up a QR code for residents to download and use our app with a line explaining the application on the whiteboard and asked them to leave their feedback. Some feedback we received were:</p>
<blockquote>
<p>Oh this is so amazing</p>
<p>Can you build this for the third floor too?</p>
</blockquote>
<p><a href="./">Back to Home</a></p>
</section>
<footer>
<p><small>Project maintained by <a href="https://github.com/CApopsicle">CApopsicle</a></small></p>
<p><small>Hosted on GitHub Pages — Theme by <a href="https://twitter.com/mattgraham">mattgraham</a></small></p>
</footer>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'true', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>