Łatwa automatyzacja IoT w chmurze
Czym jest IoT?
Przeszliśmy długą drogę od czasów, gdy ludzie wyjaśniali ideę połączonych ze sobą urządzeń poprzez przykład mówiący o lodówce, która będzie informować, gdy skończy się mleko. Nasz sposób myślenia ewoluował od takich właśnie połączonych, statycznych obiektów do obecnego stanu, gdzie urządzenia mogą monitorować tętno, czujniki – wykrywać toksyczne gazy, a mierniki śledzić liczbę przebiegniętych kilometrów i spalonych kalorii. Listę tę można kontynuować w nieskończoność.
Koncepcja Internetu Rzeczy w efekcie przeniknęła już do naszej świadomości, szczególnie w odniesieniu do rozwiązań dla domu. Amazon Alexa, Philips Hue, Hive firmy British Gas oraz Nest stały się w ostatnich latach powszechnie dostępnymi rozwiązaniami – symbolem rozkwitu na rynku urządzeń połączonych. Badania ankietowe przewidują, że do 2020 roku na świecie zostanie zainstalowanych łącznie 50 miliardów takich urządzeń. Dobrze więc znaleźć sposób, aby móc z nich efektywnie korzystać.
IoT i chmura – idealne połączenie
Równocześnie z chwilą, gdy koncepcja Internetu Rzeczy przeszła transformację, rozwinęły się techniki przetwarzania danych w chmurze. Początkowo były opracowywane na potrzeby wielkich korporacji, jako sposób na bardziej elastyczne wykorzystanie mocy obliczeniowej. Teraz otworzyły się także na konsumentów, którym dają szansę na bardzo łatwy dostęp do różnorodnych usług.
Ma to szczególne znaczenie w przypadku, gdy korzysta się z urządzeń IoT. Chmura pozwala na wykorzystanie bardzo dużej mocy, która może zmienić sposób, w jaki jesteśmy połączeni z siecią.
Wraz z rozwojem przetwarzania w chmurze oraz powstaniem Internetu Rzeczy, rozwijała się jeszcze jedna technologia – nastąpił znaczny wzrost wykorzystania telefonów komórkowych. Właśnie minęła 10. rocznica narodzin iPhone’a, który sprawił że każdy użytkownik mógł mieć swój własny, mieszczący się w dłoni, miniaturowy komputer. Możliwość korzystania z usług na żądanie, a do tego w ruchu, totalnie zrewolucjonizowały rynek komputerów wbudowanych.
Najwięksi operatorzy chmur zauważyli zapotrzebowanie na łączenie urządzeń IoT z chmurami i przygotowali oprogramowanie, które pomaga użytkownikom łatwo podłączyć urządzenia wbudowane. To właśnie takie firmy jak Amazon, Microsoft i Google pomagają użytkownikom wykorzystać zalety łączności z chmurą za pomocą oprogramowania wbudowanego w urządzenia.
Google wprowadziło usługę Google Cloud IoT Core, która pozwala na centralne zarządzanie urządzeniami IoT i zintegrowanie ich do postaci jednego systemu. Tymczasem Microsoft zastosował nieco inne podejście, a mianowicie rozbudował swój dotychczasowy system – Azure. Firma wprowadziła własną wersję funkcji do łączności w postaci pakietu Azure IoT, który pozwala na łączenie urządzeń przemysłowych z chmurą, czyniąc tę technologię dostępną dla firm produkcyjnych, a jednocześnie umożliwiając zarządzanie i analizę zdalnie rozlokowanych urządzeń i sensorów. Chyba najdalej tą ścieżką zaszedł Amazon. Ich AWS IoT obejmuje narzędzia SDK (Software Development Kit), które pomagają użytkownikom połączyć, autentyfikować i wymieniać wiadomości z serwerami AWS IoT za pomocą różnorodnych protokołów.
We wszystkich tych przypadkach, wykorzystanie chmury jest kluczowe dla sposobu, w jaki użytkownicy posługują się urządzeniami IoT. Niezbędne jest bowiem zapewnienie wysoce niezawodnego i rozproszonego środowiska. Chmura oferuje trzy zalety: nieograniczoną moc obliczeniową, elastyczność łączenia zdalnych urządzeń oraz zestandaryzowane podejście do wykonywania zadań.
Świat hobbystów
Zaprezentowane podejście jest idealne dla wielkich firm, które korzystają z urządzeń IoT. Oznacza bowiem, że moc wielkich dostawców usług chmurowych znajduje się w ich rękach i mogą łatwiej obsługiwać wszelkiego rodzaju urządzenia połączone z siecią. Ale co z hobbystami czy twórcami pracującymi w zaciszu domowym? Z kimś, kto pracuje nad małym projektem i potrzebuje jakiegoś rodzaju łączności, ale nie ma dostępu do finansów wielkiego przedsiębiorstwa?
Niektórzy z dostawców usług chmurowych wzięli na siebie pomoc uczestnikom tego rynku. Aby ułatwić życie twórcom, Amazon wprowadził AWS IoT Button – programowalne urządzenie, bazujące na Amazon Dash Button, które pozwala skorzystać z mocy chmury AWS, wprowadzając dodatkowe funkcje dla hobbystów.
Rysunek 1. AWS IoT Button
Ale na rynku istnieją także inne podejścia. Można bowiem mieć dostęp do usług w chmurze bez przechodzenia przez cały proces wdrażania. Przykładowo „Particle” to platforma IoT, która pozwala na zapewnienie prostej łączności urządzeniom. Jest wykorzystywana przez duże przedsiębiorstwa w produktach IoT, ale może też z łatwością współpracować z rozwiązaniami bazującymi na Raspberry Pi i Arduino. Innymi słowy, jest przystosowana do zastosowań typowo hobbystycznych, ale dla osób, które nie chcą bawić się w konfigurację usług operatorów serwisów chmurowych, takich jak AWS czy Google.
IFTTT
Warto też się przyjrzeć serwisowi IFTTT (If This, Then That – w bezpośrednim tłumaczeniu: „Jeśli to, wtedy tamto”), opierającemu się na uproszczonym języku programowania, który daje twórcom i hobbystom szansę na spersonalizowanie własnych aplikacji i usług internetowych. „to” i „tamto” są ważne w odniesieniu do tej usługi, gdyż IFTTT reaguje na sytuacje sprawiając, że jedno wydarzenie wywołuje odpowiednią reakcję. Przykładowo, włamanie wykryte przez alarm może za pomocą IFTTT przekazać informację na telefon.
System ten działa w oparciu o tzw. aplety – małe programy, które mogą wywoływać zestaw reakcji. Aplety bazują na dwóch elementach: wyzwalaczach, które odpowiadają za oczekiwanie na zdarzenie, i akcjach reprezentujących odpowiedź programu na wykrycie zdarzenia.
Rysunek 2. Budowanie apletów
IFTTT współpracuje z szeregiem platform, począwszy od serwisów internetowych, takich jak YouTube czy eBay, a kończąc na urządzeniach, np. przesyłających obraz z kamery do strony internetowej. IFTTT jest szczególnie użyteczne podczas łączenia Raspberry Pi z chmurą – to bardzo szybka metoda na tworzenie nowych aplikacji. Poprzez zaimplementowanie IFTTT, użytkownik może skorzystać z chmuropodobnych usług bez potrzeby posiadania prawdziwej, pełnej instancji serwera w chmurze. Zdecydowanie upraszcza to łączenie urządzeń w domu czy małym biurze.
Aby zaznajomić się z IFTTT, trzeba najpierw zrozumieć koncepcję usług (wcześniej nazywanych kanałami) – stanowią one podstawowe bloki, na które składają się wszystkie aplikacje IFTTT.
W IFTTT istnieje wiele różnorodnych usług wspierających urządzenia IoT. Są kanały dla urządzeń medycznych, automatyki domowej, wspierające systemy oparte na Arduino, a nawet oprogramowanie biznesowe, takie jak np. Office 365. Istnieje duże podobieństwo pomiędzy logowaniem się do tych serwisów i korzystaniem z chmury na potrzeby usług dla przedsiębiorstw. W obu przypadkach wywołuje się oprogramowanie działające na innych serwerach.
Przykładowo, usługa IFTTT Maker Service kierowana jest do hobbystów, którzy starają się stworzyć mały projekt urządzenia elektronicznego. Poprzez skorzystanie z Maker Services, projektant może przygotować aplet dla własnego urządzenia i zapisać go tak, by był dostępny dla innych użytkowników. Usługa ta pozwala każdemu użytkownikowi na korzystanie z własnej nazwy do tworzenia takich projektów, a większość hobbystów tworzy rozwiązania oparte o Raspberry Pi lub Arduino.
Każdy może samodzielnie zarejestrować własną nazwę użytkownika i korzystać z niej do tworzenia całych zestawów usług. Następnie można wprowadzić tzw. „webhooki”, które pozwolą połączyć urządzenia lub programy z dowolnymi innymi urządzeniami oraz usługami dostępnymi przez sieć. Możliwości oferowane przez IFTTT są bardzo duże, zarówno dzięki potencjałowi obliczeń w chmurze, jak i bogactwu funkcji serwisu. I o ile wielkie korporacje mogły korzystać z mocy i elastyczności chmury od lat, teraz także i hobbyści są w stanie łatwo tworzyć projekty oparte o rozwiązania chmurowe. Teraz nie mają już wymówki.
Autor: Cliff Ortmeyer, Global Head of Solutions Development w Premier Farnell