Jakie usługi IoT są dostępne do przechowywania / wysyłania / publikowania (i operacji przeciwnych) ogólnych niewielkich ilości danych w chmurze?
Szukam na przykład usługi, w której urządzenie może przechowywać wartość w chmurze. A inny podmiot (inne urządzenie, strona internetowa z kodem JS, serwer WWW, aplikacja mobilna) może pobrać tę wartość.
Może to być pewnego rodzaju komunikacja asynchroniczna, na przykład do przechowywania i wyszukiwania czegoś tak małego jak para klucz i wartość, <255 bajtów, liczba całkowita, łańcuch, co najwyżej mały obiekt JSON. Usługa może oferować interfejs API REST (więc może być dostępny w wielu różnych językach) z pewnym tokenem do uwierzytelnienia oraz kluczem i wartością do przechowywania.
Szczegółowym przykładem przypadku użycia jest:
W domu jest czujnik temperatury i chcę, aby przechowywał wartość w chmurze ( gdzieś poza domem ). W ten sposób mogłem uzyskać do niego dostęp, niezależnie od tego, czy moje połączenie domowe jest wyłączone czy nie. Co więcej, pozwoliłoby to uniknąć utrzymywania i utrzymywania serwera dedykowanego + przekazywania portów + DynamicDNS.
Do tej pory nie byłem w stanie znaleźć czegoś takiego, ale czasami znalazłem kilka przykładów tego, co mam na myśli:
Jakie są inne podobne (bezpłatne / otwarte) alternatywy?
źródło
Odpowiedzi:
Spójrz na te usługi:
Obie usługi akceptują proste dane klucza / wartości z urządzenia. Wierzę, że oba mają biblioteki gotowe do importowania dla urządzeń Particle, odkąd o tym wspomniałeś.
źródło
Wielu dostawców usług w chmurze, takich jak Amazon, Microsoft, Google, IBM itp., Próbuje przyciągnąć przestrzeń IoT, zapewniając łatwiejsze sposoby wysyłania / przechowywania / analizy danych czujników do swojej chmury. Nawet oni mają pozyskać dostawców sprzętu, aby zwiększyć ich zasięg w IoT.
Nie korzystałem z żadnych usług innych niż AWS, więc mogę wyjaśnić moje doświadczenia z AWS i sposób, w jaki to zintegrowaliśmy na potrzeby produkcji.
Scenariusz:
Mamy setki czujników, z których każdy wysyła 184-428 bajtów danych co minutę do lokalnej bramy, która agreguje dane i przechowuje dane lokalnie i wysyła te same dane do chmury AWS. Posiadamy również specjalne czujniki, które przesyłają dane bezpośrednio do chmury.
Usługi w chmurze
Używamy AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Gateway, AWS SNS, AWS Cloudwatch, AWS RedShift, aby zbudować całe rozwiązanie. Zasadniczo nie są one specyficzne dla IoT (z wyjątkiem AWS IoT), ponieważ możemy ich używać w urządzeniach mobilnych i sieci.
Gateway używa AWS IoT SDK do łączenia, uwierzytelniania i wymiany wiadomości z AWS IoT za pomocą protokołów MQTT, HTTP lub WebSockets (korzystamy z węzła JS SDK łączącego się za pośrednictwem MQTT). Jesteśmy brokerem MQTT lokalnie na bramie urządzenia i łącząc go z punktem końcowym AWS IoT stamtąd uruchamiamy natychmiastowe sprawdzenie otrzymanych danych (za pomocą silnika reguł, funkcji AWS Lambda) i przechowujemy je w archiwum DynamoDB w S3, Glacier (Przechowywanie jest zakończone bez pisania jednej linii po prostu używając wyzwalaczy AWS do przechowywania danych).
źródło
Jest przeznaczony wyłącznie do użytku eksperymentalnego lub testowego, ale może zmieni się w przyszłości.
Dlatego proponuję użyć MQTT , a dokładniej jego implementacji Mosquitto . Obsługują brokera testowego, z którym można połączyć klientów subskrybenta i wydawcy. ( Oto przewodnik na temat procesu instalacji w systemie Windows 7. )
Uwaga:
Ale w zasadzie możesz publikować dane dotyczące temperatury w tym brokerze.
Po stronie abonenta-klienta ostatnio korzystałem z tej aplikacji na Androida . Jest to bardzo prosta aplikacja, wciąż w fazie rozwoju, ale do celów testowych jest świetna. Otrzymane wiadomości są wyświetlane na pulpicie nawigacyjnym, nic szczególnego tylko same wartości.
Zacząłem używać obu z nich jako pierwszego etapu mojego procesu uczenia się MQTT i uważam, że oba są świetne dla początkujących.
źródło
Są na to dwa elementy:
Jak chcesz przechowywać swoje dane? Nie ma prawdziwego sposobu na stworzenie „ogólnej” usługi danych, która naprawdę spełni wszystkie potrzeby. To, co chcesz, nazywa się „bazami szeregów czasowych” , a są ich setki, ponieważ każdy szczegół przechowywania danych ma dużą skalę. (Jeśli nie jesteś na dużą skalę, po prostu przechowuj ją w dowolnej starej bazie danych, będzie działać przez chwilę).
Baza danych za każdym razem była zapisywana, ponieważ inni nie robili dokładnie tego, co chcieli. Rozważmy na przykład, w jaki sposób Grafit przechowuje swoje dane: każda metryka (powiedzmy temperatura z jednego źródła) jest przechowywana w pliku o stałym rozmiarze. Bez względu na to, jak często wysyłasz metryki i jak długo je wysyłasz, plik ma stały rozmiar.
Minusem jest to, że starsze dane mają niższą rozdzielczość, a po ustalonym interwale (na przykład 1 rok) dane są wyrzucane. Ale zaletą jest to, że wykres jest tak szybki jak dzień w ciągu roku, a wskaźniki z czasem nie rosną.
W innych systemach pamięci masowej generowanie wykresu na rok może wymagać pobrania milionów punktów danych i może wymagać ogromnej ilości pamięci.
Dużą wadą Grafitu jest to, że każda metryka tworzy nowy plik, więc jeśli masz metryki dynamiczne (powiedzmy, że chmury pojawiają się i znikają), może to nie być dobre dopasowanie.
Porównaj to z Prometeuszem , gdzie dane są przechowywane głównie przez czas. Możesz mieć wiele dynamicznych wskaźników i jest w porządku. Ale nie próbuj przechowywać tych danych w perspektywie długoterminowej, powrót do nich i przeczytanie zajmie wieczność.
Żaden rozmiar nie pasuje do wszystkich.
PS Graphana to doskonały sposób na wizualizację danych. Posiada wtyczki do większości baz danych szeregów czasowych.
Kto będzie przechowywać twoje dane? Istnieją tysiące z miejsc takich jak te, o których wspomniałeś. Tak łatwo jest rozłożyć DB w szeregu czasowym w chmurze, ale NAPRAWDĘ trudno jest na tym zarobić. Większość z tych firm po pewnym czasie przestanie działać lub zacznie żłobić ceny. (Nawet utrzymywanie ich cen na stałym poziomie jest wyłudzaniem cen - ponieważ koszty komputerów stale spadają.) Wiele razy okazuje się, że nie są w stanie przyciągnąć tylu nowych klientów, jak im się wydaje, więc próbują podnieść ceny (pod pozorem zmiany modelu wyceny). Okazuje się, że przechowywanie danych wszystkich kosztuje dużo pieniędzy ...
Polecam hosting własny lub skorzystam z usług renomowanego dostawcy usług w chmurze, takiego jak AWS CloudWatch . (Drogie, jeśli masz dużo danych, ale za darmo dla danych poniżej 50!)
źródło
uBeac to nowe bezpłatne oprogramowanie do wizualizacji, które opracowaliśmy i jest to wersja Beta. Nie jest open source, ale jest w pełni darmowy.
Możesz zdefiniować bramę, a otrzymasz unikalny identyfikator URI. Możesz ustawić identyfikator URI w swojej bramie lub urządzeniu, na które będą wysyłane dane HTTP / MQTT.
Oto niektóre z jego funkcji:
Obsługuje ogólny format danych Json oraz różne predefiniowane bramy. Jeśli nie chcesz używać wstępnie zdefiniowanych formatów ładunku, mogą one rozwinąć niestandardowe przetwarzanie ładunku.
źródło
Dziwię się, że nikt tutaj nie wspomniał o Dweecie . To bardzo prosty, super zabawny sposób na komunikację. Na pewno powinieneś spróbować, bo hej, to nic nie kosztuje!
źródło
flespi zapewnia bezpłatne i komercyjne usługi w chmurze:
Obowiązkowe wyłączenie odpowiedzialności: Pracuję dla firmy, która rozwija platformę flespi. Chociaż starałem się zachować obiektywizm, jak zawsze w Internecie, proszę dokładnie sprawdzić wszystkie informacje w tej odpowiedzi, aby wykluczyć uprzedzenia, które mogą wpłynąć na twoją decyzję.
źródło