- Co to jest Microsoft Azure IoT Hub?
- Tworzenie Azure IoT Hub
- Składniki wymagane do zbudowania naszego obwodu testowego dla Azure IoT z Raspberry Pi
- Azure IoT z Raspberry Pi - schemat sprzętowy
- Programowanie Raspberry Pi do publikowania danych w usłudze Azure IoT Hub
- Publikowanie danych w usłudze Azure IoT Hub - testowanie
Azure IoT Hub, usługa przetwarzania w chmurze firmy Microsoft, umożliwia deweloperom łączenie i monitorowanie miliardów urządzeń IoT oraz zarządzanie nimi na jednej platformie. Jest już używany w różnych aplikacjach IoT, takich jak systemy automatyki domowej, systemy bezpieczeństwa, nadzoru i monitorowania. Aby zademonstrować możliwości Azure IoT Hub, zamierzamy zbudować mały obwód z Raspberry Pi, czujnikiem temperatury i wilgotności DHT11, w celu przetwarzania danych z czujnika. Na koniec opublikujemy dane z czujników na serwerze Azure IoT przy użyciu protokołu MQTT. W tym samouczku dowiemy się, jak skonfigurować i skonfigurować serwer Azure oraz wysyłać dane za pomocą Raspberry Pi.
Co to jest Microsoft Azure IoT Hub?
Azure IoT Hub to zbiór usług zarządzanych, które mogą łączyć, monitorować i sterować urządzeniami IoT. Obejmuje również bezpieczną komunikację z urządzeniami, z wizualizacją i analizą danych, które pomagają producentom urządzeń w tworzeniu i wdrażaniu aplikacji IoT oraz zarządzaniu nimi za pomocą chmury Azure . Dane telemetryczne z urządzenia do dysku CD w usłudze Azure IoT Hub pozwalają nam poznać stan podłączonych urządzeń IoT, a komunikaty z chmury do urządzenia umożliwiają nam wysyłanie poleceń i powiadomień do podłączonych urządzeń. Przykładem może być wykorzystanie systemu automatyki inteligentnego domu do zbierania różnych danych z czujników i wysyłania ich do Azure IoT Hub w celu ich wizualizacji, przechowywania i zarządzania. Możemy również sterować urządzeniami wyjściowymi z interfejsu Azure IoT Hub.
Centralny hub do dwukierunkowej komunikacji dla aplikacji IoT i urządzeń obsługuje zarówno komunikację urządzenie-chmura, jak i chmura-urządzenie, obsługuje również wiele wzorców przesyłania wiadomości, takich jak telemetria z urządzenia do chmury, przesyłanie plików z urządzeń i metody odpowiedzi na żądanie i wreszcie, możemy użyć metody uwierzytelniania na urządzenie, która umożliwia każdemu urządzeniu bezpieczne połączenie z IoT Hub. Teraz, po zrozumieniu podstaw Azure IoT Hub, przejdźmy do konfiguracji systemu.
Tworzenie Azure IoT Hub
Jesteśmy gotowi do wykonania wszystkich niezbędnych konfiguracji, które są wymagane do skonfigurowania usług Microsoft Azure, ale wcześniej upewnij się, że masz konto Microsoft. Jeśli go nie masz, możesz się po prostu zarejestrować. Następnie przejdź do Azure Portal przy użyciu portalu portal.azure.com i zaloguj się.
Po zalogowaniu przejdź do strony głównej platformy Azure, wybierz przycisk Utwórz zasób, a następnie wyszukaj IoT Hub w polu Wyszukaj w Marketplace. Wybierz IoT Hub z wyników wyszukiwania, a następnie wybierz Utwórz. Poniższe obrazy dają lepsze wyobrażenie o tym procesie.
Podaj niezbędne szczegóły, aby utworzyć IoT Hub.
W sekcji Subskrypcja musisz wybrać subskrypcję, aby używać jej w swoim centrum. W naszym przypadku wybieramy konto próbne i wybraliśmy „ Bezpłatny okres próbny” .
Następnie w sekcji Grupa zasobów wybierz grupę zasobów . Jeśli go nie masz, musisz utworzyć nowy, klikając przycisk Utwórz nowy i wprowadź nazwę zasobu.
W sekcji Region możesz użyć menu rozwijanego, aby wybrać preferowany region.
W Internet przedmiotów Hub nazwa sekcji, musisz e NTER nazwę dla koncentratora. To musi być wyjątkowe. Cała niezbędna komunikacja będzie odbywać się pod tą nazwą.
W zakładce „Rozmiar i skala” wybierz „ Poziom bezpłatny ” i kliknij Dalej. Następnie kliknij „Przejrzyj + Utwórz”. Utworzenie IoT Hub zajmie kilka minut. Kliknij nazwę utworzonego centrum IoT Hub. Zanotuj nazwę hosta z okna, jak pokazano na poniższym obrazku. Następnie kliknij Zasady dostępu współdzielonego w Ustawieniach. Zasady dostępu współdzielonego są wyróżnione na poniższej ilustracji. Kliknij opcję iothubowner w obszarze Zasady. Zanotuj klucz podstawowy i parametry połączenia - klucz podstawowy na potrzeby przyszłych odwołań. Teraz, aby zarejestrować nowe urządzenie w Centrum IoT, kliknij Urządzenia IoT. W panelu Eksplorator urządzeń kliknij Dodaj, aby dodać urządzenie do koncentratora.
Wypełnij następujące informacje na karcie Nowe urządzenia.
- Identyfikator urządzenia: wprowadź identyfikator urządzenia. Identyfikatory urządzeń muszą być niepowtarzalne.
- Typ uwierzytelniania: wybierz klucz symetryczny.
- Automatycznie generuj klucze: zaznacz to pole wyboru.
- Podłącz urządzenie do IoT Hub: kliknij Włącz.
Po utworzeniu urządzenia możesz znaleźć nowo utworzone urządzenie w sekcji Eksplorator urządzeń. Kliknij nazwę urządzenia. Pokaże szczegóły urządzenia. Zanotuj klucz podstawowy i ciąg połączenia - klucz podstawowy urządzenia. Jest to ważne, ponieważ potrzebujemy go do komunikacji.
Teraz, kiedy to zostanie zrobione, możemy przejść do strony sprzętu.
Składniki wymagane do zbudowania naszego obwodu testowego dla Azure IoT z Raspberry Pi
Ponieważ część sprzętowa tego obwodu jest bardzo prosta, wymagania dotyczące komponentów również są bardzo proste. Lista wymaganych komponentów znajduje się poniżej.
- Raspberry Pi 3B (możemy również użyć dowolnych innych modeli Pi)
- Karta Micro SD-16 GB
- Czujnik DHT11
- Zasilacz Micro USB 5 V, 2,4 A.
Azure IoT z Raspberry Pi - schemat sprzętowy
Pełny schemat obwodu dla projektu Azure IoT with Raspberry Pi jest pokazany poniżej. Został on zbudowany przy użyciu fritzing. Postępuj zgodnie ze schematem obwodu i połączeniami, aby samodzielnie wykonać obwód.
Powyższy obwód wysyła dane dotyczące temperatury i wilgotności do Microsoft IoT Hub. W tym obwodzie użyliśmy czujnika DHT11 do zbierania danych dotyczących temperatury i wilgotności i używamy Raspberry Pi 3B jako urządzenia do przetwarzania danych. Czujnik DHT11 ma trzy piny. Piny VCC i GND służą do zasilania czujnika 5 V DC, a pin wyjścia danych DHT11 jest podłączony do GPIO4 Raspberry Pi. Jeśli chcesz dowiedzieć się, jak połączyć czujnik temperatury i wilgotności DHT11 z Raspberry Pi, możesz zapoznać się z naszym poprzednim artykułem na ten temat. Wykorzystaliśmy również ten czujnik do budowy stacji pogodowej IoT Raspberry Pi.
Programowanie Raspberry Pi do publikowania danych w usłudze Azure IoT Hub
Przed rozpoczęciem kodowania dla tego projektu musimy utworzyć Azure Cloud Shell (CLI) w Azure Portal. Będzie to przydatne na wiele sposobów. W tym celu kliknij przycisk Azure Cloud Shell w portalu, jak pokazano poniżej. Następnie kliknij opcję tworzenia magazynu, zaznaczoną na czerwono.
Gdy to zrobisz, możesz otworzyć CLI i uruchom następujące polecenia, aby zainstalować Azure dodatek” s, które będą wykorzystywane, aby pokazać dane z czujników.
rozszerzenie az add --name azure-cli-iot-ext
Gdy to zrobisz, musimy zainstalować zależności na Raspberry Pi, aby komunikować się z czujnikiem DHT11 i ułatwić proces komunikacji dla usług Azure IoT. W tym celu otwórz terminal Raspberry Pi, aby zainstalować zależne pakiety używane w projekcie.
Najpierw musimy pobrać bibliotekę DHT dla Raspberry Pi, a następnie wyodrębnić ją z folderu głównego i uruchomić następujące polecenie, aby ją zainstalować.
sudo python setup.py install
Po pomyślnej instalacji uruchom następujące polecenia, aby zainstalować wszystkie pakiety zależne w usłudze Azure IoT Hub.
sudo pip3 zainstaluj azure-iot-device sudo pip3 zainstaluj azure-iot-hub sudo pip3 zainstaluj azure-iothub-service-client sudo pip3 zainstaluj azure-iothub-device-client
Gdy zakończyliśmy instalację wszystkich wymagań wstępnych, czas napisać kod w Pythonie. Aby to zrobić, najpierw zaimportuj wszystkie biblioteki:
importuj losowy import Adafruit_DHT czas importu z azure.iot.device import IoTHubDeviceClient, Message
W tym projekcie używamy pinu 4 Raspberry Pi do przetwarzania danych z danych DHT11, więc należy to zadeklarować, jak pokazano.
czujnik = Adafruit_DHT.DHT11 pin = 4
Następnie definiujemy ciąg połączenia kodu. Zastąp go parametrami połączenia podstawowego urządzenia, które zapisaliśmy wcześniej.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Następnie tworzymy tablicę, która będzie używana do wysyłania danych do Azure IoT Hub. Można to zrobić, jak pokazano poniżej.
MSG_SND = '{{"temperatura": {temperatura}, "wilgotność": {wilgotność}}}'
Następnie zdefiniowaliśmy pętlę while. W pętli while, dane dotyczące wilgotności i temperatury są przetwarzane za pomocą funkcji Adafruit_DHT.read_retry . Ponadto definiujemy dwie zmienne specjalne i przypisujemy dane wyjściowe do tych zmiennych.
while True: wilgotność, temperatura = Adafruit_DHT.read_retry (czujnik, pin)
Następnie zapisywana jest funkcja łącząca IoT Hub przy użyciu parametrów połączenia, które zostały wcześniej zdefiniowane.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) zwraca klienta
Na koniec w następnym kroku dane dotyczące temperatury i wilgotności są wysyłane do usługi Azure Hub w formacie pokazanym w poniższym kodzie. Ponadto użyliśmy metody try and catch, aby zidentyfikować, czy w kodzie jest jakiś błąd.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Wysyłanie danych do IoT Hub, naciśnij Ctrl-C, aby wyjść") while True: msg_txt_formatted = MSG_SND.format (temperatura = temperatura, wilgotność = wilgotność) message = Message (msg_txt_formatted) print ("Wysyłanie wiadomości: {}". format (wiadomość)) client.send_message (wiadomość) print ("Wiadomość pomyślnie wysłana") time.sleep (3)
Publikowanie danych w usłudze Azure IoT Hub - testowanie
Po pomyślnym napisaniu kodu skompiluj go i sprawdź, czy nie ma żadnych błędów. Jeśli blok kodu został pomyślnie skompilowany, uruchom kod. W oknie terminala powinien pojawić się komunikat „Wiadomość wysłana pomyślnie”. Zrzut ekranu okna pokazano poniżej:
Teraz, aby wyświetlić dane w usłudze Azure IoT Hub, przejdź do portalu i kliknij terminal interfejsu wiersza polecenia i uruchom następujące polecenia, zastępując w nim poświadczenia.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Uwaga:
Zastąp XYZ nazwą swojego koncentratora i identyfikatorem urządzenia.
Po uruchomieniu powyższego polecenia powinieneś otrzymać dane, jak pokazano poniżej na ekranie. To te same dane, które zostały wysłane z Raspberry Pi.
To oznacza koniec tego samouczka. Mam nadzieję, że spodobał Ci się artykuł i nauczyłeś się czegoś nowego. Jeśli masz jakieś pytania dotyczące artykułu, możesz je zostawić w sekcji komentarzy poniżej. Możesz też skorzystać z naszego Forum Elektroniki, aby uzyskać szybszą i lepszą odpowiedź.