Internet of Things, zamiennie Internet Rzeczy lub skrótowo – IoT, jest jednym z najpopularniejszych tematów związanych z technologią w ostatnich latach. Sam termin “Internet of Things” został użyty po raz pierwszy w 1999 roku przez jednego z twórców technologii RFID – Kevina Ashtona. Ashton użył tego sformułowania do opisania koncepcji w której urządzenia są połączone z Internetem i zbierają dane z otoczenia.
Od tamtego momentu znaczenie terminu IoT nie uległo zmianie. Są to wszystkie urządzenia na świecie, które są podłączone do Internetu i wymieniają między sobą dane oraz nie wymagają do tego ingerencji człowieka.
Jak to działa?
Przykładowo domowy termostat podnosi temperaturę w domu, kiedy w pobliżu znajdzie się telefon jednego z mieszkańców – komunikacja między termostatem, a telefonem zachodzi automatycznie. Schemat działania Internetu Rzeczy opiera się na tym, że różne urządzenia zbierają dane z otoczenia poprzez sensory lub komunikację z beaconami (małymi nadajnikami) i przesyłają je przez Internet do analizy.
Przesłane dane (na przykład o pojawieniu się telefonu w okolicy) są centralnie – w centrum danych lub chmurze – analizowane – cloud computing. W wyniku analizy powstaje zestaw instrukcji (w naszym przykładzie jest to podniesienie temperatury) dla urządzenia, który jest przesyłany do urządzenia jako odpowiedź na zebrane dane. Część danych jest przetwarzanych jeszcze w urządzeniu – zanim zostaną wysłane do centrum danych – jest to tzw. edge-computing.
Internet of Things dzisiaj
IoT skierowane do indywidualnego konsumenta.
Urządzenia kierowane do gospodarstw domowych i pojedynczych użytkowników. Najbardziej popularnymi są urządzenia Smart Home – termostaty, roboty odkurzające, automatycznie sterowane światła, rolety i inne sprzęty związane z domem. Automatyzują one zarządzanie domem i przynoszą oszczędności prądu (np. inteligentny termostat) oraz czasu (roboty odkurzające, sterowanie roletami). Inną dużą grupą są tzw. wearables. To wszelkiego rodzaju urządzenia, które zakładamy na siebie – smartwatche, opaski fitness itd.
IoT w medycynie
Urządzenia stale połączone z internetem zyskały popularność również w medycynie. CGM – stały monitoring poziomu glukozy we krwi – ułatwia opiekę zdrowotną nad chorymi na cukrzycę pozwalając ostrzec ich o spadającym poziomie cukru, a w razie potrzeby zawiadomić odpowiednie służby o zagrożeniu zdrowia lub życia. Innym urządzeniem używanym w medycynie jest smart stetoskop – stetoskop, który przesyła dane do lekarza. Pozwala to na konsultacje z lekarzem w sytuacji, kiedy znajduje się on daleko od nas (częsta sytuacja w Australii).
Industrial IoT
Są to rozwiązania stosowane w szeroko pojętym przemyśle. Automatyzacja umożliwiona przez komunikację maszyn (M2M, machine-to-machine) jest często określana jako czwarta rewolucja przemysłowa lub też Przemysł 4.0. Najczęściej stosowane są przy liniach produkcyjnych w celu optymalizacji jej działania, a także po to, żeby zredukować zasoby ludzkie potrzebne do produkcji. Używane są głównie przy produkcji, ale także w transporcie, przykładowo tablice informujące o czasie przyjazdu autobusu, branży petrochemicznej – czujniki kontrolujące temperaturę i inne parametry podczas wydobycia i przetwarzania ropy naftowej – rolnictwie oraz energetyce.
Przyszłość IoT
Rozwój technologii 5G i stworzenie IPv6 pozwoli nam na połączenie ze sobą niemal nieograniczonej liczby urządzeń. Ponadto rozwój możliwości obliczeniowych urządzeń z których korzystamy, pozwoli przenieść przynajmniej część obliczeń z chmury do urządzenia, zostawiając w centrum danych tylko najbardziej wymagające algorytmy. Rozwój Internetu Rzeczy jest skierowany w kierunku tworzenia coraz bardziej kompleksowych systemów połączeń.
Przykładem takiego złożonego systemu może być smart city przyszłości. To miasto w którym wszystkie urządzenia komunikują się ze sobą. Nie są potrzebne sygnalizacje świetlne, ponieważ komunikacja między autonomicznymi samochodami zapewnia idealnie płynny ruch. Dzięki połączeniu klastrów energetycznych dostawy prądu są tańsze, a dostarczany prąd czystszy dzięki analizie chwilowej wydajności różnych źródeł prądu. Miejski monitoring automatycznie wykryje i poinformuje o potencjalnym zagrożeniu. Taka wymiana danych w strumieniach miasto-mieszkaniec, mieszkaniec-miasto, mieszkaniec-mieszkaniec i miasto-miasto znacznie ułatwi codzienne funkcjonowanie miasta.
Zwiększone możliwości tworzenia rozbudowanych połączeń odcisną swoje piętno też na rozwiązaniach smart home. Wyobraźmy sobie opaskę fitness, która po wykryciu snu wyśle informację o dostosowaniu temperatury w domu do termostatu. Moduł komunikacji ze smart city, który po otrzymaniu informacji o korkach obudzi nas 20 minut wcześniej, abyśmy zdążyli na ważne spotkanie, a po pobudce uruchomi ekspres do kawy. Telewizor, który dostosowuje głośność do poziomu hałasu tła. To możliwy kierunek rozwoju inteligentnych domów.
Coraz bardziej kompleksowe połączenia w fabrykach spowodują, że proces produkcji będzie bardziej energooszczędny, tańszy i bardziej ekologiczny. W szpitalach – pomogą szybciej reagować na zagrożenie zdrowia i życia, a także spowodować, że operacje będą łatwiejsze dla chirurgów i bezpieczniejsze dla pacjentów (np. poprzez połączenie z okularami rozszerzonej rzeczywistości). Logistyka będzie powodowała mniejsze zanieczyszczenia powietrza w miastach dzięki optymalizacji. Te i inne rozwiązania będą możliwe dzięki rozwojowi Internetu Rzeczy.
Jak możemy pomóc?
Akanza może pochwalić się bogatym doświadczeniem w zakresie rozwiązań IoT. Zrealizowane przez nas wdrożenia to na przykład beaconapps.io – system zarządzania siecią IoT złożoną z beaconów, czy Promodetektor – aplikacja, która wykrywa promocje w sklepie na podstawie rozmieszczonych w nim beaconów.
Ponadto cały czas pracujemy nad projektami związanymi z IoT. Wspólnie wdrożymy Twój pomysł związany z IoT.
React-native doctor to nowa funkcja diagnostyczna aplikacji React Native, która skanuje i automatycznie naprawia błędy związane ze środowiskiem deweloperskim.
Działanie
Polecenie doctor wspiera obecnie większość oprogramowania i bibliotek, na których polega React Native, takich jak Android SDK, Xcode czy CocoaPods. Po uruchomieniu polecenia, narzędzie zeskanuje naszą aplikację w poszukiwaniu błędów związanych ze środowiskiem deweloperskim i automatycznie je naprawi. W przypadku, gdy nie będzie w stanie tego zrobić, wyświetli stosowną informację w konsoli, wraz z krokami które należy podjąć oraz poradami (linkami), gdzie możemy szukać informacji o problemie.
Użycie
Aby wypróbować narzędzie, musimy posiadać aplikację React Native w wersji min. 0.62, istnieje jednak możliwość doinstalowania go do starszych wersji framework’a, używając polecenia:
npx @react-native-community/cli doctor
Wspierane funkcje
Doctor obecnie wspiera diagnostykę poniższych narzędzi i funkcji:
Node.js (>= 8.3)
yarn (>= 1.10)
npm (>= 4)
Watchman (>= 4), używany do obserwowania zmian w systemie plików.
Dodatkowo, jeśli chodzi o środowisko deweloperskie Android:
Android Studio to narzędzie umożliwiające w bardzo produktywny sposób tworzenie aplikacji dla systemu Android. Posiada solidne narzędzia do edycji kodu, debugowania i profilowania wydajności. Inną przydatną funkcjonalnością jest tworzenie interfejsu użytkownika w sposób graficzny z użyciem metody drag&drop. Jednak nawet tak zaawansowane i rozbudowane narzędzie może być przystosowane do naszych potrzeb w większym stopniu, odpowiadający naszym oczekiwaniom i wspierający naszą produktywność.
Co sprawia, że jesteśmy bardziej produktywni? Każdy programista może mieć różne odpowiedzi na to pytanie. Najczęściej chodzi jednak o możliwość pisania większej liczby wierszy za pomocą kilku klawiszy czy bardziej wydajne debugowanie i profilowanie kodu. Lepsze zrozumienie IDE, w którym pracujemy, może znacząco zwiększyć produktywność. W Android Studio mamy dostęp do pokaźnej ilości wtyczek usprawniających naszą pracę.
Konfiguracja
Aby włączyć menu wtyczek, w ustawieniach Android Studio wybieramy sekcję Plugins. Mamy możliwość instalacji wtyczek z różnych źródeł, np. ze zdalnych repozytoriów czy bezpośrednio z dysku.
Przykładowe narzędzia
MVP Generator
Umożliwia generowanie kodu MVP na Androida. Całość jest konfigurowalna, możemy dodać dodatkowe moduły w zależności od naszych preferencji.
Android Selectors Generator
Ta wtyczka Android Studio automatycznie generuje graficzne selektory z odpowiednio nazwanych zasobów Androida.
Material Theme UI EAP
Android studio ma dwa dostępne motywy – Domyślny i Dracula. Gdy zainstalujesz tę wtyczkę, możesz użyć motywu odpowiadającego standardom Material Design.
Android DPI Calculator
Kalkulator DPI pozwala obliczyć różne rozmiary we wszystkich dostępnych i domyślnych gęstościach pikseli na platformie Android, tj. xxxhdpi, xxhdpi, xhdpi, hdpi, mdpi, ldpi i tvdpi.
Zużycie zasobów Androida
Ta wtyczka automatycznie zlicza zużycie zasobów i pokazuje je w lewym pasku każdej linii w twoim Android Studio. Okazuje się przydatna, jeśli chcesz pozbyć się zasobów, które nie są już używane w twoim projekcie.
AndroidLocalizationer
Wtyczka pomaga ci przetłumaczyć ciągi znaków użytych w aplikacji na inne języki. Zainstaluj ją, a następnie kliknij prawym przyciskiem myszy plik zasobów ciągu, zaznacz „Konwertuj na inne języki” i wybierz języki, które chcesz.
Android Wifi ADB
Android Wifi ADB pomaga instalować, uruchamiać i debugować aplikacje dla Androida za pośrednictwem Wi-Fi. Czas pozbyć się noszenia kabla USB.
Rozbudowana lista ciekawych i użytecznych wtyczek jest dostępna tutaj.