Home

Awesome

Sensorium

Sensorium is an Android Application that collects "sensor" information from your device ("Sensor data") and provides external interfaces to gather and process the data for scientific experiments. This is done in a privacy-preserving way. Only the data and only in the level of detail you allow will be made available.

Sensorium can be remotely pre-configured to suite the needs for your experiment campaign. If you want to implement further sensors or interfaces, please do so.

We are using some of the sensor values for Open 3G Map.

All our code is available under the GNU Lesser GPL 3.0. We would appreciate it if you contributed back to the Sensorium project.

Currently Available Sensors

External Interfaces

Sensor, Interfaces and Privacy Configuration

Users can also configure each sensor individually to suite their privacy needs. Also, can prevent Sensorium from running at boot or disable individual interfaces,

Develop

Apart from improving the core Sensorium code, you are probably mostly interesting in writing your own Sensor or Interface classes. The following might help you with that.

Implementing New Sensors

  1. Extend the AbstractSensor class
  2. Implement your sensor reading stuff, putting all values to be published in SensorValue objects
  3. Call notifyListeners() whenever your Sensors wants to have its values updated
  4. Put your class name into the res/values/sensors.xml to get it loaded

Implementing New External Interfaces

Currently, we either talk through XMLRPC to your locally running code or we push JSON data to Web Servers.

Have better ways of communicating your sensors? Implement it! At the moment, it would be best if you read the code to understand what you would need to do. We are still working on a small tutorial to get you started.

Third Party Libraries

(Note: If you were looking for information on our NetSys2013 demonstration, please look here.)