Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Komponenten und Zubehör

Arduino MKR NB 1500 × 1
Micro-USB-zu-USB-Kabel × 1
3,7 V LiPo-Akku × 1
Micro-SIM-Karte × 1

Apps und Onlinedienste

Über dieses Projekt

Hinweis: Dieses Tutorial könnte veraltet sein. Eine aktuellere Version finden Sie hier.

Einführung

Azure IoT Hub ermöglicht es, Milliarden von Geräten sicher zu verbinden, zu überwachen und zu verwalten, um Internet-of-Things-Anwendungen (IoT) zu entwickeln.

Geräte können über die Protokolle HTTPS, AMQP und MQTT eine Verbindung zu Azure IoT Hub herstellen. Azure stellt SDKs für viele Programmiersprachen bereit, die diese Protokolle abstrahieren. Zusätzlich können Sie über einen MQTT-Client eine Verbindung herstellen. Weitere Informationen zur MQTT-Unterstützung von IoT Hub finden Sie hier.

In diesem Tutorial erfahren Sie, wie Sie ein Arduino MKR NB 1500 Board sicher über einen MQTT-Client mit Azure IoT Hub verbinden. MQTT (Message Queuing Telemetry Transport) ist ein M2M-Konnektivitätsprotokoll (Machine-to-Machine), das einen Messaging-Abonnement- und Publish-Transport bereitstellt.

Für die Authentifizierung bei Azure IoT Hub können Geräte SAS-Token oder X.509-Zertifikate verwenden. In diesem Tutorial nutzen wir ein X.509-Zertifikat zur Authentifizierung des Boards.

Jedes Arduino MKR Board mit integrierter Konnektivität – einschließlich des MKR NB 1500 – ist mit einem Microchip ATECC508A oder ATECC608A Kryptoelement ausgestattet. Dieses Element kann einen 256-Bit-ECC-Schlüssel (Elliptic Curve Cryptography) sicher generieren und speichern.

Software- und Hardware-Setup

Falls die Arduino IDE noch nicht installiert ist, laden Sie sie herunter und installieren Sie sie.

Stellen Sie sicher, dass das neueste Paket Arduino SAMD Boards installiert ist. Öffnen Sie dazu in der Arduino IDE Werkzeuge → Board: „…“ → Boardverwalter… und suchen Sie nach Arduino SAMD. Zum Zeitpunkt der Erstellung war Version 1.6.20 die aktuelle.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Installieren Sie als Nächstes die benötigten Bibliotheken über den Bibliotheksverwalter der Arduino IDE (Sketch → Bibliothek einbinden → Bibliotheken verwalten…). Suchen Sie nach und installieren Sie jeweils:

Legen Sie die Micro-SIM-Karte in den Slot auf der Unterseite des MKR NB 1500 ein und verbinden Sie den 3,7 V LiPo-Akku mit dem JST-Anschluss. Schließen Sie das Board dann per Micro-USB-Kabel an Ihren Computer an. Wählen Sie in der Arduino IDE unter Werkzeuge → Port „…“ den seriellen Port und unter Werkzeuge → Board „…“ das Board Arduino MKR NB 1500 aus.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Board in Azure IoT Hub konfigurieren und hinzufügen

Wie erwähnt, erlaubt Azure IoT Hub Geräten, die das MQTT-Protokoll verwenden und sich per X.509-Zertifikat authentifizieren. Wir erzeugen ein selbstsigniertes X.509-Zertifikat auf dem Board und fügen dessen SHA1-Fingerprint im Azure IoT Hub Portal hinzu.

Das selbstsignierte Zertifikat kann mit einem Beispiel-Sketch aus der ArduinoECCX08-Bibliothek generiert werden. Öffnen Sie ihn in der Arduino IDE über Datei → Beispiele → ArduinoECCX08 → Tools → ECCX08SelfSignedCert. Klicken Sie auf Hochladen, um den Sketch zu kompilieren und auf das Board zu laden. Öffnen Sie anschließend den Serial Monitor und stellen Sie die Zeilenende-Konfiguration auf Both NL & CR ein.

Der Sketch fordert Sie auf, das ATECC508A/ECC608A Kryptoelement dauerhaft zu konfigurieren und zu sperren, falls es noch nicht konfiguriert ist. Hinweis: Dieser Sperrvorgang ist permanent und irreversibel, aber notwendig, um das Kryptoelement zu nutzen. Die Konfiguration erlaubt die Verwendung von 5 privaten Schlüsselslots (0–4) mit beliebigen Cloud-Anbietern (oder Servern); ein privater Schlüssel kann für jeden der 5 Slots jederzeit neu generiert werden. Ausgeliefert wird das Kryptoelement im unkonfigurierten und entsperrten Zustand.

Anschließend werden Sie nach Informationen für das selbstsignierte Zertifikat gefragt: Ausstellungsjahr, -monat, -tag und -stunde sowie die Gültigkeitsdauer in Jahren. Für dieses Tutorial verwenden wir Slot 0 zum Generieren und Speichern des privaten Schlüssels, der das Zertifikat signiert (Slots 1–4 können für zusätzliche private Schlüssel genutzt werden). Slot 8 speichert das Ausstellungs- und Ablaufdatum sowie die Signatur des Zertifikats. Wichtig: Da der private Schlüssel im Kryptoelement generiert wird, verlässt er das Gerät nie, wird sicher gespeichert und kann nicht ausgelesen werden.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Kopieren Sie den generierten SHA1-Wert (im Screenshot: 99d6d96fa55bdf08b4040a142a8d0d934bc9d12b). Er wird später als Fingerprint für das selbstsignierte Zertifikat des Geräts in Azure IoT Hub benötigt.

Nun melden Sie sich im Azure IoT Hub Portal an und erstellen ein neues Gerät:

  1. Öffnen Sie portal.azure.com im Browser.
  2. Falls Sie kein Azure-Konto haben, klicken Sie auf Create one! und erstellen Sie eines. Andernfalls melden Sie sich an.
  3. Klicken Sie links im Navigationsbereich auf Ressource erstellen.
  4. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  5. Wählen Sie Internet of Things und dann IoT Hub.
  6. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  7. Geben Sie Subscription, Ressourcengruppe, Region und IoT Hub Name an. Im Screenshot wurden Free Trial, MKR, East US und ArduinoProjectHubTutorial verwendet. Klicken Sie auf Überprüfen + erstellen.
  8. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  9. Bestätigen Sie mit Erstellen.
  10. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  11. Warten Sie einige Minuten, bis der IoT Hub bereitgestellt ist.
  12. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  13. Nach Abschluss klicken Sie auf Zu Ressource wechseln.
  14. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  15. Klicken Sie unter Erkunden auf IoT-Geräte.
  16. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  17. Klicken Sie auf Hinzufügen, um ein neues Gerät anzulegen.
  18. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  19. Geben Sie einen Gerätenamen ein (im Beispiel MyMKRNB1500), wählen Sie den Reiter X.509 Self-Signed und fügen Sie den SHA1-Wert aus dem Serial Monitor sowohl als Primary Thumbprint als auch als Secondary Thumbprint ein. Klicken Sie auf Speichern.
  20. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden
  21. Das neue Gerät erscheint nun in der Liste.
  22. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Board mit Azure IoT Hub verbinden

  1. Öffnen Sie in der Arduino IDE den Sketch Azure IoT Hub NB über Datei → Beispiele → Arduino Cloud Provider Examples → AzureIoTHub → Azure_IoT_Hub_NB.
  2. Im Tab arduino_secrets.h tragen Sie die PIN der SIM-Karte ein (falls erforderlich):
    // NB settings
    #define SECRET_PINNUMBER ""
  3. Aktualisieren Sie den Broker-Wert mit dem Endpunkt aus dem Azure IoT Hub Portal:
    // Fill in the hostname of your Azure IoT Hub broker
    #define SECRET_BROKER ".azure-devices.net"
  4. Tragen Sie die Geräte-ID ein, die Sie im Portal erstellt haben:
    // Fill in the device id
    #define SECRET_DEVICE_ID ""
  5. Laden Sie den Sketch auf das Board hoch und öffnen Sie den Serial Monitor. Das Board verbindet sich mit dem Mobilfunknetz und versucht anschließend, per MQTT eine Verbindung zu Azure IoT Hub herzustellen.
  6. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Mit dem Board in Azure IoT Core interagieren

Nachdem das Board erfolgreich verbunden ist, können Sie über das Azure IoT Hub Portal mit ihm kommunizieren. Der Sketch sendet alle 5 Sekunden eine Nachricht an das Topic devices/{deviceId}/messages/events/ und lauscht auf dem Topic devices/{deviceId}/messages/devicebound/#.

Klicken Sie im Portal in der IoT-Geräte-Tabelle auf die Zeile Ihres Geräts und dann in der Symbolleiste auf Message to device.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Geben Sie einen Nachrichtentext ein (z. B. Hello there :)) und klicken Sie auf Send Message.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Der Serial Monitor in der Arduino IDE zeigt die empfangene Nachricht an.

Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Um die vom Board gesendeten Nachrichten anzuzeigen:

  1. Melden Sie sich bei shell.azure.com an (beim ersten Mal Bash wählen).
  2. Installieren Sie die IoT Hub Extension:
    az extension add --name azure-cli-iot-ext
  3. Führen Sie folgenden Befehl aus (ersetzen Sie <hub name> durch Ihren Hub-Namen; bei Abfrage nach Abhängigkeitsupdate mit y bestätigen):
    az iot hub monitor-events --hub-name 
  4. Die Nachrichten werden in der Shell angezeigt:
  5. Arduino MKR NB 1500 sicher mit Azure IoT Hub verbinden

Fazit

In diesem Tutorial haben wir gezeigt, wie ein Arduino MKR NB 1500 Board sicher mit Azure IoT Hub verwendet wird. Ein selbstsigniertes X.509-Zertifikat authentifiziert das Board über MQTT, wobei der zugehörige private Schlüssel im ATECC508A bzw. ATECC608A sicher gespeichert bleibt. MQTT-Nachrichten wurden in beide Richtungen ausgetauscht.

Dies ist erst der Anfang – Azure IoT Hub lässt sich mit vielen weiteren Azure-Diensten kombinieren!

Code

GitHub-Repository: https://github.com/arduino/ArduinoCloudProviderExamples

Herstellungsprozess

  1. Wie IoT und 5G moderne Arbeitsplätze transformieren
  2. Arduino launcht Portenta H7: Industrial-Grade IoT Board Debutiert auf CES
  3. Azure RTOS erweitert Support über führende Embedded-Plattformen mit neuen Development Kits
  4. Raspberry Pi 3 mit DHT11 verbinden und Daten an ThingsIo.ai Cloud hochladen
  5. Azure vs. AWS: Welche Cloud-Plattform gewinnt für IoT?
  6. GPS-Datenlogger mit räumlicher Analyse auf Azure IoT Hub
  7. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  8. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  9. IoT-Solartracker: Intelligentes Energiemanagement mit Arduino Mega
  10. Azure IoT Schwimmbadsteuerung: Smarte Sensoren & Fernüberwachung