Best IoT cloud for datalogging/storage in teaching lab

We are using the particle photon and electron for teaching IoT sensor applications in environmental science.

We have had great success with the the products and we have received nice support form this forum.

I would like to teach a lab where the students implemented a larger scale cloud storage application. For example, suppose we have hourly weather data coming in from 10 particle photon-based weather stations. We want to store the data and allow for easy recovery of CSV data (to excell, etc.) from the database. Dashboards and real time graphing are not crucial.

We have looked into using both Google Cloud and Azure

Which one would you recommend - or is there even an simpler option ?

These students are in environmental science - their coding skills are minimal - so simple is good.

We don’t mind doing the work on learning the implementaiton - just want some advice on which “road” to start down.

Thanks in advance for your suggestions

Hi, one that I like and find simple is ubidots.
Not 100% sure about “easy recovery of CSV data” but I’ve seen something around.
hope it helps!
Gustavo.

1 Like

I second Ubidots also.

Ubidots does allow you to download saved data in CSV format for all your variables so that is possible.

1 Like

Thanks for the suggestion to use ubidots.

I looked over some tutorials including the excellent one by @RWB on setting up a dashboard

I tried a simple experiment using the examples given here

I built a Device on ubidots called "Weather Station" with a single variable called "Temp"
Then built a dashboard with widgets called "WeatherShield"

Here is the code I flashed to the electron

// This #include statement was automatically added by the Particle IDE.
#include <Ubidots.h>

// This #include statement was automatically added by the Particle IDE.
//#include "Ubidots/Ubidots.h"

#define TOKEN "pwy6q5f43V71zV516s6dyxxxxxxxxx"  // Put here your Ubidots TOKEN
#define DATA_SOURCE_NAME "Weather Station"

Ubidots ubidots(TOKEN);

void setup() {
    Serial.begin(115200);
    ubidots.setDatasourceName(DATA_SOURCE_NAME);
}
void loop() {
    float value = analogRead(A0);
    ubidots.add("Temp", value, "context1=value_context1$context2=value_context2");  // Change for your variable name
    ubidots.sendAll();
    delay(5000);
}

When I ran this, my data appeared as a new device on ubidots called "Particle" - it did not go to my dashboard called "Weather Station" . So I got data - but not where I wanted it.

I don't fully understand the difference between Name and Tag - and how that relates back to the devices and dashboards I create on Ubidots.

ubidots.setDatasourceName(DATA_SOURCE_NAME);
ubidots.setDatasourceTag(DATA_SOURCE_TAG);

Thanks in advance for any help with this newbie question.

You need to just create widgets in your dashboard and use the new Particle data source as the source for that new temp data.

Try adding a new widget and it should give you the option to choose the new Particle data source.

Let me know if you have trouble.

I’d suggest you check out Grovestreams. Mike Mills has an excellent offering with examples including Particle.

1 Like