Anslut Raspberry Pi 3 till fjärrövervakningslösningen och aktivera fjärruppdateringar av inbyggd programvara med hjälp av Node.js
Den här handledningen visar hur du använder Microsoft Azure IoT Starter Kit för Raspberry Pi 3:
- Utveckla en temperatur- och fuktighetsläsare som kan kommunicera med molnet.
- Aktivera och utföra en fjärruppdatering av inbyggd programvara för att uppdatera klientprogrammet på Raspberry Pi.
Självstudien använder:
- Raspbian OS, programmeringsspråket Node.js och Microsoft Azure IoT SDK för Node.js för att implementera en exempelenhet.
- Den förkonfigurerade lösningen för fjärrövervakning i IoT Suite med ett molnbaserat backend.
Översikt
I den här självstudien gör du följande:
- Distribuera en instans av den förkonfigurerade fjärrövervakningslösningen till din Azure-prenumeration. Det här steget distribuerar och konfigurerar automatiskt flera Azure-tjänster.
- Konfigurera enheten och sensorerna så att de kommunicerar med datorn och fjärrövervakningslösningen.
- Uppdatera exempelenhetskoden för att ansluta till fjärrövervakningslösningen och skicka telemetri som du kan visa på instrumentpanelen för lösningen.
- Använd enhetsexempelkoden för att uppdatera klientprogrammet.
Förutsättningar
För att slutföra den här självstudien behöver du en aktiv Azure-prenumeration.
Anmärkning
Om du inte har något konto kan du skapa ett kostnadsfritt utvärderingskonto på bara några minuter. Mer information finns i kostnadsfri utvärderingsversion av Azure.
Nödvändig programvara
Du behöver SSH-klienten på din stationära dator så att du kan fjärransluta till kommandoraden på Raspberry Pi.
- Windows innehåller inte en SSH-klient. Vi rekommenderar att du använder PuTTY.
- De flesta Linux-distributioner och Mac OS innehåller kommandorads-SSH-verktyget. Mer information finns i SSH Using Linux or Mac OS.
Nödvändig maskinvara
Med en stationär dator kan du fjärransluta till kommandoraden på Raspberry Pi.
Microsoft IoT Starter Kit för Raspberry Pi 3 eller motsvarande komponenter. I den här självstudien används följande objekt från paketet:
- Raspberry Pi 3
- MicroSD-kort (med NOOBS)
- En Mini-USB-kabel
- En nätverkskabel
- BME280-sensor
- Skärbräda
- Bygeltrådar
- Motstånd
- Lysdioder
Etablera lösningen
Om du inte redan har etablerat den förkonfigurerade fjärrövervakningslösningen i ditt konto:
- Logga in på azureiotsuite.com med dina autentiseringsuppgifter för Azure-kontot och klicka på + för att skapa en lösning.
- Klicka Välj på rutan Fjärrövervakning.
- Ange ett lösningsnamn för den förkonfigurerade fjärrövervakningslösningen.
- Välj den regionen och den prenumerationen du vill använda för att implementera lösningen.
- Klicka på Skapa lösning för att starta etableringsprocessen. Den här processen tar vanligtvis flera minuter att köra.
Vänta tills konfigurationsprocessen har slutförts
- Klicka på rutan för din lösning med statusen Tilldelning.
- Observera Provisioning-tillstånd när Azure-tjänster distribueras i din Azure-prenumeration.
- När etableringen är klar ändras statusen till Redo.
- Klicka på panelen för att se information om din lösning i den högra rutan.
Anmärkning
Om du stöter på problem med att distribuera den förkonfigurerade lösningen kan du läsa Behörigheter på azureiotsuite.com webbplats och vanliga frågor och svar om . Om problemen kvarstår skapar du en tjänstbegäran på -portalen.
Finns det information som du förväntar dig att se som inte visas för din lösning? Ge oss förslag på funktioner för User Voice.
Varning
Fjärrövervakningslösningen etablerar en uppsättning Azure-tjänster i din Azure-prenumeration. Implementeringen återspeglar en verklig företagsarkitektur. För att undvika onödiga Avgifter för Azure-förbrukning tar du bort din instans av den förkonfigurerade lösningen på azureiotsuite.com när du är klar med den. Om du behöver den förkonfigurerade lösningen igen kan du enkelt återskapa den. Mer information om hur du minskar förbrukningen när fjärrövervakningslösningen körs finns i Konfigurera förkonfigurerade azure IoT Suite-lösningar i demosyfte.
Visa instrumentpanelen för lösningen
Med instrumentpanelen för lösningen kan du hantera den distribuerade lösningen. Du kan till exempel visa telemetri, lägga till enheter och anropa metoder.
När etableringen är klar och panelen för den förkonfigurerade lösningen anger Klarväljer du Starta för att öppna portalen för fjärrövervakningslösningen på en ny flik.
Som standard visar lösningsportalen instrumentpanelen. Du kan navigera till andra områden i lösningsportalen med hjälp av menyn till vänster på sidan.
Lägga till en enhet
För att en enhet ska kunna ansluta till den förkonfigurerade lösningen måste den identifiera sig för IoT Hub med giltiga autentiseringsuppgifter. Du kan hämta enhetens autentiseringsuppgifter från lösningens instrumentpanel. Du inkluderar autentiseringsuppgifterna för enheten i klientprogrammet senare i den här handledningen.
Om du inte redan har gjort det lägger du till en anpassad enhet i fjärrövervakningslösningen. Slutför följande steg på instrumentpanelen för lösningen:
I det nedre vänstra hörnet på instrumentpanelen klickar du på Lägg till en enhet.
I panelen för Anpassad enhet klickar du på Lägg till nytt.
Välj Låt mig definiera mitt eget enhets-ID. Ange ett enhets-ID, till exempel rasppi, klicka på Kontrollera ID för att kontrollera att du inte redan har använt namnet i lösningen och klicka sedan på Skapa för att etablera enheten.
Anteckna enhetens autentiseringsuppgifter (enhets-ID, IoT Hub-värdnamnoch enhetsnyckel). Klientprogrammet på Raspberry Pi behöver dessa värden för att ansluta till fjärrövervakningslösningen. Klicka sedan på Done (Klar).
Välj enheten i enhetslistan på instrumentpanelen för lösningen. I panelen Enhetsinformation klickar du sedan på Aktivera enhet. Enhetens status är nu I drift. Fjärrövervakningslösningen kan nu ta emot telemetri från enheten och anropa metoder på enheten.
Förbered din Raspberry Pi
Installera Raspbian
Om det är första gången du använder Raspberry Pi måste du installera Raspbian-operativsystemet med NOOBS på SD-kortet som ingår i satsen. I Raspberry Pi Software Guide beskrivs hur du installerar ett operativsystem på Raspberry Pi. Den här självstudien förutsätter att du har installerat Raspbian-operativsystemet på Raspberry Pi.
Anmärkning
SD-kortet som ingår i Microsoft Azure IoT Starter Kit för Raspberry Pi 3 redan har NOOBS installerat. Du kan starta Raspberry Pi från det här kortet och välja att installera Raspbian OS.
Konfigurera maskinvaran
I den här självstudien används BME280-sensorn som ingår i Microsoft Azure IoT Starter Kit for Raspberry Pi 3 för att generera telemetridata. Den använder en LED för att ange när Raspberry Pi bearbetar ett metodanrop från lösningsinstrumentpanelen.
Komponenterna på brödbrädan är:
- Röd lysdiod
- 220-Ohm motstånd (röd, röd, brun)
- BME280-sensor
Följande diagram visar hur du ansluter maskinvaran:
I följande tabell sammanfattas anslutningarna från Raspberry Pi till komponenterna på brödskivan:
Raspberry Pi | Skärbräda | Färg |
---|---|---|
GND (pinne 14) | LED-negativ stift (18A) | Lila |
GPCLK0 (stift 7) | Motstånd (25A) | Apelsin |
SPI_CE0 (stift 24) | CS (39A) | Blått |
SPI_SCLK (stift 23) | SCK (36A) | Gul |
SPI_MISO (Pin 21) | SDO (37A) | Vit |
SPI_MOSI (Stift 19) | SDI (38A) | Grön |
GND (stift 6) | GND (35A) | Svart |
3,3 V (stift 1) | 3Vo (34A) | Röd |
För att slutföra maskinvarukonfigurationen måste du:
- Anslut Raspberry Pi till strömförsörjningen som ingår i satsen.
- Anslut Raspberry Pi till nätverket med hjälp av Ethernet-kabeln som ingår i ditt kit. Du kan också konfigurera trådlös anslutning för Raspberry Pi.
Nu har du slutfört maskinvarukonfigurationen av Raspberry Pi.
Logga in och få åtkomst till terminalen
Du har två alternativ för att komma åt en terminalmiljö på Raspberry Pi:
Om du har ett tangentbord och en bildskärm ansluten till Raspberry Pi kan du använda Raspbian GUI för att komma åt ett terminalfönster.
Få åtkomst till kommandoraden på Raspberry Pi med hjälp av SSH från datorn.
Använda ett terminalfönster i GUI
Standardautentiseringsuppgifterna för Raspbian är användarnamnet pi och lösenordet raspberry. I aktivitetsfältet i GUI kan du starta verktyget Terminal med hjälp av ikonen som ser ut som en övervakare.
Logga in med SSH
Du kan använda SSH för kommandoradsåtkomst till Raspberry Pi. Artikeln SSH (Secure Shell) beskriver hur du konfigurerar SSH på Raspberry Pi och hur du ansluter från Windows eller Linux & Mac OS.
Logga in med användarnamnet pi och lösenord raspberry.
Valfritt: Dela en mapp på Raspberry Pi
Du kan också dela en mapp på Raspberry Pi med din skrivbordsmiljö. Om du delar en mapp kan du använda din föredragna skrivbordstextredigerare (till exempel Visual Studio Code eller Sublime Text) för att redigera filer på Raspberry Pi i stället för att använda nano
eller vi
.
Om du vill dela en mapp med Windows konfigurerar du en Samba-server på Raspberry Pi. Du kan också använda den inbyggda SFTP--servern med en SFTP-klient på skrivbordet.
Aktivera SPI
Innan du kan köra exempelprogrammet måste du aktivera SPI-bussen (Serial Peripheral Interface) på Raspberry Pi. Raspberry Pi kommunicerar med BME280-sensorenheten över SPI-bussen. Använd följande kommando för att redigera konfigurationsfilen:
sudo nano /boot/config.txt
Hitta raden:
#dtparam=spi=on
Om du vill avkommentara raden tar du bort
#
i början.Spara ändringarna (Ctrl-O, Retur) och avsluta redigeraren (Ctrl-X).
Starta om Raspberry Pi för att aktivera SPI. När Raspberry Pi startas om kopplas terminalen från, och du måste logga in igen när den har startat om.
sudo reboot
Ladda ned och konfigurera exemplet
Nu kan du ladda ned och konfigurera fjärrövervakningsklientprogrammet på Raspberry Pi.
Installera Node.js
Om du inte redan har gjort det installerar du Node.js på Raspberry Pi. IoT SDK för Node.js kräver version 0.11.5 av Node.js eller senare. Följande steg visar hur du installerar Node.js v6.10.2 på Raspberry Pi:
Använd följande kommando för att uppdatera Raspberry Pi:
sudo apt-get update
Använd följande kommando för att ladda ned Node.js binärfiler till Raspberry Pi:
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
Använd följande kommando för att installera binärfilerna:
sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
Använd följande kommando för att kontrollera att du har installerat Node.js v6.10.2:
node --version
Klona lagringsplatserna
Om du inte redan har gjort det klonar du de nödvändiga lagringsplatserna genom att köra följande kommandon på din Pi:
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git
Uppdatera enhetsanslutningssträngen
Öppna exempelkonfigurationsfilen i nano-redigeraren med följande kommando:
nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/config/deviceinfo
Ersätt platshållarvärdena med enhets-ID och IoT Hub-information som du skapade och sparade i början av den här självstudien.
När du är klar bör innehållet i deviceinfo-filen se ut som i följande exempel:
yourdeviceid
HostName=youriothubname.azure-devices.net;DeviceId=yourdeviceid;SharedAccessKey=yourdevicekey
Spara ändringarna (Ctrl-O, Retur) och avsluta redigeraren (Ctrl-X).
Kör exemplet
Kör följande kommandon för att installera de nödvändiga paketen för exemplet:
cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advance/1.0
npm install
Nu kan du köra exempelprogrammet på Raspberry Pi. Ange kommandot:
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/1.0/remote_monitoring.js
Följande exempelutdata är ett exempel på utdata som visas i kommandotolken på Raspberry Pi:
Tryck Ctrl-C- för att avsluta programmet när som helst.
Visa telemetrin
Raspberry Pi skickar nu telemetri till fjärrövervakningslösningen. Du kan visa telemetrin på lösningsinstrumentpanelen. Du kan också skicka meddelanden till Raspberry Pi från instrumentpanelen för lösningen.
- Gå till lösningsöversikten.
- Välj enheten i listrutan Enhet för att visa.
- Telemetrin från Raspberry Pi visas på instrumentpanelen.
Initiera uppdateringen av inbyggd programvara
Uppdateringsprocessen för inbyggd programvara laddar ned och installerar en uppdaterad version av enhetsklientprogrammet på Raspberry Pi. Mer information om uppdateringsprocessen för inbyggd programvara finns i beskrivningen av uppdateringsmönstret för inbyggd programvara i Översikt över enhetshantering med IoT Hub.
Du initierar uppdateringsprocessen för den inbyggda programvaran genom att anropa en metod på enheten. Den här metoden är asynkron och returneras så snart uppdateringsprocessen börjar. Enheten använder rapporterade egenskaper för att meddela lösningen om förloppet för uppdateringen.
Du anropar metoder på Raspberry Pi från lösningsinstrumentpanelen. När Raspberry Pi först ansluter till fjärrövervakningslösningen skickar den information om de metoder som stöds.
På lösningens instrumentpanel klickar du på Enheter för att gå till sidan Enheter. Välj Raspberry Pi i -enhetslistan. Välj sedan metoder:
På sidan Invoke Method väljer du InitiateFirmwareUpdate i listrutan Method.
I fältet FWPackageURI anger du https://raw.githubusercontent.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit/master/advanced/2.0/raspberry.js. Den här filen innehåller implementeringen av version 2.0 av den inbyggda programvaran.
Välj InvokeMethod. Appen på Raspberry Pi skickar en bekräftelse tillbaka till instrumentpanelen för lösningen. Sedan startar uppdateringen av den inbyggda programvaran genom att ladda ned den nya versionen av den inbyggda programvaran:
Observera uppdateringsprocessen för inbyggd programvara
Du kan se uppdateringsprocessen för den inbyggda programvaran när den körs på enheten och genom att visa de rapporterade egenskaperna på instrumentpanelen för lösningen:
Du kan visa förloppet i uppdateringsprocessen på Raspberry Pi:
Anmärkning
Fjärrövervakningsappen startas om tyst när uppdateringen är klar. Använd kommandot
ps -ef
för att verifiera att det körs. Om du vill avsluta processen använder du kommandotkill
med process-ID:t.Du kan visa status för uppdateringen av den inbyggda programvaran, som rapporterats av enheten, i lösningsportalen. Följande skärmbild visar status och varaktighet för varje steg i uppdateringsprocessen och den nya versionen av inbyggd programvara:
Om du går tillbaka till instrumentpanelen kan du kontrollera att enheten fortfarande skickar telemetri efter uppdateringen av den inbyggda programvaran.
Varning
Om du lämnar fjärrövervakningslösningen igång i ditt Azure-konto debiteras du för den tid den körs. Mer information om hur du minskar förbrukningen när fjärrövervakningslösningen körs finns i Konfigurera förkonfigurerade azure IoT Suite-lösningar i demosyfte. Ta bort den förkonfigurerade lösningen från ditt Azure-konto när du har använt den.
Nästa steg
Besök Azure IoT Dev Center- för fler exempel och dokumentation om Azure IoT.