Łączenie urządzenia Raspberry Pi 3 z rozwiązaniem do monitorowania zdalnego i wysyłanie danych telemetrycznych z rzeczywistego czujnika przy użyciu Node.js
W tym samouczku pokazano, jak za pomocą zestawu startowego Microsoft Azure IoT dla urządzenia Raspberry Pi 3 opracować czytnik temperatury i wilgotności, który może komunikować się z chmurą. 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.
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
Zainstaluj Raspbian
Jeśli używasz urządzenia Raspberry Pi po raz pierwszy, 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
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 źródłowy w edytorze nano , używając następującego polecenia:
nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic/remote_monitoring.js
Znajdź wiersz:
var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';
Zastąp wartości symbolu zastępczego urządzeniem i IoT Hub informacje utworzone i zapisane na początku tego samouczka. 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/basic
npm install
Teraz możesz uruchomić przykładowy program na urządzeniu Raspberry Pi. Wprowadź polecenie:
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic/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.
Działanie na urządzeniu
Na pulpicie nawigacyjnym rozwiązania można wywoływać metody na urządzeniu Raspberry Pi. Gdy urządzenie Raspberry Pi łą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ę LightBlink na liście rozwijanej Metoda .
Wybierz pozycję WywołajMethod. Dioda LED podłączona do urządzenia Raspberry Pi miga kilka razy. Aplikacja na urządzeniu Raspberry Pi wysyła potwierdzenie z powrotem do pulpitu nawigacyjnego rozwiązania:
Diodę LED można włączyć i wyłączyć przy użyciu metody ChangeLightStatus z wartością LightStatusValue ustawioną na wartość 1 dla opcji włączonej lub 0 dla wyłączonej.
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.