Od niedawna działa wersja beta chmury Arduino, która współpracuje z płytkami MKR. Dzięki niej dosłownie każdy miał mieć możliwość budowy ciekawych urządzeń IoT.
Pora sprawdzić czym tak naprawdę jest darmowa chmura Arduino IoT Cloud i jakie są jej wady.
Chmura Arduino, o której pisaliśmy miesiąc temu dedykowana jest dla fanów Arduino, którzy chcieliby bardzo łatwo rozpocząć przygodę z IoT. Podstawowe informacje na temat tej usługi znaleźć można we wspomnianym już wpisie:
Hobbyści, pomimo głośnych premier, nie sięgali zbyt chętnie po nowe płytki z serii Arduino MKR. Mało kto widział realne zalety…... Czytaj dalej »
Arduino IoT Cloud - jak zacząć?
Docelowo, do nowej chmury Arduino będzie można podłączać różne płytki z serii MKR, które posiadają wbudowane peryferia umożliwiające bezprzewodową komunikację. Zależnie od wersji płytki może to być łączność przez WiFi, GSM lub np. LoRa. W tym wpisie skupimy się na MKR WiFi 1010.
Przygodę z chmurą Arduino zaczynamy od rejestracji konta na stronie Arduino Create. Po zalogowaniu, przechodzimy na stronę główną, która będzie zawierała dostępne dla nas opcje.
Strona startowa Arduino Create
W pierwszej kolejności powinniśmy skorzystać z menadżera urządzeń (Device Manager), który krok po kroku przeprowadzi nas przez proces dodawania płytki Arduino. W ten sposób, w przyszłości będziemy mogli łatwo zarządzać własnymi płytkami podłączonymi do chmury.
Konfiguracja Arduino IoT Cloud - urządzenia
Po dodaniu płytki możemy przejść do konfiguracji chmury. W tym celu wybieramy z panelu opcję Arduino IoT Cloud, a następnie przechodzimy do listy "rzeczy" (Things). Obiekty te reprezentują nasze urządzenia podłączone do chmury. Każda "rzecz" ma przypisane parametry, które odpowiadają czujnikom oraz elementom wykonawczym.
Początek kreatora nowego urządzenia
Konfiguracja Arduino IoT Cloud - peryferia
W kolejnym kroku zostaniemy poproszeni o uzupełnienie parametrów (Property), które będą dostępne w programie. Zmienne te reprezentują dane takie jak temperatura, stan czujnika otwarcia drzwi, czy stan elementów wykonawczych podłączonych do płytki.
Na poniższym zrzucie widoczny jest przykład z trzema parametrami:
DoorOpenSensor – informacja binarna z czujnika otwarcia drzwi (tylko do odczytu),
LightRemote – zdalny przełącznik światła, którego stan możliwy jest do zmiany zarówno po stronie chmury jak i programu wgranego na Arduino,
RoomTemperature – temperatura przesyłana co 5 sekund jako zmienna typu float.
Przygotowane 3 parametry (Property)
Wada 1: ograniczona liczba urządzeń
W tym miejscu boleśnie przekonujemy się o pierwszych ograniczeniach chmury Arduino. Okazuje się, że darmowy pakiet pozwala na podłączenie tylko 1 płytki z maksymalnie 5 peryferiami. Chmura jest dopiero w fazie testów, więc płatne pakiety (które zdejmą te limity) nie są jeszcze nawet dostępne.
Programowanie Arduino
Po zapisaniu konfiguracji peryferiów możemy przejść do webowego edytora Arduino IDE. Edytor ten był dostępny już od dawna i można było wykorzystywać go do programowania "zwykłych" płytek Arduino. Tym razem jego użyteczność jest znacznie większa, ponieważ za jego pomocą można bardzo łatwo przygotować kod na płytkę MKR, który będzie od razu skonfigurowany do pracy z chmurą.
Do działania edytora potrzebna jest wtyczka Arduino Create Agent.
Ostrzeżenie wynikające z braku aktywnej wtyczki Arduino Create Agent
Po instalacji wtyczki i przeładowaniu środowiska można podłączyć płytkę do komputera. Jeśli nasze urządzenie zostanie poprawnie wykryte, to uzyskamy dostęp do szkicu składającego się z 4 plików:
kod programu znany z tradycyjnych szkiców Arduino,
dokumentacja, którą możemy uzupełnić np. o listę elementów potrzebnych w projekcie,
plik nagłówkowy .h zawierający definicje parametrów i funkcji do nich przypisanych,
plik Secret zawierający hasło do sieci WiFi.
Zawartość pliku Secret nie jest przekazywana podczas udostępniania projektów!
Zanim przejdziemy do modyfikacji programu, uzupełniamy dane na temat sieci, do której podłączymy płytkę Arduino MKR WiFi 1010:
Zakładka Secret z danymi do sieci WiFi
Teraz możemy testowo zaprogramować Arduino i sprawdzić czy komunikacja działa poprawnie. Proces programowania może trwać trochę dłużej (względem zwykłych płytek Arduino z układami AVR).
Proces wgrywania programu do płytki MKR WiFi 10101
Wiedząc, że płytkę da się zaprogramować, możemy przystąpić do napisania własnego programu. Celem przykładowego kodu będzie utworzenie namiastki centrali automatycznego budynku, w której będziemy odczytywać temperaturę w pomieszczeniu, sprawdzać stan czujnika otwarcia drzwi i zdalnie sterować oświetleniem.
Modyfikację programu możemy rozpocząć od dodania biblioteki czujnika temperatury DS18B20. W tym celu do pliku z rozszerzeniem .h dopisujemy na początku fragment, który doda bibliotekę do programu i utworzy dwa obiekty reprezentujące magistralę OneWire i czujnik Dallas.
Biblioteka DS18B20 jest domyślnie dostępna. Inne biblioteki można znaleźć w repozytorium.
Tablice znaków SSID oraz PASS uzupełniają się automatycznie na podstawie pliku Secret. THING_ID to numer identyfikacyjny danej płytki uzyskany z Arduino IoT Cloud.
Następnie w głównym pliku źródłowym piszemy właściwy program, który wykorzysta komunikację z chmurą. W tym przypadku przesyłamy informacje z czujników do chmury i dodajemy kod, który będzie sterował diodą podłączoną do Arduino. Pomiar temperatury wykonywany jest w poniższym przykładzie cały czas, ale do chmury przesyłany będzie co 5 s (zgodnie z wcześniejszą konfiguracją).
Warto zwrócić uwagę na sposób obsługi diody - użyto tu automatycznie wygenerowanej funkcji, która nazywa się onLightRemoteChange(). Funkcja ta będzie wyzwalana za każdym razem, gdy użytkownik zmieni stan danego elementu za pomocą panelu w chmurze.
Po wgraniu możemy sprawdzić informacje przesyłane do monitora portu szeregowego. Jeżeli wszystko przebiegło poprawnie przechodzimy do panelu w aplikacji chmury i sprawdzamy stan parametrów:
Podgląd informacji przesyłanych przez UART
Podgląd panelu chmury
Wartości parametrów w panelu zmieniają się na żywo, nie ma potrzeby odświeżania strony. Informacje są aktualizowane zgodnie z naszymi wcześniejszymi ustawieniami, czyli co określony czas lub, gdy nastąpi zmiana stanu danego czujnika.
Przykładowe działanie Arduino IoT Cloud
Wada 2: ograniczona historia
Tutaj dochodzimy do największego ograniczenia darmowej wersji chmury Arduino. Dane w systemie trzymane są tylko przez 48 godzin... Nie ma więc żadnej możliwości, aby np. sprawdzić informacje o temperaturze z całego tygodnia.
Wada 3: mało rozbudowane panele
Panele generowane przez chmurę są obecnie bardzo ubogie. Nie ma zbyt wielu opcji konfiguracji, a te które są i tak nie pozwalają na zbyt duże zmiany. Dane trzymane są przez 48 godzin, a i tak nie mamy do nich tutaj żądnego dostępu i nie możemy stworzyć wykresu np. z ostatnich 12 godzin.
Czy taka chmura ma sens?
Obecna wersja chmury Arduino znacznie odbiega od konkurencyjnych rozwiązań. Oczywiście trzeba brać pod uwagę, że to wersja beta i wiele się na pewno jeszcze zmieni. Pozostaje mieć nadzieję, że twórcy nadrobią szybko braki i dopracują swoje rozwiązanie. Dużo na pewno będzie również zależało od cennika bardziej rozbudowanej wersji Arduino IoT Cloud.
Znacie graficzne generatory kodu do Arduino? Najwięcej osób kojarzy na pewno edytory, które pozwalają programować w Scratchu. Wybór jest... Czytaj dalej »
Na plus na pewno trzeba zaliczyć sam sposób pracy z chmurą. Użytkownik nie musi przejmować się łącznością Arduino z Internetem oraz konfiguracją połączenia. Wystarczy wyklikać odpowiednie opcje konfiguracyjne i gotowe - można się już cieszyć darmową chmurą. Arduino IoT Cloud sprawdzi się teraz dobrze głównie w zastosowaniach edukacyjnych, ponieważ wykorzystując te mechanizmy, dosłownie każdy początkujący będzie mógł szybko uruchomić swoje pierwsze urządzenie IoT.
Mieliście okazję testować już chmurę Arduino? Jakie są Wasze wrażenia?
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
To nie koniec, sprawdź również
Przeczytaj powiązane artykuły oraz aktualnie popularne wpisy lub losuj inny artykuł »
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...