Samouczek: łączenie zestawu ESPRESSIF ESP32-Azure IoT z usługą IoT Hub
Artykuł
W tym samouczku użyjesz oprogramowania pośredniczącego Usługi Azure IoT dla platformy FreeRTOS, aby połączyć zestaw ESPRESSIF ESP32-Azure IoT Kit (od tej pory zestaw DEVKit ESP32) do usługi Azure IoT.
Wykonasz następujące zadania:
Instalowanie zestawu osadzonych narzędzi programistycznych do programowania zestawu DEVKit ESP32
Tworzenie obrazu i go do zestawu deweloperskiego ESP32
Używanie interfejsu wiersza polecenia platformy Azure do tworzenia centrum Azure IoT hub, z którą nawiązuje połączenie ESP32 DevKit
Rejestrowanie urządzenia w centrum IoT za pomocą narzędzia Azure IoT Explorer, wyświetlanie właściwości urządzenia, wyświetlanie telemetrii urządzenia i wywoływanie poleceń bezpośrednich na urządzeniu
Aktywna subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Przygotowanie środowiska programistycznego
Instalowanie narzędzi
Aby skonfigurować środowisko projektowe, najpierw zainstaluj środowisko kompilacji ESPRESSIF ESP-IDF. Instalator zawiera wszystkie narzędzia wymagane do klonowania, kompilowania, flash i monitorowania urządzenia.
Aby zainstalować narzędzia ESP-IDF:
Pobierz i uruchom instalatora ESP-IDF w wersji 5.0 offline.
Gdy instalator wyświetli listę składników do zainstalowania, wybierz wszystkie składniki i ukończ instalację.
Klonowanie repozytorium
Sklonuj następujące repozytorium, aby pobrać cały przykładowy kod urządzenia, skrypty konfiguracji i dokumentację zestawu SDK. Jeśli wcześniej sklonujesz to repozytorium, nie musisz tego robić ponownie.
Aby sklonować repozytorium, uruchom następujące polecenie:
W usłudze git uruchom następujące polecenie w terminalu z uprawnieniami administratora:
git config --system core.longpaths true
Tworzenie składników chmury
Tworzenie centrum IoT
Interfejs wiersza polecenia platformy Azure umożliwia utworzenie centrum IoT Hub obsługującego zdarzenia i komunikaty dla urządzenia.
Aby utworzyć centrum IoT:
Uruchom aplikację interfejsu wiersza polecenia. Aby uruchomić polecenia interfejsu wiersza polecenia w pozostałej części tego przewodnika Szybki start, skopiuj składnię poleceń, wklej ją do aplikacji interfejsu wiersza polecenia, edytuj wartości zmiennych i naciśnij Enter.
Jeśli używasz usługi Cloud Shell, kliknij prawym przyciskiem myszy link dla usługi Cloud Shell i wybierz opcję otwarcia na nowej karcie.
Jeśli używasz interfejsu wiersza polecenia platformy Azure lokalnie, uruchom aplikację konsolową interfejsu wiersza polecenia i zaloguj się do interfejsu wiersza polecenia platformy Azure.
Uruchom polecenie az extension add , aby zainstalować lub uaktualnić rozszerzenie azure-iot do bieżącej wersji.
az extension add --upgrade --name azure-iot
Uruchom polecenie az group create, aby utworzyć grupę zasobów. Następujące polecenie tworzy grupę zasobów o nazwie MyResourceGroup w regionie centralus .
Uwaga
Opcjonalnie można ustawić alternatywny locationelement . Aby wyświetlić dostępne lokalizacje, uruchom polecenie az account list-locations.
az group create --name MyResourceGroup --location centralus
YourIotHubName. Zastąp ten symbol zastępczy w kodzie nazwą wybraną dla centrum IoT Hub. Nazwa centrum IoT musi być globalnie unikatowa na platformie Azure. Ten symbol zastępczy jest używany w pozostałej części tego przewodnika Szybki start do reprezentowania unikatowej nazwy centrum IoT.
Parametr --sku F1 tworzy centrum IoT w warstwie Bezpłatna. Koncentratory w warstwie Bezpłatna mają ograniczony zestaw funkcji i są używane do sprawdzania koncepcji aplikacji. Aby uzyskać więcej informacji na temat warstw, funkcji i cen usługi IoT Hub, zobacz Cennik usługi Azure IoT Hub.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
Po utworzeniu centrum IoT wyświetl dane wyjściowe JSON w konsoli i skopiuj hostName wartość do użycia w późniejszym kroku. Wartość hostName wygląda jak w poniższym przykładzie:
{Your IoT hub name}.azure-devices.net
Konfigurowanie eksploratora IoT
W pozostałej części tego przewodnika Szybki start użyjesz narzędzia IoT Explorer do zarejestrowania urządzenia w centrum IoT, aby wyświetlić właściwości i dane telemetryczne urządzenia oraz wysłać polecenia do urządzenia. W tej sekcji skonfigurujesz program IoT Explorer tak, aby łączył się z utworzonym centrum IoT Oraz odczytywał modele plug and play z repozytorium modelu publicznego.
Aby dodać połączenie z centrum IoT:
Zainstaluj narzędzie Azure IoT Explorer. To narzędzie to międzyplatformowe narzędzie do monitorowania zasobów usługi Azure IoT i zarządzania nimi.
Wklej parametry połączenia w polu Parametry połączenia.
Wybierz pozycję Zapisz.
Jeśli połączenie powiedzie się, eksplorator IoT zostanie przełączyny do widoku Urządzenia .
Aby dodać repozytorium modelu publicznego:
W eksploratorze IoT wybierz pozycję Strona główna , aby powrócić do widoku głównego.
W menu po lewej stronie wybierz pozycję IoT Plug and Play Settings (Ustawienia usługi IoT Plug and Play).
Upewnij się, że istnieje wpis repozytorium publicznego z punktem końcowym https://devicemodels.azure.com.
Uwaga
Jeśli nie ma wpisu w repozytorium publicznym, wybierz pozycję +Dodaj, wybierz pozycję Repozytorium publiczne z menu rozwijanego, określ https://devicemodels.azure.com wartość punktu końcowego, a następnie wybierz pozycję Zapisz.
Ukończony wpis dla repozytorium publicznego wygląda jak na poniższym zrzucie ekranu:
Rejestrowanie urządzenia
W tej sekcji utworzysz nowe wystąpienie urządzenia i zarejestrujesz je w utworzonym centrum IoT. Informacje o połączeniu dla nowo zarejestrowanego urządzenia umożliwiają bezpieczne łączenie urządzenia fizycznego w dalszej sekcji.
Aby zarejestrować urządzenie:
W widoku głównym w eksploratorze IoT wybierz pozycję Centra IoT.
Powinno zostać wyświetlone wcześniej dodane połączenie. Wybierz pozycję Wyświetl urządzenia w tym centrum poniżej właściwości połączenia.
Wybierz pozycję + Nowy i wprowadź identyfikator urządzenia dla urządzenia, na przykład mydevice. Pozostaw te same wszystkie inne właściwości.
Wybierz pozycję Utwórz.
Użyj przycisków kopiowania, aby skopiować pola Identyfikator urządzenia i Klucz podstawowy.
Przed przejściem do następnej sekcji zapisz każdą z poniższych wartości pobranych z wcześniejszych kroków w bezpiecznej lokalizacji. Te wartości są używane w następnej sekcji, aby skonfigurować urządzenie.
hostName
deviceId
primaryKey
Przygotowywanie urządzenia
Aby połączyć zestaw DEWELOPERski ESP32 z platformą Azure, należy zmodyfikować ustawienia konfiguracji, skompilować obraz i migać obraz do urządzenia.
Konfigurowanie środowiska
Aby uruchomić środowisko ESP-IDF:
Wybierz pozycję Start systemu Windows, znajdź pozycję ESP-IDF 5.0 CMD i uruchom ją.
W obszarze ESP-IDF 5.0 CMD przejdź do katalogu iot-middleware-freertos-samples , który został wcześniej sklonowany.
Przejdź do katalogu projektu ESP32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.
Uruchom następujące polecenie, aby uruchomić menu konfiguracji:
idf.py menuconfig
Dodawanie konfiguracji
Aby dodać konfigurację sieci bezprzewodowej:
W obszarze ESP-IDF 5.0 CMD wybierz pozycję Oprogramowanie pośredniczące usługi Azure IoT dla przykładowej konfiguracji freeRTOS --->, a następnie naciśnij Enter.
Ustaw następujące ustawienia konfiguracji przy użyciu poświadczeń lokalnej sieci bezprzewodowej.
Ustawienie
Wartość
Identyfikator SSID sieci Wi-Fi
{Twój identyfikator SSID sieci Wi-Fi}
Hasło sieci Wi-Fi
{Hasło sieci Wi-Fi}
Wybierz Esc , aby powrócić do poprzedniego menu.
Aby dodać konfigurację w celu nawiązania połączenia z usługą Azure IoT Hub:
Wybierz pozycję Oprogramowanie pośredniczące Usługi Azure IoT dla głównej konfiguracji zadań freeRTOS ---> i naciśnij Enter.
Ustaw następujące ustawienia konfiguracji usługi Azure IoT na wartości zapisane po utworzeniu zasobów platformy Azure.
Ustawienie
Wartość
Azure IoT Hub FQDN
{Nazwa hosta}
Identyfikator urządzenia usługi Azure IoT
{Identyfikator urządzenia}
Klucz symetryczny urządzenia usługi Azure IoT
{Twój klucz podstawowy}
Uwaga
W ustawieniu Metoda uwierzytelniania usługi Azure IoT upewnij się, że wybrano wartość domyślną Klucza symetrycznego.
Wybierz Esc , aby powrócić do poprzedniego menu.
Aby zapisać konfigurację:
Wybierz pozycję Shift+S, aby otworzyć opcje zapisywania. To menu umożliwia zapisanie konfiguracji w pliku o nazwie skconfig w bieżącym katalogu .\aziotkit .
Wybierz Enter, aby zapisać konfigurację.
Wybierz Enter, aby odrzucić komunikat potwierdzenia.
Wybierz pozycję Q , aby zamknąć menu konfiguracji.
Kompilowanie i flashowanie obrazu
W tej sekcji użyjesz narzędzi ESP-IDF do kompilowania, flashowania i monitorowania zestawu Deweloperskiego ESP32 podczas nawiązywania połączenia z usługą Azure IoT.
Uwaga
W poniższych poleceniach w tej sekcji użyj krótkiej ścieżki wyjściowej kompilacji w pobliżu katalogu głównego. Określ ścieżkę kompilacji po parametrze -B w każdym poleceniu, które go wymaga. Krótka ścieżka pomaga uniknąć bieżącego problemu w narzędziach ESPRESSIF ESP-IDF, które mogą powodować błędy z długimi nazwami ścieżek kompilacji. Następujące polecenia używają ścieżki lokalnej C:\espbuild jako przykładu.
Aby skompilować obraz:
W pliku ESP-IDF 5.0 CMD z katalogu iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit uruchom następujące polecenie, aby skompilować obraz.
idf.py --no-ccache -B "C:\espbuild" build
Po zakończeniu kompilacji upewnij się, że plik obrazu binarnego został utworzony w określonej wcześniej ścieżce kompilacji.
C:\espbuild\azure_iot_freertos_esp32.bin
Aby migać obraz:
W zestawie deweloperskim ESP32 znajdź port Micro USB wyróżniony na poniższej ilustracji:
Podłącz Micro USB do portu Micro USB w zestawie DevKit ESP32, a następnie podłącz go do komputera.
Otwórz Menedżer urządzeń systemu Windows i wyświetl porty, aby dowiedzieć się, z którym portem COM jest połączony zestaw Deweloperski ESP32.
W pliku ESP-IDF 5.0 CMD uruchom następujące polecenie, zastępując <symbol zastępczy portu Your-COM> i nawiasy prawidłowym portem COM z poprzedniego kroku. Na przykład zastąp symbol zastępczy symbolem COM3.
Upewnij się, że dane wyjściowe są kompletne z następującym tekstem dla pomyślnego flasha:
Hash of data verified
Leaving...
Hard resetting via RTS pin...
Done
Aby potwierdzić, że urządzenie łączy się z usługą Azure IoT Central:
W programie ESP-IDF 5.0 CMD uruchom następujące polecenie, aby uruchomić narzędzie do monitorowania. Tak jak w poprzednim poleceniu, zastąp <symbol zastępczy Your-COM-port> i nawiasy portem COM, z którym urządzenie jest połączone.
Sprawdź powtarzające się bloki danych wyjściowych podobne do poniższego przykładu. Te dane wyjściowe potwierdzają, że urządzenie łączy się z usługą Azure IoT i wysyła dane telemetryczne.
I (50807) AZ IOT: Successfully sent telemetry message
I (50807) AZ IOT: Attempt to receive publish message from IoT Hub.
I (51057) MQTT: Packet received. ReceivedBytes=2.
I (51057) MQTT: Ack packet deserialized with result: MQTTSuccess.
I (51057) MQTT: State record updated. New state=MQTTPublishDone.
I (51067) AZ IOT: Puback received for packet id: 0x00000008
I (53067) AZ IOT: Keeping Connection Idle...
Wyświetlanie właściwości urządzenia
Za pomocą narzędzia Azure IoT Explorer można wyświetlać właściwości urządzeń i zarządzać nimi. W poniższych sekcjach użyjesz funkcji Plug and Play, które są widoczne w eksploratorze IoT, aby zarządzać zestawem deweloperskim ESP32 i korzystać z niego. Te możliwości opierają się na modelu urządzenia opublikowanym dla zestawu Deweloperskiego ESP32 w repozytorium modelu publicznego. Skonfigurowano program IoT Explorer do przeszukiwania tego repozytorium dla modeli urządzeń we wcześniejszej wersji tego samouczka. W wielu przypadkach można wykonać tę samą akcję bez użycia wtyczek i odtwarzania, wybierając opcje menu IoT Explorer. Jednak korzystanie z technologii plug and play często zapewnia ulepszone środowisko. Program IoT Explorer może odczytać model urządzenia określony przez urządzenie plug and play i przedstawić informacje specyficzne dla tego urządzenia.
Aby uzyskać dostęp do składników usługi IoT Plug and Play dla urządzenia w eksploratorze IoT:
W widoku głównym w eksploratorze IoT wybierz pozycję Centra IoT, a następnie wybierz pozycję Wyświetl urządzenia w tym centrum.
Wybierz urządzenie.
Wybierz pozycję Składniki usługi IoT Plug and Play.
Wybierz pozycję Składnik domyślny. Program IoT Explorer wyświetla składniki usługi IoT Plug and Play, które są implementowane na urządzeniu.
Na karcie Interfejs wyświetl zawartość JSON w opisie modelu urządzenia. Kod JSON zawiera szczegóły konfiguracji dla każdego ze składników usługi IoT Plug and Play w modelu urządzenia.
Każda karta w eksploratorze IoT odpowiada jednemu ze składników usługi IoT Plug and Play w modelu urządzenia.
Tab
Type
Nazwa/nazwisko
opis
Interfejs
Interfejs
Espressif ESP32 Azure IoT Kit
Przykładowy model urządzenia dla zestawu deweloperskiego ESP32
Właściwości (zapisywalne)
Właściwości
telemetryFrequencySecs
Interwał wysyłania danych telemetrycznych przez urządzenie
— polecenia
Polecenie
ToggleLed1
Włączanie lub wyłączanie diody LED
— polecenia
Polecenie
ToggleLed2
Włączanie lub wyłączanie diody LED
— polecenia
Polecenie
DisplayText
Wyświetla wysłany tekst na ekranie urządzenia
Aby wyświetlić i edytować właściwości urządzenia przy użyciu narzędzia Azure IoT Explorer:
Wybierz kartę Właściwości (zapisywalne). Wyświetla interwał wysyłany przez telemetrię.
telemetryFrequencySecs Zmień wartość na 5, a następnie wybierz pozycję Aktualizuj żądaną wartość. Urządzenie używa teraz tego interwału do wysyłania danych telemetrycznych.
Program IoT Explorer odpowiada za pomocą powiadomienia.
Aby wyświetlić właściwości urządzenia przy użyciu interfejsu wiersza polecenia platformy Azure:
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
Sprawdź właściwości urządzenia w danych wyjściowych konsoli.
Napiwek
Do wyświetlania właściwości urządzenia można również użyć narzędzia Azure IoT Explorer. W obszarze nawigacji po lewej stronie wybierz pozycję Bliźniacze reprezentacje urządzenia.
Wyświetlanie danych telemetrycznych
Za pomocą narzędzia Azure IoT Explorer możesz wyświetlić przepływ danych telemetrycznych z urządzenia do chmury. Opcjonalnie możesz wykonać to samo zadanie przy użyciu interfejsu wiersza polecenia platformy Azure.
Aby wyświetlić dane telemetryczne w usłudze Azure IoT Explorer:
W okienku Składniki IoT Plug and Play (składnik domyślny) dla urządzenia w Eksploratorze IoT wybierz kartę Telemetria . Upewnij się, że dla wbudowanego centrum zdarzeń ustawiono wartość Tak.
Wybierz Start.
Wyświetl dane telemetryczne, gdy urządzenie wysyła komunikaty do chmury.
Zaznacz pole wyboru Pokaż zdarzenia modelowane, aby wyświetlić zdarzenia w formacie danych określonym przez model urządzenia.
Wybierz pozycję Zatrzymaj , aby zakończyć odbieranie zdarzeń.
Aby wyświetlić dane telemetryczne urządzenia przy użyciu interfejsu wiersza polecenia platformy Azure:
Możesz również użyć narzędzia Azure IoT Explorer, aby wywołać metodę bezpośrednią zaimplementowaną na urządzeniu. Metody bezpośrednie mają nazwę i mogą opcjonalnie mieć ładunek JSON, konfigurowalne połączenie i limit czasu metody. W tej sekcji wywołasz metodę, która włącza lub wyłącza diodę LED. Opcjonalnie możesz wykonać to samo zadanie przy użyciu interfejsu wiersza polecenia platformy Azure.
Aby wywołać metodę w narzędziu Azure IoT Explorer:
W okienku Składniki IoT Plug and Play (składnik domyślny) dla urządzenia w Eksploratorze IoT wybierz kartę Polecenia .
W przypadku polecenia ToggleLed1 wybierz pozycję Wyślij polecenie. Dioda LED na zestawie DEVKit ESP32 włącza lub wyłącza. W Eksploratorze IoT powinien zostać również wyświetlone powiadomienie.
W przypadku polecenia DisplayText wprowadź jakiś tekst w polu zawartości.
Wybierz pozycję Wyślij polecenie. Tekst zostanie wyświetlony na ekranie ESP32 DevKit.
Aby wywołać metodę za pomocą interfejsu wiersza polecenia platformy Azure:
Uruchom polecenie az iot hub invoke-device-method i określ nazwę i ładunek metody. W przypadku tej metody ustawienie method-payload oznacza, że true dioda LED przełącza się na przeciwieństwo bieżącego stanu.
Jeśli nie potrzebujesz już zasobów platformy Azure utworzonych w tym przewodniku Szybki start, możesz użyć interfejsu wiersza polecenia platformy Azure, aby usunąć grupę zasobów i wszystkie jej zasoby.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów oraz wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub grupy zasobów.
W tym samouczku utworzono obraz niestandardowy zawierający przykładowy kod oprogramowania pośredniczącego Usługi Azure IoT dla systemu FreeRTOS, a następnie mignął obraz do urządzenia ESP32 DevKit. Połączono zestaw DEWELOPERski ESP32 z usługą Azure IoT Hub i wykonano zadania, takie jak wyświetlanie danych telemetrycznych i wywoływanie metod na urządzeniu.
W następnym kroku zapoznaj się z następującym artykułem, aby dowiedzieć się więcej na temat osadzonych opcji programowania.
Twórz kompleksowe rozwiązania na platformie Microsoft Azure, aby tworzyć usługi Azure Functions, implementować aplikacje internetowe i zarządzać nimi, opracowywać rozwiązania korzystające z usługi Azure Storage i nie tylko.
W tym samouczku przedstawiono deweloperom urządzeń sposób bezpiecznego łączenia urządzenia z usługą Azure IoT Hub. Zestaw SDK urządzeń Azure IoT jest używany dla języka C, C#, Python, Node.js lub Java, aby utworzyć klienta urządzenia dla systemów Windows, Linux lub Raspberry Pi (Raspbian). Następnie nawiąż połączenie i wyślesz dane telemetryczne.
Dowiedz się więcej o technologii IoT Plug and Play. Usługa IoT Plug and Play jest oparta na otwartym języku modelowania, który umożliwia inteligentnym urządzeniom IoT deklarowanie ich możliwości. Urządzenia IoT przedstawiają deklarację o nazwie model urządzenia podczas łączenia się z rozwiązaniami w chmurze. Rozwiązanie w chmurze może następnie automatycznie zrozumieć urządzenie i rozpocząć interakcję z nim bez konieczności pisania kodu.
Dokumentacja koncepcyjna usługi Azure IoT Hub obejmuje dyskusje dotyczące punktów końcowych, zabezpieczeń, rejestru tożsamości, zarządzania urządzeniami, metod bezpośrednich, bliźniaczych reprezentacji urządzeń, przekazywania plików, zadań, języka zapytań usługi IoT Hub, obsługi komunikatów i wielu innych funkcji.