Simple Manipulation and Actuation of Remote Things

SMART allows users to graphically compose applications by tying together their smap connected devices with additional control logic. The goal of this project is for everyone to make the full use of their devices to meet individual specific needs. SMART scans for available devices and allows the user to run any of their created apps whose devices are all within range. The devices and control logic are represented as nodes that can be connected together with 'wires' using an intuitive drag and drop interface.

Users create app on a mobile device (currently only Android and IOS are supported). After the app is saved to a server the user may issue commands to start, pause, or delete the app. The server executes the app and makes queries to the smap database to control the various devices the app uses.

Here is a more detailed diagram of the implementation:

These are some example applications built with SMART. The one on the left connects together a button, an IR temp sensor and an LED strip. When the button is pressed the LED colors will change in proportion to the sensed temperature. The app on the right ties the same strip (it had been renamed) together with the z-axis of an accelerometer. The brightness of the lights are now proportional to the angle of the accelerometer. When it is facing down the lights are off, when it faces up the lights are at full brightness. It was created by one of the instructors as they where evaluating this project.

This was done as the final project for Berkeley's CS194 - The Internet of Everyday Things. Project partners where Tsion Behailu, Kavan Sikand, and Andrew Chong.
The repository is hosted on github here