Go Down

Topic: Anyone interested in developing a cloud service? (Read 749 times) previous topic - next topic

dig090

[[ Sorry if this is the wrong forum for this. ]]

I've been thinking of engineering an open-source free/cheap Arduino cloud service.  Google searches for such things turn up some possibilities but nothing open-source enough for my tastes -- please feel free to correct me if I'm reinventing the wheel.  Also most available solutions are generic but I'm interested in an Arduino-optimized solution.  Anyone interested in helping with the specification writing and Arduino development?  I've done a lot of distributed and cloud related internet services as well as a lot of free/cheap software services (ORMLite, dmalloc, mailnull, ...).

The idea would be code on github as well as launched on Amazon EC2 for 24/365 and support a set of API calls to upload/download values from the cloud and some simple triggering logic.  The API would support discovery (N ways to do this), triggering events through web calls/templates (increase theromostat temp for example), reporting (maybe limited graphing or more likely integration with some 3rd party graphing tool) to report on voltages and relay status, etc..  More suggestions for features here are welcome.

I don't want this to be a system designed by committee but I would be interested in thoughtful feedback.  To cover costs there would be fees but I'm shooting for free for intermittent use and $1/year for 10 devices or something afterwards.  Depends a _ton_ on the average trxn load and storage requirements.  Something btw $1/year or $1/month should be doable for all but the most data intensive applications.  The goal is a system that covers the cost and maintains the necessary Amazon instances/network.  I have a day job so $0 income from this will be fine.

I've written a couple of Arduino devices but I'm far from an expert there so I would need help with the Arduino side of the fence.  For example, I'd like to use UDP for the device pings to keep the network requirements to a minimum but I'm not sure that's even supported by all network shields although the google says it does.  Auto-discovery of a cloud-enabled device is a challenge that would be need solved from the start.

I'm not interested in being a lead for a huge team project but a couple of good partners on the Arduino side of the fence would make this fly.  I'm also not a UI designer so some interface work on the web-app side would also help.  If you are interested either reply or [better] ping me via my projects above.  If I get a lot of responses my apologies in advance if someone else seems like a better fit.

Again, my apologies if this is inappropriate for this forum.  Happy hardware hacking to you all.
gray

zoomkat

Perhaps you should explain just what the "cloud" is and how it is different from other forms of network implementation.
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

dig090


Perhaps you should explain just what the "cloud" is and how it is different from other forms of network implementation.


Sorry, sure.  I'm talking about a library that will facilitate network connectivity of a device without the Arduino programmer writing the server side.  All the programmer would have to do is link in the cloud service library and register their device with the service to be able to remotely control it, monitor it, and be notified by the device 24/365.

In it's most simplistic form, the cloud service library would first allow for some sort of registration of the application.  This is ~pseudo code:

Code: [Select]
cloud.register("username", "password", "MyTempApplication");

Then it would allow the persisting of values to the remote cloud server.  So you could say something like:

Code: [Select]

#define TEMP_VALUE = 100
cloud.store(TEMP_VALUE, 67) ;
// so you can store a bunch of values then publish in one trxn
cloud.publish();


It could also look up values that would be refreshed once and a while:

Code: [Select]
temp = cloud.retrieve(TEMP_VALUE);

That make sense?
gray

CrossRoads

Most Arduino uses are embedded, non-connected applications.
This could be useful for some small number of things.
Have to worry about security too.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

dig090

> Most Arduino uses are embedded, non-connected applications.
> This could be useful for some small number of things.

Agreed.  Although just about all my applications (EV car charger, temperature differential controller, etc.) would be improved with some monitoring.  I've got other projects that just about require the ability to talk to them remotely.

> Have to worry about security too.

Indeed.  I was thinking of both a username and a shared secret for the application and encryption of the data based on those values using one of the cheaper encryption algorithms if necessary.  Maybe XXTEA.

jambel

@dig090 I'm the author of www.jubito.org and these days it cross my mind a modification of the server to cloud server.

Take a look at my project if you like and post any mod ideas. I'm all ears! Also help is much appreciated.

Go Up