HW 5 - Monitoring Sensor Data on Phones and in Browsers
Complete this assignment in your project groups.
You'll build a simple home monitoring system that allows you to 1) monitor a sensor reading of interest remotely on your tablet and in a web browser; 2) give you control to remotely affect the environment through some form of actuation.
You'll build two proofs of concept: one using web sockets, the other using the Android IOIO board. We want to make sure you understand both technologies. It is sufficient to demonstrate that you can get information flowing in both directions, e.g., by showing real-time sensor data in a web page and blinking an LED based on a physical switch. Then decide on one technology and build your project with it. Use at least one actuator (solenoid, servo motor, dc motor, vibration motor, or switch some device directly with an optoisolator).
Updated: Submit video and code of your final design and also your proofs-of-concept .
Examples of what you might build include:
- Phone-based garage door opener and garage light indicator (use a solenoid to push the garage door button; sense light with a photo cell)
- Remote cat feeder: put a load cell or FSR underneath the food dish; build a dispensing mechanism that releases food from a storage container with a servo motor. Also, fish feeder, remote cat toy, etc etc.
- Plant watering machine that opens a water valve and measures soil moisture
- Alarm system that shows the status of multiple magnetic reed switches, and notifies you of intrusions, rings a physical bell with a solenoid, etc.
- Smart light bulb e.g., Lifx
|Criterion|| Great solution
| Acceptable solution
| Poor solution|
|IOIO demo (5pts): Did you demonstrate successful bi-directional communication between IOIO and Android with checked in code and a short video?||Yes||Only one direction or missing code/demo||No, not shown or implemented|
|Browser demo (5pts): Did you demonstrate successful real-time bi-directional communication between Boarduino and a Web browser with checked in code and a short video?||Yes||Only one direction, or no realtime updates, or missing code/demo||No, not shown or implemented|
|Project Utility (2pts): Is your home monitoring system useful? Does it address any real need?||Yes, clear utility||Limited motivation, impractical||Motivation entirely unclear|
|Implementation and Polish (3pts): Does your home monitoring system work? Will it work reliably?||Solid, clean implementation||Working, but precarious implementation; messy construction||Does not work|
|Use of Actuator (2pts): Did you use one of the listed actuators in your final home monitoring system?||Yes||Only LED or other intangible output||No output at all|
|Documentation (3pts): Did you clearly explain and demonstrate the final working design in your writeup with text, images where needed, a demo video, and written reflection on the assignment?||Yes, clear documentation||Limited documentation||Key missing pieces (video, writeup)|
Turn in instructions
Create a Wiki Page for this assignment
Begin by creating a new wiki page for this assignment, for example by modifying a user page to add a link to a new wiki page for this assignment. The wiki syntax should look like this:
Replace GroupName with your project group's name. Then click on the link and enter the information about your assignment. You should upload the files described below and describe any extra functionality you implemented and want us to review.
(Your teammate should also add the link to their page).
Write up your project on this wiki
On the Homework5-GroupName page you just created, include:
- Short description and demo video of the IOIO proof of concept demo.
- Short description and demo video of the Boarduino+Browser proof of concept demo.
- Write 1-3 paragraphs about your home monitoring system implementation, as before. Motivate why you chose a particular implementation path.
- Include images (How to include images).
- Record a narrated video that describes all important aspects of your home monitoring system. (How to include video)
- Reflection: what you learned from this assignment (also let us know if this was too easy or too hard)
One you are finished editing the page, add a link to it at the bottom of the page with your full name as the link text. The wiki syntax will look like this: *[[Homework5-GroupName|GroupName]].
Turn in your code using the Class Revision Control System
Create a directory for your group for HW5:
svn mkdir http://berkeleyhci.unfuddle.com/svn/ berkeleyhci_devicedesign/assignments/hw5/<teamname> -m "creating hw5 group directory"
(all on one line)
Where <teamname> is a concatentation of your firstnames or usernames, e.g. bjoern-paul, or your teamname. Just make sure we know how to map from the directory name to you.
Then checkout the directory you just created:
svn checkout http://berkeleyhci.unfuddle.com/svn/ berkeleyhci_devicedesign/assignments/hw5/<teamname> hw5
Then add your files with svn add and commit them with svn commit.
Only check in your source files - don't check in any binaries. Feel free to check in images, but keep them <2mb each. Don't check in videos.