Udostępnij za pośrednictwem


Podłącz urządzenie Raspberry Pi 3 do rozwiązania do monitorowania zdalnego i włącz zdalne aktualizacje oprogramowania układowego przy użyciu Node.js

W tym samouczku pokazano, jak używać zestawu startowego Usługi Microsoft Azure IoT dla urządzenia Raspberry Pi 3 w celu:

  • Opracuj czytnik temperatury i wilgotności, który może komunikować się z chmurą.
  • Włącz i wykonaj zdalną aktualizację oprogramowania układowego, aby zaktualizować aplikację kliencką na urządzeniu Raspberry Pi.

W tym samouczku są używane następujące elementy:

  • Raspbian OS, język programowania Node.js i zestaw SDK usługi Microsoft Azure IoT dla Node.js w celu zaimplementowania przykładowego urządzenia.
  • Wstępnie skonfigurowane rozwiązanie do monitorowania zdalnego pakietu IoT suite jako zaplecze oparte na chmurze.

Omówienie

Ten samouczek obejmuje następujące kroki:

  • Wdróż wystąpienie wstępnie skonfigurowanego rozwiązania do monitorowania zdalnego w subskrypcji platformy Azure. Ten krok automatycznie wdraża i konfiguruje wiele usług platformy Azure.
  • Skonfiguruj urządzenie i czujniki, aby komunikować się z komputerem i rozwiązaniem do monitorowania zdalnego.
  • Zaktualizuj przykładowy kod urządzenia, aby nawiązać połączenie z rozwiązaniem do monitorowania zdalnego, i wyślij dane telemetryczne, które można wyświetlić na pulpicie nawigacyjnym rozwiązania.
  • Użyj przykładowego kodu urządzenia, aby zaktualizować aplikację kliencją.

Wymagania wstępne

Do wykonania kroków tego samouczka jest potrzebna aktywna subskrypcja platformy Azure.

Uwaga

Jeśli jej nie masz, możesz utworzyć bezpłatne konto próbne w zaledwie kilka minut. Aby uzyskać szczegółowe informacje, zobacz Bezpłatna wersja próbna platformy Azure.

Wymagane oprogramowanie

Potrzebny jest klient SSH na komputerze stacjonarnym, aby umożliwić zdalny dostęp do wiersza polecenia na urządzeniu Raspberry Pi.

Wymagany sprzęt

Komputer stacjonarny umożliwiający zdalne łączenie się z wierszem polecenia na urządzeniu Raspberry Pi.

Zestaw startowy Microsoft IoT dla urządzenia Raspberry Pi 3 lub równoważnych składników. W tym samouczku są używane następujące elementy z zestawu:

  • Raspberry Pi 3
  • Karta MicroSD (z NOOBS)
  • Kabel USB Mini
  • Kabel Ethernet
  • Czujnik BME280
  • Makiet
  • Przewody skoczkowe
  • Rezystory
  • Diody led

Aprowizacja rozwiązania

Jeśli jeszcze nie przeprowadzono aprowizacji wstępnie skonfigurowanego rozwiązania do monitorowania zdalnego na Twoim koncie:

  1. Zaloguj się, aby azureiotsuite.com przy użyciu poświadczeń konta platformy Azure, a następnie kliknij + , aby utworzyć rozwiązanie.
  2. Kliknij pozycję Wybierz na kafelku Zdalne monitorowanie.
  3. W polu Nazwa rozwiązania wprowadź nazwę wstępnie skonfigurowanego rozwiązania do monitorowania zdalnego.
  4. W polach Region i Subskrypcja wybierz wartości, których chcesz użyć do aprowizacji rozwiązania.
  5. Kliknij pozycję Utwórz rozwiązanie, aby rozpocząć proces aprowizowania. Zwykle trwa on kilka minut.

Oczekiwanie na ukończenie procesu aprowizowania

  1. Kliknij kafelek swojego rozwiązania zawierający informację o stanie aprowizacji.
  2. Zwróć uwagę na informację o stanach aprowizacji podczas wdrażania usług Azure w Twojej subskrypcji platformy Azure.
  3. Po ukończeniu aprowizowania stan zmieni się na wartość Gotowe.
  4. Kliknij kafelek, aby wyświetlić szczegóły rozwiązania w prawym okienku.

Uwaga

Jeśli podczas wdrażania wstępnie skonfigurowanego rozwiązania pojawią się problemy, zapoznaj się z tematami Uprawnienia w witrynie azureiotsuite.com i Często zadawane pytania. Jeśli problemy będą się powtarzać, utwórz żądanie pomocy w portalu.

Czy istnieją jakieś szczegóły dotyczące Twojego rozwiązania, które nie są wyświetlane, a Twoim zdaniem powinny być widoczne? Prześlij nam swoje propozycje dotyczące funkcji, korzystając ze strony User Voice (Opinie użytkowników).

Ostrzeżenie

Rozwiązanie do monitorowania zdalnego aprowizuje zestaw usług platformy Azure w ramach subskrypcji platformy Azure. Wdrożenie odzwierciedla rzeczywistą architekturę przedsiębiorstwa. Aby uniknąć niepotrzebnych opłat za użycie platformy Azure, po zakończeniu usuń wystąpienie wstępnie skonfigurowanego rozwiązania na azureiotsuite.com. Jeśli ponownie potrzebujesz wstępnie skonfigurowanego rozwiązania, możesz go łatwo odtworzyć. Aby uzyskać więcej informacji na temat ograniczania zużycia podczas uruchamiania rozwiązania do monitorowania zdalnego, zobacz Konfigurowanie wstępnie skonfigurowanych rozwiązań pakietu Azure IoT Suite do celów demonstracyjnych.

Wyświetlanie pulpitu nawigacyjnego

Pulpit nawigacyjny pozwala zarządzać wdrożonym rozwiązaniem. Można na przykład wyświetlać dane telemetryczne, dodawać urządzenia i wywoływać metody.

  1. Jeśli aprowizacja została ukończona, a na kafelku wstępnie skonfigurowanego rozwiązania jest wyświetlany stan Gotowe, wybierz pozycję Uruchom, aby otworzyć portal rozwiązania do monitorowania zdalnego na nowej karcie.

    Uruchamianie wstępnie skonfigurowanego rozwiązania

  2. Domyślnie w portalu rozwiązania jest wyświetlany pulpit nawigacyjny. Korzystając z menu po lewej stronie, można przejść do innych obszarów portalu rozwiązania.

    Pulpit nawigacyjny wstępnie skonfigurowanego rozwiązania do monitorowania zdalnego

Dodawanie urządzenia

Aby urządzenie mogło nawiązać połączenie ze wstępnie skonfigurowanym rozwiązaniem, musi ono zidentyfikować się względem usługi IoT Hub za pomocą prawidłowych poświadczeń. Poświadczenia urządzenia możesz pobrać z pulpitu nawigacyjnego rozwiązania. W dalszej części tego samouczka podasz te poświadczenia urządzenia w Twojej aplikacji klienckiej.

Jeśli jeszcze tego nie zrobiono, dodaj niestandardowe urządzenie do rozwiązania do monitorowania zdalnego. Wykonaj następujące kroki na pulpicie nawigacyjnym rozwiązania:

  1. W lewym dolnym rogu pulpitu nawigacyjnego kliknij pozycję Dodaj urządzenie.

    Dodawanie urządzenia

  2. W panelu Urządzenie niestandardowe kliknij pozycję Dodaj nowe.

    Dodawanie urządzenia niestandardowego

  3. Wybierz pozycję Pozwól mi zdefiniować własny identyfikator urządzenia. Wprowadź identyfikator urządzenia, taki jak rasppi, kliknij przycisk Sprawdź identyfikator , aby sprawdzić, czy nie użyto jeszcze nazwy w rozwiązaniu, a następnie kliknij przycisk Utwórz , aby aprowizować urządzenie.

    Dodawanie identyfikatora urządzenia

  4. Zanotuj poświadczenia urządzenia (identyfikator urządzenia, IoT Hub nazwę hosta i klucz urządzenia). Aplikacja kliencka na urządzeniu Raspberry Pi wymaga tych wartości w celu nawiązania połączenia z rozwiązaniem do monitorowania zdalnego. Następnie kliknij przycisk Gotowe.

    Wyświetlanie poświadczeń urządzenia

  5. Wybierz urządzenie na liście urządzeń na pulpicie nawigacyjnym rozwiązania. Następnie w panelu Szczegóły urządzenia kliknij pozycję Włącz urządzenie. Stan Twojego urządzenia to teraz Uruchomione. Rozwiązanie do monitorowania zdalnego może teraz odbierać dane telemetryczne z Twojego urządzenia i wywoływać metody na tym urządzeniu.

Przygotowywanie urządzenia Raspberry Pi

Instalowanie programu Raspbian

Jeśli jest to pierwszy raz, gdy używasz urządzenia Raspberry Pi, musisz zainstalować system operacyjny Raspbian przy użyciu noOBS na karcie SD dołączonej do zestawu. W przewodniku po oprogramowaniu Raspberry Pi opisano sposób instalowania systemu operacyjnego na urządzeniu Raspberry Pi. W tym samouczku założono, że na urządzeniu Raspberry Pi zainstalowano system operacyjny Raspbian.

Uwaga

Karta SD dołączona do zestawu startowego Microsoft Azure IoT dla urządzenia Raspberry Pi 3 ma już zainstalowany system NOOBS. Możesz uruchomić urządzenie Raspberry Pi z tej karty i zainstalować system operacyjny Raspbian.

Konfigurowanie sprzętu

W tym samouczku użyto czujnika BME280 dołączonego do zestawu startowego Microsoft Azure IoT Dla urządzenia Raspberry Pi 3 w celu wygenerowania danych telemetrycznych. Używa ona diody LED, aby wskazać, kiedy urządzenie Raspberry Pi przetwarza wywołanie metody z pulpitu nawigacyjnego rozwiązania.

Składniki tablicy chleba to:

  • Czerwona dioda LED
  • 220-Ohm rezystor (czerwony, czerwony, brązowy)
  • Czujnik BME280

Na poniższym diagramie pokazano, jak połączyć sprzęt:

Konfiguracja sprzętowa urządzenia Raspberry Pi

W poniższej tabeli podsumowano połączenia z urządzenia Raspberry Pi do składników w tablicy chlebowej:

Raspberry Pi Makiet Kolor
GND (pin 14) LED -ve pin (18A) Purple
GPCLK0 (pin 7) Rezystor (25A) Orange
SPI_CE0 (numer PIN 24) CS (39A) Blue (Niebieski)
SPI_SCLK (numer PIN 23) SCK (36A) Yellow
SPI_MISO (numer PIN 21) SDO (37A) Biały
SPI_MOSI (numer PIN 19) SDI (38A) Green (Zielony)
GND (pin 6) GND (35A) Czarnoskórzy
3.3 V (numer pin 1) 3Vo (34A) Red (Czerwony)

Aby ukończyć konfigurację sprzętu, należy wykonać następujące czynności:

  • Podłącz urządzenie Raspberry Pi do zasilacza dołączonego do zestawu.
  • Podłącz urządzenie Raspberry Pi do sieci przy użyciu kabla Ethernet dołączonego do zestawu. Alternatywnie można skonfigurować łączność bezprzewodową urządzenia Raspberry Pi.

Konfiguracja sprzętu urządzenia Raspberry Pi została ukończona.

Logowanie się i uzyskiwanie dostępu do terminalu

Dostępne są dwie opcje uzyskiwania dostępu do środowiska terminalowego na urządzeniu Raspberry Pi:

  • Jeśli masz klawiaturę i monitor podłączony do urządzenia Raspberry Pi, możesz użyć graficznego interfejsu użytkownika Raspbian, aby uzyskać dostęp do okna terminalu.

  • Uzyskaj dostęp do wiersza polecenia na urządzeniu Raspberry Pi przy użyciu protokołu SSH z komputera stacjonarnego.

Korzystanie z okna terminalu w graficznym interfejsie użytkownika

Domyślne poświadczenia raspbian to nazwa użytkownika pi i hasło raspberry. Na pasku zadań w graficznym interfejsie użytkownika możesz uruchomić narzędzie Terminal przy użyciu ikony, która wygląda jak monitor.

Logowanie przy użyciu protokołu SSH

Do uzyskiwania dostępu do urządzenia Raspberry Pi możesz użyć protokołu SSH. W artykule SSH (Secure Shell) opisano sposób konfigurowania protokołu SSH na urządzeniu Raspberry Pi oraz sposobu nawiązywania połączenia z systemu Windows lub Linux & mac OS.

Zaloguj się przy użyciu nazwy użytkownika pi i hasła raspberry.

Opcjonalnie: Udostępnianie folderu na urządzeniu Raspberry Pi

Opcjonalnie możesz udostępnić folder na urządzeniu Raspberry Pi w środowisku pulpitu. Udostępnianie folderu umożliwia korzystanie z preferowanego edytora tekstów klasycznych (takiego jak Visual Studio Code lub Sublime Text) w celu edytowania plików na urządzeniu Raspberry Pi zamiast używania nano lub vi.

Aby udostępnić folder w systemie Windows, skonfiguruj serwer Samba na urządzeniu Raspberry Pi. Alternatywnie użyj wbudowanego serwera SFTP z klientem SFTP na pulpicie.

Włączanie usługi SPI

Aby można było uruchomić przykładową aplikację, należy włączyć magistralę interfejsu szeregowego (SPI) na urządzeniu Raspberry Pi. Urządzenie Raspberry Pi komunikuje się z urządzeniem czujnika BME280 za pośrednictwem magistrali SPI. Użyj następującego polecenia, aby edytować plik konfiguracji:

sudo nano /boot/config.txt

Znajdź wiersz:

#dtparam=spi=on

  • Aby usunąć komentarz w wierszu, usuń element # na początku.

  • Zapisz zmiany (Ctrl-O, Enter) i zamknij edytor (Ctrl-X).

  • Aby włączyć spi, uruchom ponownie urządzenie Raspberry Pi. Ponowne uruchomienie powoduje rozłączenie terminalu. Po ponownym uruchomieniu urządzenia Raspberry Pi należy zalogować się ponownie:

    sudo reboot
    

Pobieranie i konfigurowanie przykładu

Teraz możesz pobrać i skonfigurować aplikację klienta monitorowania zdalnego na urządzeniu Raspberry Pi.

Instalowanie środowiska Node.js

Jeśli jeszcze tego nie zrobiono, zainstaluj Node.js na urządzeniu Raspberry Pi. Zestaw SDK IoT dla Node.js wymaga wersji 0.11.5 Node.js lub nowszej. W poniższych krokach pokazano, jak zainstalować Node.js w wersji 6.10.2 na urządzeniu Raspberry Pi:

  1. Użyj następującego polecenia, aby zaktualizować urządzenie Raspberry Pi:

    sudo apt-get update
    
  2. Użyj następującego polecenia, aby pobrać pliki binarne Node.js do urządzenia Raspberry Pi:

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. Użyj następującego polecenia, aby zainstalować pliki binarne:

    sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
    
  4. Użyj następującego polecenia, aby sprawdzić, czy pomyślnie zainstalowano Node.js 6.10.2:

    node --version
    

Klonowanie repozytoriów

Jeśli jeszcze tego nie zrobiono, sklonuj wymagane repozytoria, uruchamiając następujące polecenia w pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git

Aktualizowanie parametry połączenia urządzenia

Otwórz przykładowy plik konfiguracji w edytorze nano , używając następującego polecenia:

nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/config/deviceinfo

Zastąp wartości symbolu zastępczego identyfikatorem urządzenia i IoT Hub informacji utworzonych i zapisanych na początku tego samouczka.

Po zakończeniu zawartość pliku deviceinfo powinna wyglądać następująco:

yourdeviceid
HostName=youriothubname.azure-devices.net;DeviceId=yourdeviceid;SharedAccessKey=yourdevicekey

Zapisz zmiany (Ctrl-O, Enter) i zamknij edytor (Ctrl-X).

Uruchamianie aplikacji przykładowej

Uruchom następujące polecenia, aby zainstalować pakiety wymagań wstępnych dla przykładu:

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advance/1.0
npm install

Teraz możesz uruchomić przykładowy program na urządzeniu Raspberry Pi. Wprowadź polecenie:

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/1.0/remote_monitoring.js

Następujące przykładowe dane wyjściowe są przykładem danych wyjściowych wyświetlanych w wierszu polecenia w urządzeniu Raspberry Pi:

Dane wyjściowe z aplikacji Raspberry Pi

Naciśnij klawisze Ctrl-C , aby w dowolnym momencie zamknąć program.

Wyświetlanie danych telemetrycznych

Urządzenie Raspberry Pi wysyła teraz dane telemetryczne do rozwiązania do monitorowania zdalnego. Dane telemetryczne można wyświetlić na pulpicie nawigacyjnym rozwiązania. Możesz również wysyłać komunikaty do urządzenia Raspberry Pi z poziomu pulpitu nawigacyjnego rozwiązania.

  • Przejdź do pulpitu nawigacyjnego rozwiązania.
  • Wybierz urządzenie na liście rozwijanej Urządzenie do wyświetlenia .
  • Dane telemetryczne z urządzenia Raspberry Pi są wyświetlane na pulpicie nawigacyjnym.

Wyświetlanie danych telemetrycznych z urządzenia Raspberry Pi

Inicjowanie aktualizacji oprogramowania układowego

Proces aktualizacji oprogramowania układowego pobiera i instaluje zaktualizowaną wersję aplikacji klienckiej urządzenia na urządzeniu Raspberry Pi. Aby uzyskać więcej informacji na temat procesu aktualizacji oprogramowania układowego, zobacz opis wzorca aktualizacji oprogramowania układowego w temacie Omówienie zarządzania urządzeniami za pomocą IoT Hub.

Proces aktualizacji oprogramowania układowego należy zainicjować, wywołując metodę na urządzeniu. Ta metoda jest asynchroniczna i jest zwracana zaraz po rozpoczęciu procesu aktualizacji. Urządzenie używa zgłoszonych właściwości, aby powiadomić rozwiązanie o postępie aktualizacji.

Metody na urządzeniu Raspberry Pi są wywoływane z poziomu pulpitu nawigacyjnego rozwiązania. Gdy urządzenie Raspberry Pi po raz pierwszy łączy się z rozwiązaniem do monitorowania zdalnego, wysyła informacje o obsługiwanych metodach.

  1. Na pulpicie nawigacyjnym rozwiązania kliknij pozycję Urządzenia , aby odwiedzić stronę Urządzenia . Wybierz urządzenie Raspberry Pi na liście urządzeń. Następnie wybierz pozycję Metody:

    Wyświetlanie listy urządzeń na pulpicie nawigacyjnym

  2. Na stronie Wywołaj metodę wybierz pozycję InitiateFirmwareUpdate na liście rozwijanej Metoda .

  3. W polu FWPackageURI wprowadź wartość https://raw.githubusercontent.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit/master/advanced/2.0/raspberry.js. Ten plik zawiera implementację wersji 2.0 oprogramowania układowego.

  4. Wybierz pozycję WywołajMethod. Aplikacja na urządzeniu Raspberry Pi wysyła potwierdzenie z powrotem do pulpitu nawigacyjnego rozwiązania. Następnie uruchamia proces aktualizacji oprogramowania układowego, pobierając nową wersję oprogramowania układowego:

    Pokaż historię metod

Obserwowanie procesu aktualizacji oprogramowania układowego

Proces aktualizacji oprogramowania układowego można obserwować podczas uruchamiania na urządzeniu i wyświetlając zgłoszone właściwości na pulpicie nawigacyjnym rozwiązania:

  1. Postęp procesu aktualizacji można wyświetlić na urządzeniu Raspberry Pi:

    Pokaż postęp aktualizacji

    Uwaga

    Aplikacja do monitorowania zdalnego jest uruchamiana w trybie dyskretnym po zakończeniu aktualizacji. Użyj polecenia ps -ef , aby sprawdzić, czy jest uruchomiona. Jeśli chcesz zakończyć proces, użyj kill polecenia z identyfikatorem procesu.

  2. Stan aktualizacji oprogramowania układowego można wyświetlić zgodnie z raportem urządzenia w portalu rozwiązania. Poniższy zrzut ekranu przedstawia stan i czas trwania każdego etapu procesu aktualizacji oraz nową wersję oprogramowania układowego:

    Pokaż stan zadania

    Jeśli wrócisz do pulpitu nawigacyjnego, możesz sprawdzić, czy urządzenie nadal wysyła dane telemetryczne po aktualizacji oprogramowania układowego.

Ostrzeżenie

Jeśli opuścisz rozwiązanie do monitorowania zdalnego uruchomione na koncie platformy Azure, opłaty są naliczane za czas jego uruchomienia. Aby uzyskać więcej informacji na temat ograniczania zużycia podczas uruchamiania rozwiązania do monitorowania zdalnego, zobacz Konfigurowanie wstępnie skonfigurowanych rozwiązań usługi Azure IoT Suite na potrzeby pokazu. Usuń wstępnie skonfigurowane rozwiązanie z konta platformy Azure po zakończeniu korzystania z niego.

Następne kroki

Odwiedź Centrum deweloperów usługi Azure IoT, aby uzyskać więcej przykładów i dokumentacji dotyczącej usługi Azure IoT.