BlueberryE App

Why an App?

we developed the BlueberryE (together with our friends at BilberryC). The basic idea is to visualize and store sensor readings on a smartphone. The sensors are readout by a microcontroller (typical Arduino boards and derived/cloned like our Uno335 will work) through the smartphones USB port. That way the Smartphone also powers the controller board. Currently and for the foreseeable future the app supports only Android.

Prerequisites

  • starting with the good news most high end phones like Samsung S5/6/7 support all required features (please let us know if you tried it with a certain phone and it worked).
  • minimum Android version is 5.0 (this is as of writing in October 2016 ~53% of all Android phones.
  • furthermore the phone must support USB host mode. In USB Host mode the phone powers the attached device and is the host in the communication.
  • you need a OTG cable

Screenshots

Data transfer API

We defined an JSON based exchange protocol between the App and the sensor system.

Protocol examples:

please note here the JSON contains linebreaks the response to the app should not contain linebreaks. A linebreak is used to signal end of transmission.

Request a list of all available data sent by te app

{"task":"sensorlist"}

the resonse of your program

{
  "responseType":"sensor_list",
  "values":[
     {
        "id":"PT1",
        "param":"Temperatur",
        "unit":"Celsius",
        "desc":"Dient zur Messung der Temperatur"
     },
     {
        "id":"PT2",
        "param":"CO2",
        "unit":"PPM",
        "desc":"Dient zum Messen des CO2 Gehalts"
     },
     {
        "id":"PT3",
        "param":"Relative Luftfeuchte",
        "unit":"Prozent",
        "desc":"Dient zum Messen der Luftfeuchtigkeit"
     }
  ]
}

App sends request for one sensor

{
  "task":"read",
  "params":[
     {
        "id":"PT1",
        "unit":"Celsius"
     }
  ]
}

App requests data for 3 sensors

{
  "task":"read",
  "params":[
     {
        "id":"PT3",
        "unit":"Prozent"
     },
     {
        "id":"PT2",
        "unit":"PPM"
     },
     {
        "id":"PT1",
        "unit":"Celsius"
     }
  ]
}

The respnse of your program.

{
  "task":"result",
  "params":[
     {
        "id":"PT3",
        "unit":"Prozent",
        "value":"10"
     },
     {
        "id":"PT2",
        "unit":"PPM",
        "value":"4.4"
     },
     {
        "id":"PT1",
        "unit":"Celsius",
        "value":"4.78"
     }
  ]
}