Dela via


Anslut Raspberry Pi 3 till fjärrövervakningslösningen och aktivera uppdateringar av inbyggd programvara med hjälp av C

Den här självstudien visar hur du använder Microsoft Azure IoT Starter Kit för Raspberry Pi 3 för att:

  • Utveckla en temperatur- och luftfuktighetsläsare som kan kommunicera med molnet.
  • Aktivera och utföra en fjärruppdatering av inbyggd programvara för att uppdatera klientprogrammet på Raspberry Pi.

I självstudien används:

  • Raspbian OS, programmeringsspråket C och Microsoft Azure IoT SDK för C för att implementera en exempelenhet.
  • Den förkonfigurerade lösningen för fjärrövervakning i IoT Suite som den molnbaserade serverdelen.

Översikt

I den här självstudien går du igenom följande steg:

  • 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 för att kommunicera 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å lösningens instrumentpanel.
  • Använd exempelenhetskoden för att uppdatera klientprogrammet.

Förutsättningar

Du behöver en aktiv Azure-prenumeration för att kunna utföra stegen i den här självstudiekursen.

Anteckning

Om du inte har något konto kan du skapa ett kostnadsfritt utvärderingskonto på bara några minuter. Mer information om den kostnadsfria utvärderingsversionen av Azure finns Kostnadsfri utvärderingsversion av Azure.

Programvara som krävs

Du behöver en SSH-klient 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 Använda Linux eller Mac OS.

Nödvändig maskinvara

En stationär dator som gör att du kan 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 USB Mini-kabel
  • En Ethernet-kabel
  • BME280-sensor
  • Skärbräda
  • Bygeltrådar
  • Motstånd
  • Lysdioder

Etablera lösningen

Om du inte redan har etablerat den förkonfigurerade lösningen för fjärrövervakning i ditt konto:

  1. Logga in på azureiotsuite.com med dina autentiseringsuppgifter för Azure-kontot och klicka för + att skapa en lösning.
  2. Klicka på Välj på panelen Fjärrövervakning.
  3. Ange ett lösningsnamn för den förkonfigurerade lösningen för fjärrövervakning.
  4. Välj den region och prenumeration som du vill använda för att etablera lösningen.
  5. Klicka på Skapa lösning för att påbörja etableringen. Den här processen tar normalt flera minuter.

Vänta tills etableringsprocessen har slutförts

  1. Klicka på ikonen för din lösning med statusen Etablerar.
  2. Observera etableringsstatusen när Azure-tjänsterna distribueras i din Azure-prenumeration.
  3. När etableringen har slutförts ändras statusen till Klar.
  4. Klicka på ikonen så ser du informationen om din lösning i den högra rutan.

Anteckning

Om det uppstår några problem när du distribuerar den förkonfigurerade lösningen kan du läsa Behörigheter på webbplatsen azureiotsuite.com och Vanliga frågor och svar. Om problemen kvarstår så skapa en tjänstbiljett på portalen.

Finns det något som du förväntar dig att se men som inte visas för din lösning? Lämna förslag på funktioner i User Voice.

Varning

Fjärrövervakningslösningen etablerar en uppsättning Azure-tjänster i din Azure-prenumeration. Distributionen å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

På 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.

  1. När etableringen har slutförts och panelen för din förkonfigurerade lösning visar statusen Klar klickar du på Starta så öppnas portalen för fjärrövervakningslösningen på en ny flik.

    Starta den förkonfigurerade lösningen

  2. Som standard visar lösningsportalen instrumentpanelen. Du kan navigera till andra delar av lösningsportalen via menyn till vänster på sidan.

    Instrumentpanel för den förkonfigurerade fjärrövervakningslösningen

Lägg 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 kan inkludera enhetsautentiseringsuppgifterna i klientprogrammet senare i den här självstudien.

Om du inte redan har gjort det lägger du till en anpassad enhet i fjärrövervakningslösningen. Utför följande steg på instrumentpanelen för lösningen:

  1. Klicka på Lägg till en enhet i det nedre vänstra hörnet på instrumentpanelen.

    Lägg till en enhet

  2. I panelen Anpassad enhet klickar du på Lägg till ny.

    Lägg till en anpassad enhet

  3. Välj Låt mig ange 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 din lösning och klicka sedan på Skapa för att etablera enheten.

    Lägg till enhets-ID

  4. Anteckna enhetens autentiseringsuppgifter (enhets-ID, IoT Hub värdnamn och enhetsnyckel). Klientprogrammet på Raspberry Pi behöver dessa värden för att ansluta till fjärrövervakningslösningen. Klicka sedan på Klar.

    Visa enhetsautentiseringsuppgifter

  5. Välj enheten i enhetslistan i lösningens instrumentpanel. Klicka sedan på Aktivera enhet i panelen Enhetsinformation. Statusen för din enhet är nu Körs. 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 paketet. 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.

Anteckning

SD-kortet som ingår i Microsoft Azure IoT Starter Kit för Raspberry Pi 3 har redan 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 för 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 LED
  • 220-Ohm resistor (röd, röd, brun)
  • BME280-sensor

Följande diagram visar hur du ansluter maskinvaran:

Maskinvarukonfiguration för Raspberry Pi

I följande tabell sammanfattas anslutningarna från Raspberry Pi till komponenterna på brödbrädan:

Raspberry Pi Skärbräda Färg
GND (stift 14) LED -ve stift (18A) Lila
GPCLK0 (stift 7) Motstånd (25A) Orange
SPI_CE0 (stift 24) CS (39A) Blue
SPI_SCLK (stift 23) SCK (36A) Gul
SPI_MISO (stift 21) SDO (37A) Vit
SPI_MOSI (stift 19) SDI (38A) Green
GND (stift 6) GND (35A) Svart
3.3 V (stift 1) 3Vo (34A) Red

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 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 som är ansluten till Raspberry Pi kan du använda Raspbian GUI för att komma åt ett terminalfönster.

  • Öppna kommandoraden på Raspberry Pi med hjälp av SSH från din dator.

Använda ett terminalfönster i GUI

Standardautentiseringsuppgifterna för Raspbian är användarnamn pi och lösenord raspberry. I aktivitetsfältet i GUI kan du starta terminalverktyget 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ö. Genom att dela 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. Om du startar om från terminalen måste du logga in igen när Raspberry Pi startas om:

    sudo reboot
    

Ladda ned och konfigurera exemplet

Nu kan du ladda ned och konfigurera fjärrövervakningsklientprogrammet på Raspberry Pi.

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-c-raspberrypi-getstartedkit.git

Uppdatera enhetens anslutningssträng

Öppna exempelkonfigurationsfilen i nano-redigeraren med följande kommando:

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

Ersätt platshållarvärdena med enhets-ID:t 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).

Skapa exemplet

Om du inte redan har gjort det installerar du nödvändiga paket för Microsoft Azure IoT Device SDK för C genom att köra följande kommandon i en terminal på Raspberry Pi:

sudo apt-get update
sudo apt-get install g++ make cmake git libcurl4-openssl-dev libssl-dev uuid-dev

Nu kan du skapa exempellösningen på Raspberry Pi:

chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/build.sh

Nu kan du köra exempelprogrammet på Raspberry Pi. Ange kommandot:

sudo ~/cmake/remote_monitoring/remote_monitoring

Följande exempelutdata är ett exempel på utdata som visas i kommandotolken på Raspberry Pi:

Utdata från Raspberry Pi-appen

Tryck på 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 lösningsinstrumentpanelen.

  • Gå till lösningens instrumentpanel.
  • Välj enheten i listrutan Enhet för att visa .
  • Telemetrin från Raspberry Pi visas på instrumentpanelen.

Visa telemetri från Raspberry Pi

Initiera uppdateringen av den inbyggda programvaran

Uppdateringen av den inbyggda programvaran 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 uppdateringen av den inbyggda programvaran genom att anropa en metod på enheten. Den här metoden är asynkron och returneras så snart uppdateringsprocessen påbörjas. Enheten använder rapporterade egenskaper för att meddela lösningen om uppdateringens förlopp.

Du anropar metoder på Raspberry Pi från instrumentpanelen för lösningen. När Raspberry Pi först ansluter till fjärrövervakningslösningen skickar den information om de metoder som stöds.

  1. På instrumentpanelen för lösningen klickar du på Enheter för att gå till sidan Enheter . Välj Raspberry Pi i enhetslistan. Välj sedan Metoder:

    Visa en lista över enheter på instrumentpanelen

  2. På sidan Anropa metod väljer du InitiateFirmwareUpdate i listrutan Metod .

  3. I fältet FWPackageURI anger du https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit/raw/master/advanced/2.0/package/remote_monitoring.zip. Den här arkivfilen innehåller implementeringen av version 2.0 av den inbyggda programvaran.

  4. Välj InvokeMethod. Appen på Raspberry Pi skickar en bekräftelse tillbaka till lösningens instrumentpanel. Sedan startar uppdateringen av den inbyggda programvaran genom att ladda ned den nya versionen av den inbyggda programvaran:

    Visa metodhistorik

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å lösningens instrumentpanel:

  1. Du kan visa förloppet för uppdateringsprocessen på Raspberry Pi:

    Visa uppdateringsstatus

    Anteckning

    Fjärrövervakningsappen startas om tyst när uppdateringen är klar. Använd kommandot ps -ef för att kontrollera att det körs. Om du vill avsluta processen använder kill du kommandot med process-ID:t.

  2. Du kan visa status för uppdateringen av den inbyggda programvaran, enligt vad 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:

    Visa jobbstatus

    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 på 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 är klar med den.

Nästa steg

Besök Azure IoT Dev Center för fler exempel och dokumentation om Azure IoT.