
The State of Motion Sensor (SoMS)
During my final year at Wichita State University six other students and myself were tasked with designing and building an idea that was marketable and served a business need. The State of Motion Sensor is what we eventually settled upon and immediately began the design phase.
The market that we were aiming for is that of the coin operated laundries. The idea behind this decision is that an end user would be able to be notified upon completion of a cycle of a washer or dryer. This allows them to go on about their day and run more errands while their clothes were in the wash, really just giving them freedom and flexibility.
The device is extremely simple, consisting of just a few independent pieces with the main two being a vibration sensor and an Arduino type board. Using these components we were able to build a fully functioning state sensor that would send notifications if certain criteria were met, i.e. set amount of time, vibration stopping/starting, etc.
The images below document the process from start to prototyping multiple iterations. The final prototype is displayed first, with the initial iteration displayed later in the page.

Final Prototype
The
The final prototype was a vast improvement overt the initial design. We managed to reduce the overall structure by about 50%. In doing this, we increased battery life for each of the devices and decreased weight. And as a side effect, increased discreetness. We implemented three of the final prototype design which each consisted of: ESP8266, accelerometer and battery. These components will sense motion in their surroundings and wirelessly report this data in real time to a phone application for consumption by users. Text messaging functionality was also implemented as a warning/alert system. This system is kiosk based, where a user can walk to a centralized location to check status and input information.
My contributions to the final product were: Complete design and development of server and application, complete design and development of the overall circuitry of the node devices, co-design of node side embedded logic, project management, treasurer and Team Lead.
A quick video demonstration
Meet Washy McLaundromat, our made up coin operated laundromat. We decided to make a laundromat to use as a real world example of our product. Washy McLaundromat would be equipped with multiple 'washers' and 'dryers' for testing purposes.
Pictured right it a mock up of the layout of the laundromat inside the custom application that I developed. Customers would be able to walk up to a kiosk (pictured below) and see all the machine that are currently in operation so that they can quickly find a open machine.

After placing their clothing in the machine and starting the cycle the customer would need proceed back to the kiosk and click on the machine that represents the one that he/she is using. The machine will now show that there is a cycle in progress by changing the image of the washer that is in use. A prompt will then pop up and ask the user to enter in a phone number for contact.
As a note, none of the aforementioned is required and the laundromat may be used as normal by any customer who does not desire to utilize this functionality.




Once the machine is detected to no long be in motion (cycle complete) if a number was entered for this machine the system will then send a text message notification to that person that the cycle is complete.
This alert system is also set up to send abnormal vibrational patterns detected to a predetermined maintenance number.
This system was set up by utilizing a 3rd party client called Twilio.

There is an admin panel that can be accessed by maintenance or owners of the store. From this panel they are able to glean information into each of the machines operational states and some of the more minute characteristics and patterns. There is a real time updating graph for each of the machines that are currently in operation, these graphs can be tuned to show different periods of time.
On top of the graphs there is a history button that man be pressed that shows the total history for this machine (vibration amplitude and timestamp). Finally there is an option to set the operational threshold for each of these machines. This threshold is the amplitude that the accelerometer must surpass before it is tracked as in operation. This is put in place because the accelerometer are extremely sensitive, so we needed a relatively strong value so that they wouldn't be picking up erroneous vibrations and give false positives.
There are some general troubleshooting texts on this page to assist in development.

The kiosk is set up as a centralized location for the users to be able to walk up to and check information about the state of the laundromat as a whole. As it stands with it's currently development this kiosk application is also what hosts the server in which each of the machine nodes communicate with. The server utilizes threading for displaying real-time information and to handle the data sent from each of the node simultaneously. This allows the application to be able to handle a scalable number of nodes simultaneously.
For this final prototype, we designed and implemented three nodes to showcase the threading capability. Below are a few initial pictures of the design and construction of the cases.

First Prototype
The
The initial prototype was ultimately a success with what we set forth to accomplish, although it did showcase many features that we sought to eliminate in the second iteration.The prototype is much bulkier than we would have liked and was a single system where the processing and data collection were all performed on the same Arduino device. This allowed for quick prototyping and a relatively simple design. This system consisted of: an ESP8266, LCD screen, keypad, digital vibration sensor and case. Below shows the design and implementation of most of the initial prototype. To get a better understanding of the design of both the initial and final prototype, click here.