CIS 542 - Summer 2013

Group Project Overview


In this project, you will work with one other student to develop a system with "embedded" and "mobile" components. The goal of the project is to create an Android application that is able to get data from remote sensors, and to send control information to a remote display or actuator.

The theme of the project is "home automation", which includes things like temperature control, security, energy efficiency, etc.

Because all students have different backgrounds, levels of interest, experience, and goals, your group may choose different components among the options described below.

Project Components: Sensors

1. Temperature Sensor
You will use a Gravitech 7-Segment Shield, which includes a temperature sensor. You may start with this Arduino program which reads the temperature and writes to the serial port once a second. This is probably the most straightforward sensor in terms of ease of use.


2. Motion Detector
The sensor is a PIR Motion Sensor, which detects when an object moves past it. You may start with tutorials you find online, such as this one.


3. Pressure Sensor
This is a Force-Sensing Resistor that detects pressure, e.g. when someone is stepping on it.


4. Proximity Sensor
One option is to use a Sharp IR Proximity Sensor sensor (similar to the one described here), which uses infrared; another option is to use an ultrasonic sensor. Each detects how close an object is to it. To get started, you may use code that you find online.


5. Keypad
This is a standard keypad like you'd see on a touchtone phone.


Note that you may use two of the same types of sensor in your project, e.g. two temperature sensors.

Project Components: Displays and Actuators

1. 7-Segment Display
The Gravitech 7-Segment Shield also includes a 7-segment display, which is the type of display typically used on a digital clock. You could use this to display the temperature or any other information.


2. LED Display
This is an LED Matrix display that includes an 8x8 grid of LEDs that you can control.


3. DC Motor
We do have some DC motors that you can drive from the Arduino to do things like turn a fan.


4. Light bulb
An Arduino can control a basic lightbulb but this does require a bit of electrical engineering.



Based on the components that you choose for your system, you will work with members of the instruction staff to identify ten functional requirements and four non-functional requirements (e.g., acceptable latency, error-handling, etc.). Groups having more than two students will likely have more than 10 functional requirements. Changes to the requirements must be approved by a member of the instruction staff.

If there are other components you would like to try to use in this project, please notify the instructor and we will see what we can do.




It is important that you make steady, continuous progress towards your final system. Over the course of the semester there will be five "milestones" that your group must meet:

Due Date Deliverable
May 29 Choose components and discuss requirements with TA/instructor
June 10 First Demo (Back-End Prototype)
June 19 Second Demo (Front-End Prototype)
June 26 Final Demo and In-Class Presentation
June 28 Final Project Submission

More info about each deliverable will be provided shortly.

Academic Honesty

You should be working with the other members of your group project team, obviously. However, you should not discuss or share solutions with students in any other groups, nor should you be receiving any help from outside sources, including students not taking this course or online resources. If you find help online or use third-party code as part of your solution, you must cite it. Failure to do so will be considered academic dishonesty, and your team will receive a grade of 0 on this assignment. And that would be bad.

Updated: Wed 22 May 2013, 3:20pm