Sposoby szybkiego prototypowania urządzeń Internetu rzeczy za pomocą zestawu badawczego węzła IoT B-L4S5I-IOT01A

Przez: Jacob Beningo

Przekazane przez: Północnoamerykańscy redaktorzy DigiKey

Ponieważ urządzenia zyskują coraz lepszą łączność z Internetem rzeczy (IoT), deweloperzy zaczynający od zera zdają sobie sprawę, że sprawy nie są tak proste, jak oczekiwali, zwłaszcza jeśli harmonogramy są napięte, a koszty ograniczone. Okazuje się, że projektowanie i budowa urządzeń Internetu rzeczy nadal wymaga szerokiego zakresu umiejętności - od wyboru zaufanego, bezpiecznego środowiska programistycznego z dobrym wsparciem, po wybór kompatybilnego oprogramowania i sprzętu.

Deweloperzy coraz bardziej potrzebują łatwego dostępu do bezpiecznych rozwiązań, bibliotek łączności w chmurze, systemu operacyjnego czasu rzeczywistego (RTOS) oraz kompatybilnej platformy rozwojowej i sprzętowej z łatwą możliwością integracji czujników, a wszystko to w jednym skalowalnym projekcie.

W niniejszym artykule omówiono, w jaki sposób projektanci Internetu rzeczy mogą szybko prototypować swoje produkty za pomocą zestawu badawczego węzła IoT B-L4S5I-IOT01A firmy STMicroelectronics. Zbadano też możliwości wbudowanego mikrokontrolera, niezliczonej liczby czujników i opcji konfiguracyjnych oraz sposób łączenia się z Amazon Web Services (AWS) i szybkiego rozpoczęcia budowy prototypu i produktu końcowego.

Wprowadzenie do zestawu badawczego węzła IoT B-L4S5I-IOT01A

Płytka badawcza B-L4S5I-IOT01A jest uniwersalną płytką rozwojową, której można użyć do prototypowania prawie dowolnego wbudowanego urządzenia IoT (ilustracja 1). Moc obliczeniowa, liczba czujników i możliwości rozbudowy płytki są wystarczające, aby rozbudzić wyobraźnię każdego dewelopera układów wbudowanych możliwymi do zbudowania dzięki niej rozwiązaniami. Płytka B-L4S5I-IOT01A bazuje na procesorze ARM® Cortex®-M4 STM32L4S5VIT6 małej mocy działającym z częstotliwością 120MHz, który obsługiwany jest przez 2MB pamięci programowej flash i 640KB pamięci SRAM. Procesor STM32L4S5VIT6 posiada również charakterystykę idealnie dopasowaną do zastosowań Internetu rzeczy:

  • Jednostka zmiennoprzecinkowa (FPU)
  • 14-kanałowy kontroler dostępu do pamięci dynamicznej (DMA)
  • Akcelerator sprzętowy szyfrowania AES i HASH
  • Zaawansowane funkcje graficzne
  • 233 punkty w teście porównawczym zasilania ULPMark CP

Wygląd płytki B-L4S5I-IOT01A firmy Texas Instruments opartej na procesorze ARM Cortex-M4Ilustracja 1: płytka B-L4S5I-IOT01A bazuje na procesorze ARM Cortex-M4 działającym z częstotliwością do 120MHz i zawiera 2MB pamięci flash, 640KB pamięci RAM, łączność bezprzewodową i liczne czujniki. (Źródło ilustracji: STMicroelectronics)

Sama moc przetwarzania i sprawność energetyczna nie tworzą doskonałej platformy do szybkiego prototypowania. Płytka badawcza jest również wyposażona w łączność bezprzewodową w postaci modułu Wi-Fi zgodnego ze standardem 802.11b/g/n (ISM43362-M3G-L44) firmy Inventek Systems oraz moduł Bluetooth 4.1 firmy STMicroelectronics, a także szereg czujników. Należą do nich dwa cyfrowe mikrofony dookólne MP34DT01, jeden pojemnościowy czujnik cyfrowy wilgotności względnej i temperatury HTS221 oraz jeden wysokowydajny magnetometr trójosiowy LIS3MDL.

Powyższa lista nie jest wyczerpująca: bardziej szczegółowy opis można znaleźć tutaj. Następnie ważne jest, aby zbadać dostępne narzędzia i stosy oprogramowania, aby przyspieszyć rozwój.

Ekosystem STM32

To czy personel jest w stanie stworzyć szybki prototyp, czy nie, zależy od ekosystemu każdej płytki rozwojowej. Na przykład, aby stworzyć prototyp urządzenia IoT z wykorzystaniem płytki B-L4S5I-IOT01A, deweloperzy potrzebują dostępu do kompilatora, zintegrowanego środowiska deweloperskiego (IDE), bibliotek sterowników, narzędzi konfiguracyjnych i oprogramowania do aktualizacji oprogramowania układowego. Płytka badawcza B-L4S5I-IOT01A spełnia wszystkie te wymagania.

Wielu deweloperów w swoim środowisku rozwojowym używa platformy Eclipse i kompilatora języka C GNU. Firma STMicroelectronics zapewnia bezpłatne narzędzie, STM32CubeIDE (ilustracja 2), umożliwiając deweloperom pisanie i budowanie własnych projektów oprogramowania. Narzędzie STM32CubeIDE umożliwia wieloaspektowy dostęp do środowiska rozwojowego, narzędzia konfiguracyjnego mikrokontrolera i środowiska debugowania.

Wygląd narzędzia STM32CubeIDE IDE do tworzenia, konfigurowania i zarządzania wbudowanym oprogramowaniem Internetu rzeczy (kliknij, aby powiększyć)Ilustracja 2: narzędzie STM32CubeIDE zapewnia deweloperom zintegrowane środowisko deweloperskie (IDE) do tworzenia, konfigurowania i zarządzania wbudowanym oprogramowaniem urządzeń Internetu rzeczy (IoT). (Źródło ilustracji: Beningo Embedded Group)

Narzędzie STM32CubeIDE nie tylko zapewnia metodę tworzenia, budowania i zarządzania projektami oprogramowania, ale także posiada interfejs do narzędzia STM32CubeMx. STM32CubeMx to narzędzie do konfiguracji mikrokontrolerów, które umożliwia deweloperom konfigurowanie drzewa zegarów, urządzeń peryferyjnych, czujników i oprogramowania pośredniczącego. Deweloperzy konfigurują ustawienia, a następnie łańcuch narzędzi generuje sterowniki i pliki konfiguracyjne, co znacznie skraca czas rozwoju i pomaga deweloperom skoncentrować się na kodzie aplikacji, a nie na standardowym kodzie infrastruktury.

Poza konfiguracją i wdrażaniem bazy kodu, ekosystem STM32 zawiera kilka przydatnych narzędzi dla innowacyjnych deweloperów. Na przykład deweloperzy, którzy chcą wykorzystać uczenie maszynowe w swoich aplikacjach, mogą wykorzystać rozszerzenie X-CUBE-AI STM32Cube.AI, które zapewnia zespołom usprawnioną platformę do konwersji, walidacji i uruchamiania wnioskowania na układach STM32. Deweloperzy mogą na przykład trenować model za pomocą platformy TensorFlow Lite, a następnie przekonwertować model w zaledwie kilka minut na kod C, który działa na mikrokontrolerze. Ponadto dostępne są pakiety rozszerzeń z gotowym do uruchomienia oprogramowaniem, które obejmują:

Budując każde urządzenie Internetu, należy mieć na względzie kwestie bezpieczeństwa, nawet w fazie szybkiego prototypowania. Nieustanne ataki, przypadki naruszenia bezpieczeństwa oraz wykorzystania danych biznesowych i klienckich są powszechne we współczesnej sieci Web. Dlatego każda platforma do szybkiego prototypowania powinna mieć możliwość efektywnego skalowania do systemu produkcyjnego. Aby dać deweloperom tę możliwość, płytka badawcza może wykorzystać stosy oprogramowania do bezpiecznej aktualizacji oprogramowania układowego i bezpiecznego uruchamiania (SBSFU) firmy STMicroelectronics. Funkcja SBSFU jest dostępna w pakiecie funkcji X-CUBE-SBSFU, który zapewnia:

  • Usługi aparatu zaufanego (RoT)
  • Bezpieczne usługi zarządzania kluczami
  • Schematy kryptograficzne
  • Usługi bezpiecznej aktualizacji oprogramowania układowego

Bogaty ekosystem zbudowany wokół płytki badawczej B-L4S5I-IOT01A zapewnia dostęp do wielu pakietów funkcji i narzędzi, które pomagają deweloperom szybko rozpocząć pracę. Wielu deweloperów Internetu rzeczy (IoT) interesuje się pakietem X-CUBE-AWS, który zapewnia wszystko, co niezbędne do łączenia się z chmurą podczas korzystania z usług AWS. Przyjrzyjmy się, jak zrobiłby to deweloper.

Łączenie się z chmurą

Aby rozpocząć pracę z chmurą, deweloper musi pobrać X-CUBE-AWS. Ten pakiet oprogramowania jest dostarczany jako plik spakowany (zip) z kilkoma projektami przeznaczonymi do uruchamiania na B-L4S5I-IOT01A, takimi jak:

  • Bootloader_KMS
  • Bootloader_STSAFE
  • Cloud

Projekty te znajdują się w następującej lokalizacji:

Projects/B-L4S5I-IOT01A/Applications/

Natomiast projekt chmury AWS znajduje się tutaj:

Cloud/aws_demos

Projekt chmury jest dostępny dla środowiska STM32Cube IDE, Keil oraz IAR. Oczywiście deweloper może przenieść je na inne zintegrowane środowisko deweloperskie (IDE), ale te trzy są powszechnie używane w branży.

Deweloper nie musi zastanawiać się, jak samodzielnie uruchomić projekt. Istnieje kilka cennych dokumentów, które mogą pomóc w szybkim rozpoczęciu pracy. Po pierwsze, w głównym katalogu projektu znajduje się plik Release_Notes.html. Ten plik zawiera ogólne informacje o projekcie wraz z ograniczeniami i cennymi informacjami referencyjnymi.

Oprócz tego mamy przewodnik pierwszych kroków który opisuje, jak połączyć się z usługą AWS za pomocą projektu. Ten dokument opisuje, jak połączyć się z usługą AWS oraz zawiera informacje o stosie i oprogramowaniu (ilustracja 3). Ten dokument opisuje również szczegółowo stosy oprogramowania, które mogą pomóc deweloperowi zrozumieć sposób organizacji i zmiany konieczne do połączenia urządzenia z chmurą.

Diagram pakietu X-CUBE-AWS firmy STMicroelectronics zawierającego oprogramowanie układowe i przykłady aplikacjiIlustracja 3: pakiet X-CUBE-AWS zawiera oprogramowanie układowe i przykłady aplikacji niezbędne do połączenia z usługą AWS i opracowania produktu Internetu rzeczy zdolnego do łączenia się z usługą AWS. (Źródło ilustracji: STMicroelectronics)

Najłatwiejszym sposobem połączenia się z chmurą jest przejrzenie przewodnika pierwszych kroków (Getting Started) i skorzystanie z samouczka. Oprócz samouczka istnieje kilka dodatkowych źródeł referencyjnych, z których deweloperzy mogą skorzystać, aby zapoznać się z pakietem oprogramowania, w tym:

Zapoznając się z tymi dokumentami, deweloperzy mogą szybko rozpocząć pracę z aplikacją w chmurze, która może służyć jako podstawa ich własnej aplikacji urządzenia IoT.

Wskazówki i porady dotyczące korzystania z płytki badawczej B-L4S5I-IOT01A

Płytka badawcza B-L4S5I-IOT01A ma wiele funkcji i możliwości, które programiści mogą wykorzystać do szybkiego prototypowania swojego produktu wbudowanego. Poniżej podano kilka „wskazówek i porad”, o których powinni pamiętać deweloperzy, które mogą uprościć i przyspieszyć rozwój:

  • Wykorzystanie pełni możliwości pakietu X-CUBE-AWS do łatwego łączenia się z usługą AWS. Pakiet oprogramowania zawiera system FreeRTOS już przeniesiony na płytkę rozwojową; deweloperzy muszą jedynie udostępnić urządzenie, aby połączyć się z chmurą.
  • Uważnie przeczytaj dokumentację wprowadzającą. Dokumentacja opisuje czynności niezbędne do przeprowadzenia aktualizacji oprogramowania układowego i nawiązania połączenia z usługą AWS.
  • Eksperymentowanie z przykładowymi możliwościami aktualizacji bezprzewodowej (OTA). Potrzeba instalowania łatek i aktualizowania urządzeń IoT w terenie ma kluczowe znaczenie. Deweloperzy powinni być świadomi możliwości i wszelkich ograniczeń bezpiecznych aktualizacji oprogramowania układowego.
  • Aby uniknąć zaczynania od zera, można wykorzystać pakiety funkcji STMicroelectronic, które pomagają deweloperom w szybkim rozpoczęciu pracy nad możliwościami i funkcjonalnością urządzenia. Wspomniane pakiety funkcji pozwalają znacznie przyspieszyć proces rozwoju.
  • Poświęcenie czasu na zapoznanie się z dokumentacją STSAFE i zrozumienie, jak bezpieczne elementy pozwalają poprawić bezpieczeństwo urządzenia. Bezpieczeństwo musi być wbudowane w urządzenie od samego początku, więc wykonanie tego w fazie szybkiego prototypowania jest koniecznością.

Deweloperzy, którzy zastosują się do powyższych „wskazówek i porad”, przekonają się, że mogą zaoszczędzić sporo czasu i frustracji podczas prototypowania.

Podsumowanie

Tworzenie urządzenia połączonego z Internetem rzeczy (IoT) od podstaw wciąż niesie ze sobą wiele przeszkód i pułapek, które mogą opóźniać harmonogramy i prowadzić do przekroczenia kosztów. Aby uniknąć tych problemów, deweloperzy mogą przeprowadzić szybkie prototypowanie aplikacji połączonych z wykorzystaniem płytek badawczych B-L4S5I-IOT01A. Kompletne stosy oprogramowania, pakiety rozszerzeń i ekosystem firmy STMicroelectronics zapewniają deweloperom możliwość łatwej integracji oprogramowania i przyspieszenia wdrożenia. Płytka B-L4S5I-IOT01A jest również w pełni zdolna do obsługi funkcji nowoczesnych urządzeń, takich jak łączność z chmurą, bezpieczne uruchamianie oprogramowania układowego (OTA), a nawet uruchamianie podstawowych aplikacji uczenia maszynowego.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Informacje o autorze

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

Informacje o wydawcy

Północnoamerykańscy redaktorzy DigiKey