For the past two weeks, we have focused our efforts on drafting and revising a requirements specification for our capstone project (as it is required for all capstone projects). This document is available on GitHub in our project’s fork of the OPEnSampler repo, under the “capstone” branch.

Overall, there are two major components to what we will be delivering over the course of this project:

  1. An Android app (that we’re calling the OPEnSampler Companion app) that will be able to update OPEnSampler’s settings and control it directly.

  2. GSM functionality allowing the OPEnSampler device to send status updates and information to specified recipients.

Companion App:

The primary purpose of the OPEnSampler Companion app is to replace the need for a physically connected laptop. It will be used to easily read and adjust the settings on an OPEnSampler device, and it’ll be a big improvement in usability over the serial command set currently implemented.

The OPEnSampler Companion app will be able to...

  • Pair with the OPEnSampler device over Bluetooth Low Energy

  • View and update the device’s settings, such as timer mode (daily vs periodic), sample rate/timer length, sample size, etc.

  • “Puppet” the device, instructing it to open/close valves or enable/disable the pump in either direction.

  • Specify recipients of status updates.

The app we’re developing will be for Android devices. Unfortunately iOS support is out of scope for our capstone project, but that’s something others could take on down the road.

Status Updates:

Status updates will allow an OPEnSampler’s users to receive information about the device and know what it’s up to. Currently we’ve been planning on supporting email and SMS (text message) notifications, but email is the primary focus.

The OPEnSampler will notify users when a sample is collected, or when all samples are collected, and these notifications will include timestamps. Once the OPEnSampler supports measuring battery capacity, it will also warn users of low battery life. We’d also like to send information about environmental sensors included in the Sampler (like temperature).

The Companion App will be able to specify the recipients of status updates, but we’re still researching the limitations of how many users’ email addresses or phone numbers can be stored on the OPEnSampler’s EEPROM (persistent memory that stores the device’s settings). If this turns out to be a problem, we’re considering a variety of options:

  1. We could allow users to hard-code extra recipients into the program itself (making use of flash memory, which is much larger than EEPROM), with the caveat that users would have to re-upload the program whenever they wish to change these.

  2. We could expand the storage capacity of the OPEnSampler with an SD card (which could be useful for other reasons, like if we wanted to do logging).

  3. Users could simply maintain a mailing list of status update recipients, and store only the address for that list in EEPROM.