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.
- System Windows nie zawiera klienta SSH. Zalecamy używanie programu PuTTY.
- Większość dystrybucji systemu Linux i systemu Mac OS obejmuje narzędzie SSH wiersza polecenia. Aby uzyskać więcej informacji, zobacz SSH Using Linux or Mac OS (Używanie protokołu SSH przy użyciu systemu Linux lub Mac OS).
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:
- Zaloguj się, aby azureiotsuite.com przy użyciu poświadczeń konta platformy Azure, a następnie kliknij + , aby utworzyć rozwiązanie.
- Kliknij pozycję Wybierz na kafelku Zdalne monitorowanie.
- W polu Nazwa rozwiązania wprowadź nazwę wstępnie skonfigurowanego rozwiązania do monitorowania zdalnego.
- W polach Region i Subskrypcja wybierz wartości, których chcesz użyć do aprowizacji rozwiązania.
- Kliknij pozycję Utwórz rozwiązanie, aby rozpocząć proces aprowizowania. Zwykle trwa on kilka minut.
Oczekiwanie na ukończenie procesu aprowizowania
- Kliknij kafelek swojego rozwiązania zawierający informację o stanie aprowizacji.
- Zwróć uwagę na informację o stanach aprowizacji podczas wdrażania usług Azure w Twojej subskrypcji platformy Azure.
- Po ukończeniu aprowizowania stan zmieni się na wartość Gotowe.
- 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.
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.
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.
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:
W lewym dolnym rogu pulpitu nawigacyjnego kliknij pozycję Dodaj urządzenie.
W panelu Urządzenie niestandardowe kliknij pozycję Dodaj nowe.
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.
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.
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:
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:
Użyj następującego polecenia, aby zaktualizować urządzenie Raspberry Pi:
sudo apt-get update
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
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
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:
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.
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.
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:
Na stronie Wywołaj metodę wybierz pozycję InitiateFirmwareUpdate na liście rozwijanej Metoda .
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.
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:
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:
Postęp procesu aktualizacji można wyświetlić na urządzeniu Raspberry Pi:
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żyjkill
polecenia z identyfikatorem procesu.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:
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.