Chmura dla mikrokontrolerów

Sparkfun znana firma dostarczająca części dla twórców DIY wprowadza nową usługę. Jest nią chmura dla mikrokontrolerów.

Projekt znajduje się pod adresem http://data.sparkfun.com i umożliwia wysyłanie tam danych z twojego urządzenia. W wersji ogólnodostępnej wszystkie wysłane dane są publiczne. Maksymalna ilość wysłanych danych to 50 MB. Po przekroczeniu limitu kasowane są najstarsze zapisy. Można wysyłać dane maksymalnie 100x na 15 minut.

Dane można potem odczytywać w formacie JSON lub CSV. Można je też zintegrować z własnym serwisem wizualizując np. za pomocą Google Charts.

Danych nie musisz trzymać w chmurze Sparkfun. Kod serwera danych jest otwarty jako projekt Phant. Jest napisany w Javie Script na platformie Node.js. Możesz go umieścić gdzie chcesz. Nawet na płytce typu Raspberry PI, Beagle Bone Black lub Arduino Yun.
Hostując Phant samodzielnie unikasz ograniczeń serwisu Sparkfun.

Przy rejestracji własnego strumienia danych w serwisie wpisujesz nazwy pól (fields). Są to etykiety zmiennych pod jakimi będziesz wysyłał dane do serwisu.

Po rejestracji otrzymasz adres do podglądu danych (public_key), klucz do usuwania danych (delete_key) i klucz do zapisu danych (private_key).

Szablon adresu wysyłania danych wygląda tak:

http://data.sparkfun.com/input/[publicKey]?private_key=[privateKey]&temp=[value]&time=[value]

W nawiasy kwadratowe wpisujesz swoje dane otrzymane z formularza rejestracji.
Wpisałem pola “temp” i “time” i takie mi się ukazały w szablonie. Jeśli wybrałeś inne pola, to dostaniesz dostosowany do nich szablon.

Jeśli jesteś adminem lub zagorzałym power-userem Linuksa, do wysyłania danych do serwisu możesz użyć polecenia curl. Wpisujesz za nim odpowiednio spreparowany adres www z wypełnionymi polami i dane zapisują się w serwisie.

Jeśli jesteś programistą, to napisałem gotowy przykład w języku Python 2.

import urllib

def sparkfunSend(temp, time):
	URL = 'https://data.sparkfun.com/input/***TU KLUCZ PUBLICZNY***'
	PRIVATE_KEY = '***TU KLUCZ PRYWATNY***'

	params = urllib.urlencode({
		"private_key" : PRIVATE_KEY,
		"temp" : temp,
		"time" : time
		})

	urllib.urlopen("%s?%s" % (URL, params))

Działa on dla moich pól temp i time. Jeśli masz inne pola, musisz odpowiednio przerobić program.

sprae

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.