Całościowe podejście do projektowania systemów IoT
| TechnikaOstatnie lata przyniosły niezwykle dynamiczny rozwój związany z dziedziną określaną Internetem Rzeczy (Internet of Things - IoT). Praktycznie każda branża przemysłu inwestuje aktualnie w takie rozwiązania, analitycy przewidują, że aż około 80% zastosowań dla aplikacji IoT będzie związana z rynkiem B2B.
Specyfiką aplikacji IoT jest potrzeba tworzenia ich przez interdyscyplinarne zespoły, w których skład wchodzą nie tylko elektronicy, ale też programiści zarówno embedded, jak i webowi oraz specjaliści od aplikacji mobilnych. Ważną rolę odgrywają również graficy komputerowi, mechanicy i designerzy.
Niniejszy artykuł stara się przedstawić całościowe spojrzenie na budowę rozwiązań IoT, w kontekście doświadczeń firmy Evatronix S.A., mając na celu uświadomienie inżynierom z branży elektroniki szerokiego spektrum tych rozwiązań.
Design i mechanika
Steve Jobs zapoczątkował erę, w której obudowa przestała być jedynie opakowaniem dla elektroniki. Kładł on nacisk na to, by to raczej elektronika została dostosowana do wymagań wyglądu obudowy, a nie odwrotnie. Nowoczesne wzornictwo, wodoszczelność, pyłoszczelność, odprowadzanie ciepła, zapewnienie stabilnej komunikacji bezprzewodowej powinny być uwzględniane już na wczesnych etapach projektu i wspólnie omawiane z projektantami elektroniki.
Evatronix stara się w sposób szczególny zapewnić, aby tworzone urządzenia miały swój unikalny charakter poprzez nowoczesne wzornictwo i ergonomię, zapewniając równocześnie pracę urządzenia w różnych warunkach.
Typowymi krokami postępowania są:
- stworzenie koncepcji produktu,
- wizualizacja komputerowa różnych wersji,
- produkcja prototypów w formie wydruków 3D,
- testowanie prototypów pod względem stawianych wymagań,
- udoskonalanie wybranego wariantu.
Projektowanie elektroniki
Wspólną cechą rozwiązań IoT, w odróżnieniu od standardowych urządzeń, jest zapewnienie możliwości komunikacji bezprzewodowej, jak również zasilanie bateryjne, niski pobór energii czy w końcu - niewielkie rozmiary urządzeń. Część analogowa łączy się z częścią cyfrową.
Istotnym elementem projektu są również anteny. Kompetencje firmy Evatronix w tej dziedzinie buduje zespół doświadczonych projektantów a także sieć ekspertów zewnętrznych. Dzięki temu możemy rozwiązywać najtrudniejsze zadania zlecone przez klientów.
Oprogramowanie
Nasze doświadczenia pokazują, że tworzenie oprogramowania stanowi ok. 70-80 procent nakładu czasu na wykonanie projektu z obszaru IoT. W skład prac programistycznych wchodzą nie tylko zadania dotyczące oprogramowania wbudowanego, zapewnienie komunikacji z otoczeniem czy cyfrowe przetwarzanie sygnałów, ale przede wszystkim programowanie w technologiach, które do tej pory nie były typowo związane z urządzeniami elektronicznymi. Chodzi tutaj przede wszystkim o programowanie aplikacji mobilnych i webowych.
Urządzenia z panelem dotykowym odchodzą powoli do lamusa, a cała konfiguracja i zarządzanie wykonywane są przez panel dotykowy znajdujący się w naszej kieszeni lub przez aplikację webową.
Jednak aplikacja webowa to nie tylko konfiguracja urządzenia i sprawdzanie jego bieżącego stanu, ale przede wszystkim zbieranie licznych danych, często od wielu urządzeń, z okresem pomiarowym zaczynającym się od kilku sekund, a następnie prezentowanie ich w postaci wykresów historycznych. Aplikacja webowa to też analiza danych, zarządzanie użytkownikami, zapewnienie powiadamiania SMS-em lub e-mailem.
I tutaj pojawia się wyzwanie, jak budować tego typu aplikacje, które nie są typową kalką aplikacji webowych. Nasze doświadczenie pokazuje, że warto wykorzystać stos technologii opartych na języku JavaScript oraz odpowiednie mechanizmy ułatwiające skalowalność, na przykład:
- serwer Mosca służy nam do zapewnienia komunikacji opartej na MQTT, natomiast RabbitMQ umożliwia budowanie stabilnych i skalowalnych rozwiązań,
- Mogoose pozwala nam na tworzenie efektywnych i eleganckich modeli danych,
- stos MEAN (MongoDB, ExpressJS, AngularJS oraz Node.js) daje nam możliwość budowania wydajnych, specjalizowanych aplikacji webowych.
Czasem język JavaScript stosujemy także wewnątrz rozwiązań embedded, gdy jest potrzeba użycia platformy linuksowej. Ten język można także wykorzystać w realizacji rozwiązaniach mobilnych, wykorzystując framework React Native. Główną zaletą jest możliwość wydajnego stosowania tego frameworku na wielu platformach.
Podobną cechę wieloplatformowości mają technologie bazujące na Xamarine czy Apache Cordova, jednak nie są one tak wydajne. W końcu istotnym elementem jest to, że ten sam język programowania jest obecny na wielu warstwach - w urządzeniu wbudowanym, aplikacji mobilnej, po stronie serwera oraz po stronie przeglądarki internetowej.
Wojciech Legierski
Evatronix S.A.