Opracowywanie urządzeń IoT
W tym omówieniu przedstawiono kluczowe pojęcia związane z opracowywaniem urządzeń łączących się z typowym rozwiązaniem usługi Azure IoT. Każda sekcja zawiera linki do zawartości, która zawiera szczegółowe informacje i wskazówki.
Na poniższym diagramie przedstawiono ogólny widok składników w typowym rozwiązaniu IoT. Ten artykuł koncentruje się na urządzeniach i bramach pokazanych na diagramie.
W usłudze Azure IoT deweloper urządzenia pisze kod do uruchomienia na urządzeniach w rozwiązaniu. Ten kod zazwyczaj:
- Ustanawia bezpieczne połączenie z punktem końcowym w chmurze.
- Wysyła dane telemetryczne zebrane z dołączonych czujników do chmury.
- Zarządza stanem urządzenia i synchronizuje ten stan z chmurą.
- Odpowiada na polecenia wysyłane z chmury.
- Umożliwia instalację aktualizacji oprogramowania z chmury.
- Umożliwia urządzeniu zachowanie działania podczas odłączania się od chmury.
Typy urządzeń
Urządzenia IoT można rozdzielić na dwie szerokie kategorie, mikrokontrolery (MCU) i mikroprocesory (MPU):
- Jednostki MCU są tańsze i prostsze w obsłudze niż jednostki MPU.
- Jednostka MCU zawiera wiele funkcji, takich jak pamięć, interfejsy i we/wy na samym mikroukładzie. Funkcja MPU uzyskuje dostęp do tych funkcji z składników w układach pomocniczych.
- McU często używa systemu operacyjnego w czasie rzeczywistym (RTOS) lub działa bez systemu operacyjnego (bez systemu operacyjnego) i zapewnia odpowiedzi w czasie rzeczywistym i wysoce deterministyczne reakcje na zdarzenia zewnętrzne. Jednostki MPU zazwyczaj uruchamiają system operacyjny ogólnego przeznaczenia, taki jak Windows, Linux lub macOS, który zapewnia nieokreśloną odpowiedź w czasie rzeczywistym. Zwykle nie ma gwarancji, kiedy zadanie zostanie ukończone.
Przykłady wyspecjalizowanego sprzętu i systemów operacyjnych obejmują:
Windows for IoT to osadzona wersja systemu Windows dla jednostek MPU z łącznością w chmurze, która umożliwia tworzenie bezpiecznych urządzeń z łatwą aprowizowaniem i zarządzaniem.
Eclipse ThreadX to system operacyjny w czasie rzeczywistym dla urządzeń IoT i brzegowych obsługiwanych przez jednostki MCU. Eclipse ThreadX jest przeznaczony do obsługi wysoce ograniczonych urządzeń, które są zasilane z baterii i mają mniej niż 64 KB pamięci flash.
Azure Sphere to bezpieczna platforma aplikacji wysokiego poziomu z wbudowanymi funkcjami komunikacji i zabezpieczeń dla urządzeń połączonych z Internetem. Obejmuje ona zabezpieczony, połączony, crossover MCU, niestandardowy system operacyjny oparty na systemie Linux wysokiego poziomu oraz usługę zabezpieczeń opartą na chmurze, która zapewnia ciągłe, odnawialne zabezpieczenia.
Typy pierwotne
Urządzenie Usługi Azure IoT może korzystać z następujących elementów pierwotnych do interakcji z chmurą:
- Komunikaty z urządzenia do chmury w celu wysyłania danych telemetrycznych szeregów czasowych do chmury. Na przykład dane temperatury zebrane z czujnika dołączonego do urządzenia.
- Przekazywanie plików dla plików multimedialnych, takich jak przechwycone obrazy i wideo. Sporadycznie połączone urządzenia mogą wysyłać partie telemetrii. Urządzenia mogą kompresować przekazywanie, aby zaoszczędzić przepustowość.
- Bliźniacze reprezentacje urządzeń do udostępniania i synchronizowania danych stanu z chmurą. Na przykład urządzenie może użyć bliźniaczej reprezentacji urządzenia, aby zgłosić bieżący stan zaworu, który kontroluje w chmurze, i odbierać żądaną temperaturę docelową z chmury.
- Cyfrowe reprezentacje bliźniacze reprezentujące urządzenie w świecie cyfrowym. Na przykład cyfrowa reprezentacja bliźniaca może reprezentować fizyczną lokalizację urządzenia, jego możliwości i relacje z innymi urządzeniami.
- Metody bezpośrednie do odbierania poleceń z chmury. Metoda bezpośrednia może mieć parametry i zwrócić odpowiedź. Na przykład chmura może wywołać metodę bezpośrednią, aby zażądać ponownego uruchomienia urządzenia w ciągu 30 sekund.
- Komunikaty z chmury do urządzenia w celu odbierania jednokierunkowych powiadomień z chmury. Na przykład powiadomienie, że aktualizacja jest gotowa do pobrania.
Aby dowiedzieć się więcej, zobacz Wskazówki dotyczące komunikacji urządzenie-chmura i Wskazówki dotyczące komunikacji z chmurą na urządzenie.
Zestawy SDK urządzeń
Zestawy SDK urządzeń zapewniają abstrakcje wysokiego poziomu, które umożliwiają korzystanie z elementów pierwotnych bez znajomości podstawowych protokołów komunikacyjnych. Zestawy SDK urządzeń obsługują również szczegóły nawiązywania bezpiecznego połączenia z chmurą i uwierzytelniania urządzenia.
W przypadku urządzeń MPU zestawy SDK urządzeń są dostępne dla następujących języków:
W przypadku urządzeń MCU zobacz:
Przykłady i wskazówki
Wszystkie zestawy SDK urządzeń zawierają przykłady pokazujące, jak używać zestawu SDK do łączenia się z chmurą, wysyłania danych telemetrycznych i używania innych elementów pierwotnych.
Witryna tworzenia urządzeń IoT zawiera samouczki i przewodniki z instrukcjami, które pokazują, jak zaimplementować kod dla różnych typów urządzeń i scenariuszy.
Więcej przykładów można znaleźć w przykładowej przeglądarce kodu.
Aby dowiedzieć się więcej na temat implementowania automatycznych ponownych połączeń z punktami końcowymi, zobacz Zarządzanie ponownymi połączeniami urządzeń w celu tworzenia odpornych aplikacji.
Programowanie urządzeń bez zestawu SDK urządzenia
Mimo że zaleca się korzystanie z jednego z zestawów SDK urządzeń, mogą wystąpić scenariusze, w których nie chcesz. W tych scenariuszach kod urządzenia musi bezpośrednio używać jednego z protokołów komunikacyjnych obsługiwanych przez usługę IoT Hub i usługę Device Provisioning Service (DPS).
Aby uzyskać więcej informacji, zobacz:
- Bezpośrednie używanie protokołu MQTT (jako urządzenie)
- Używanie protokołu AMQP bezpośrednio (jako urządzenie)
Modelowanie urządzeń
Usługa IoT Plug and Play umożliwia konstruktorom rozwiązań integrację urządzeń IoT z ich rozwiązaniami bez konieczności ręcznej konfiguracji. Podstawowym elementem usługi IoT Plug and Play jest model urządzenia używany przez urządzenie do anonsowania jego możliwości w aplikacji IoT Plug and Play, takiej jak IoT Central. Ten model jest ustrukturyzowany jako zestaw elementów, które definiują:
- Właściwości reprezentujące stan tylko do odczytu lub zapisywalny urządzenia lub innej jednostki. Na przykład numer seryjny urządzenia może być właściwością tylko do odczytu, a temperatura docelowa termostatu może być właściwością zapisywalną.
- Dane telemetryczne , które są danymi emitowane przez urządzenie, niezależnie od tego, czy dane są zwykłym strumieniem odczytów czujników, okazjonalnym błędem, czy komunikatem informacyjnym.
- Polecenia opisujące funkcję lub operację, którą można wykonać na urządzeniu. Na przykład polecenie może ponownie uruchomić bramę lub zrobić zdjęcie przy użyciu aparatu zdalnego.
Te elementy można grupować w interfejsach, aby używać ich ponownie w różnych modelach, aby ułatwić współpracę i przyspieszyć programowanie.
Model jest określany przy użyciu języka dtDL (Digital Twins Definition Language).
Korzystanie z technologii IoT Plug and Play, modelowania i języka DTDL jest opcjonalne. Elementy pierwotne urządzeń IoT można używać bez używania technologii IoT Plug and Play lub modelowania. Usługa Azure Digital Twins używa również modeli DTDL do tworzenia grafów bliźniaczych opartych na modelach cyfrowych środowisk, takich jak budynki lub fabryki.
Jako deweloper urządzenia podczas implementowania urządzenia IoT Plug and Play istnieje zestaw konwencji, które należy przestrzegać. Te konwencje zapewniają standardowy sposób implementowania modelu urządzenia w kodzie przy użyciu elementów pierwotnych dostępnych w zestawach SDK urządzeń.
Aby dowiedzieć się więcej, zobacz:
Kod konteneryzowanego urządzenia
Jeśli używasz kontenerów, takich jak w rozwiązaniu Docker, aby uruchomić kod urządzenia, możesz wdrożyć kod na urządzeniach przy użyciu funkcji infrastruktury kontenerów. Kontenery umożliwiają również zdefiniowanie środowiska uruchomieniowego dla kodu ze wszystkimi zainstalowanymi wymaganymi wersjami biblioteki i pakietów. Kontenery ułatwiają wdrażanie aktualizacji i zarządzanie cyklem życia urządzeń IoT.
Usługa Azure IoT Edge uruchamia kod urządzenia w kontenerach. Usługa Azure IoT Edge umożliwia wdrażanie modułów kodu na urządzeniach. Aby dowiedzieć się więcej, zobacz Tworzenie własnych modułów usługi IoT Edge.
Napiwek
Usługa Azure IoT Edge umożliwia korzystanie z wielu scenariuszy. Oprócz uruchamiania kodu urządzenia IoT w kontenerach można używać usługi Azure IoT Edge do uruchamiania usług platformy Azure na urządzeniach i implementowania bram pól. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure IoT Edge?
Narzędzia programistyczne
W poniższej tabeli wymieniono niektóre z dostępnych narzędzi programistycznych IoT:
Narzędzie | opis |
---|---|
Azure IoT Hub (rozszerzenie programu VS Code) | To rozszerzenie programu VS Code umożliwia zarządzanie zasobami i urządzeniami usługi IoT Hub z poziomu programu VS Code. |
Eksplorator usługi Azure IoT | To międzyplatformowe narzędzie umożliwia zarządzanie zasobami i urządzeniami usługi IoT Hub z poziomu aplikacji klasycznej. |
Rozszerzenie usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure | To rozszerzenie interfejsu wiersza polecenia zawiera polecenia, takie jak az iot device simulate , az iot device c2d-message i az iot hub monitor-events , które ułatwiają testowanie interakcji z urządzeniami. |
Następne kroki
Po wyświetleniu przeglądu programowania urządzeń w rozwiązaniach Azure IoT niektóre sugerowane następne kroki obejmują: