Od 50-70% rabatu na ebooki i audiobooki, ponad 12 tysięcy pozycji (w tym IT, programowanie, elektronika). Sprawdź listę tytułów »

3 wady Arduino IoT Cloud – czy taka wersja chmury ma sens?

3 wady Arduino IoT Cloud – czy taka wersja chmury ma sens?

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:

Arduino IoT Cloud – ruszyły testy nowej, darmowej chmury!
Arduino IoT Cloud – ruszyły testy nowej, darmowej chmury!

Hobbyści, pomimo głośnych premier, nie sięgali zbyt chętnie po nowe… 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ą.

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:

  1. kod programu znany z tradycyjnych szkiców Arduino,
  2. dokumentacja, którą możemy uzupełnić np. o listę elementów potrzebnych w projekcie,
  3. plik nagłówkowy .h zawierający definicje parametrów i funkcji do nich przypisanych,
  4. plik Secret zawierający hasło do sieci WiFi.

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.

Cały plik nagłówkowy może wyglądać w ten sposób:

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.

Cały kod przykładu wyglądał więc następująco:

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:

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.

Co warto wiedzieć o programowaniu Arduino w XOD?
Co warto wiedzieć o programowaniu Arduino w XOD?

Znacie graficzne generatory kodu do Arduino? Najwięcej osób kojarzy na… 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?

Autor: Piotr Adamczyk
Redakcja: Damian Szymański

arduino, chmura, IoT, mkr

Trwa ładowanie komentarzy...