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

Sicheres Verbinden eines Arduino NB 1500 mit Azure IoT Hub

Komponenten und Verbrauchsmaterialien

Arduino MKR NB 1500
× 1
Mikro-USB-auf-USB-Kabel (generisch)
× 1
3,7-V-Lipo-Akku
× 1
Micro-SIM-Karte
× 1

Apps und Onlinedienste

Arduino-IDE
Microsoft Azure

Über dieses Projekt

Hinweis:Dieses Tutorial könnte veraltet sein, bitte gehen Sie hier für eine aktuellere Version.

Einführung

Mit Azure IoT Hub können Sie „Milliarden von Geräten sicher verbinden, überwachen und verwalten, um Anwendungen für das Internet der Dinge (IoT) zu entwickeln.“

Geräte können über die folgenden Protokolle eine Verbindung mit Azure IoT Hub herstellen:HTTPS, AMPQ und MQTT – Azure stellt auch SDKs für viele Programmiersprachen bereit, um diese Protokolle zu abstrahieren. Darüber hinaus können Sie sich über einen MQTT-Client mit IoT Hub verbinden. Auf dieser Seite finden Sie weitere Informationen zur MQTT-Unterstützung von IoT Hub.

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

Geräte können SAS-Token oder X.509-Zertifikate für die Authentifizierung bei Azure IoT Hub verwenden, weitere Informationen finden Sie hier. In diesem Tutorial verwenden wir ein X.509-Zertifikat, um das Board zu authentifizieren.

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

Software- und Hardware-Setup

Wenn Sie die Arduino IDE nicht auf Ihrem Computer installiert haben, laden Sie sie herunter und installieren Sie sie.

Stellen Sie nach der Installation sicher, dass Sie das neueste Paket "Arduino SAMD Boards" installiert haben. Sie können dies überprüfen, indem Sie die Arduino IDE öffnen und die Tools -> Board:"..." -> Board Manager... öffnen Menüeintrag und suchen Sie nach "Arduno SAMD". Zum Zeitpunkt des Schreibens war 1.6.20 die neueste Version.

Als nächstes müssen Sie die zu verwendenden Arduino-Bibliotheken mit dem Bibliotheksmanager der Arduino IDE installieren. Öffnen Sie die Skizze -> Bibliothek einschließen -> Bibliotheken verwalten... Menü, suchen und installieren Sie jede der folgenden Bibliotheken einzeln:

  • MKRNB
  • ArduinoBearSSL
  • ArduinoECCX08
  • ArduinoMqttClient
  • Beispiele für Arduino Cloud-Anbieter

Stecken Sie nun die Micro-SIM-Karte in den Slot an der Unterseite des MKR NB 1500 Boards und stecken Sie den 3,7V Lipo Akku in den JST Anschluss. Stecken Sie dann den MKR NB 1500 mit dem Micro-USB-Kabel an Ihren Computer, wählen Sie den seriellen Port in der Arduino IDE mit den Tools -> Port "..." Menü und wählen Sie auch Arduino MKR NB 1500 in den Tools -> Board "..." Menü.

Konfigurieren und Hinzufügen des Boards zu Azure IoT Hub

Wie oben erwähnt, lässt Azure IoT Hub Geräte zu, die eine Verbindung über das MQTT-Protokoll herstellen und X.509-Zertifikate für die Authentifizierung verwenden. Wir verwenden eine Skizze, um ein selbstsigniertes X.509-Zertifikat auf dem Board zu generieren und dann den SHA1 dieses Zertifikats zum Azure IoT Hub-Portal hinzuzufügen.

Das selbstsignierte Zertifikat kann mit einer Beispielskizze aus der ArduinoECCX08-Bibliothek generiert werden. Öffnen Sie die Skizze in der Arduino IDE mit Datei -> Beispiele -> ArduinoECCX08 -> Tools -> ECCX08SelfSignedCert . Klicken Sie auf die Schaltfläche "Hochladen", um die Skizze zu erstellen und auf Ihr Board hochzuladen, und öffnen Sie dann den Serial Monitor. Stellen Sie sicher, dass die Zeilenendkonfiguration auf "Both NL &CR" eingestellt ist.

Diese Skizze fordert Sie auf, Ihr Kryptoelement ATECC508A bis ECC608A dauerhaft zu konfigurieren, wenn es nicht konfiguriert und gesperrt ist. HINWEIS:Dieser Sperrvorgang ist permanent und irreversibel, wird aber benötigt, um das Krypto-Element zu verwenden - die Konfiguration des Sketch-Sets ermöglicht die Verwendung von 5 privaten Schlüsselslots mit jedem Cloud-Anbieter (oder Server) und ein privater Schlüssel kann jederzeit neu generiert werden für jeden von die 5 privat Schlüsselschlitze (0 - 4) . Bei Auslieferung der Platine ab Werk befindet sich das Kryptoelement in einem unkonfigurierten und entsperrten Zustand.

Danach werden Sie aufgefordert, Informationen für das selbstsignierte Zertifikat einzugeben, darunter das Ausstellungsjahr, den Monat, den Tag und die Stunde des Zertifikats sowie die Ablauffrist in Jahren. Für dieses Tutorial verwenden wir Slot 0, um den privaten Schlüssel zu generieren und zu speichern, der zum Signieren des selbstsignierten Zertifikats verwendet wird (die Slots 1 bis 4 können verwendet werden, um bei Bedarf zusätzliche private Schlüssel zu generieren und zu speichern) - dann wird Slot 8 verwendet, um speichern Sie das Ausstellungs- und Ablaufdatum des Zertifikats zusammen mit seiner Unterschrift. Hinweis: Da der private Schlüssel innerhalb des Kryptoelements generiert wird, verlässt er das Gerät nie und wird sicher gespeichert und kann nicht gelesen werden.

Kopieren Sie den generierten SHA1-Wert (in diesem Screenshot "99d6d96fa55bdf08b4040a142a8d0d934bc9d12b ." "). Wir werden es in einem späteren Schritt als Fingerabdruck für das selbstsignierte Zertifikat für das Gerät in Azure IoT Hub verwenden.

Da wir nun über ein selbstsigniertes Zertifikat und den SHA1-Fingerabdruck zur Identifizierung des Boards verfügen, müssen wir uns beim Azure IoT Hub-Portal anmelden und ein neues Gerät dafür erstellen.

1) Öffnen Sie einen Webbrowser und gehen Sie zu portal.azure.com.

2) Wenn Sie noch kein Azure-Konto haben, klicken Sie auf "Eins erstellen!" Link auf der Seite, um ein Konto zu erstellen. Geben Sie andernfalls Ihre E-Mail-Adresse ein und klicken Sie auf "Weiter" und folgen Sie dem Anmeldevorgang.

3) Klicken Sie im Navigationsbereich links auf "Ressource erstellen".

4) Klicken Sie dann auf „Internet der Dinge“ und „IoT Hub“.

5) Sie werden aufgefordert, ein Abonnement, eine Ressourcengruppe, eine Region und einen IoT Hub-Namen auszuwählen. Im Screenshot unten wurden "Free Trial", "MKR", "East US" und "ArduinoProjectHubTutorial" als Eingabe verwendet. Klicken Sie auf "Überprüfen + erstellen", um fortzufahren.

6) Ein Bestätigungsbildschirm wird angezeigt, klicken Sie auf "Erstellen".

7) Sie müssen einige Minuten warten, bis der IoT Hub erstellt und bereitgestellt wurde.

8) Sobald die Bereitstellung abgeschlossen ist, wird eine Schaltfläche "Gehe zu Ressource" angezeigt, klicken Sie darauf.

9) Jetzt können wir ein neues IoT-Gerät erstellen, klicken Sie unter der Überschrift "Erkunden" auf "IoT-Geräte".

10) Klicken Sie auf die Schaltfläche "Hinzufügen", um ein neues Gerät hinzuzufügen.

11) Geben Sie einen Namen für das Gerät ein, darunter wurde "MyMKRNB1500" eingegeben, dann klicken Sie auf die Registerkarte "X.509 Self-Signed". Fügen Sie den SHA1 vom seriellen Monitor der Arduino IDE sowohl für den primären als auch für den sekundären Fingerabdruck ein. Klicken Sie dann auf die Schaltfläche "Speichern", um das Gerät zu erstellen.

12) Sie sehen nun einen neuen Eintrag auf der Seite IoT-Geräte.

Verbinden des Boards mit Azure IoT Hub

1) Öffnen Sie die Azure IoT Hub NB-Skizze in der Arduino IDE mit Datei -> Beispiele -> Arduino Cloud Provider Beispiele -> AzureIoTHub-> Azure_IoT_Hub_NB.

2) Geben Sie auf der Registerkarte arduino_secrets.h die PIN (falls erforderlich) für die SIM-Karte ein.

// NB-Einstellungen#define SECRET_PINNUMBER "" 

3) Aktualisieren Sie den Brokerwert mit dem Endpunkt, der im Azure IoT Hub-Portal erstellt wurde.

// Geben Sie den Hostnamen Ihres Azure IoT Hub-Brokers ein#define SECRET_BROKER ".azure-devices.net" 

4) Aktualisieren Sie den Geräte-ID-Wert mit dem Namen des Geräts, das Sie im Azure IoT Hub-Portal erstellt haben.

// Geben Sie die Geräte-ID ein#define SECRET_DEVICE_ID "" 

5) Laden Sie die Skizze auf Ihr Board hoch und öffnen Sie den seriellen Monitor. Das Board versucht, eine Verbindung zum Mobilfunknetz herzustellen, und bei Erfolg versuchen Sie, mithilfe von MQTT eine Verbindung zu Azure IoT Hub herzustellen.

Interaktion mit dem Vorstand auf Azure IoT Core

Nachdem Ihr Board nun erfolgreich mit Azure IoT Hub verbunden wurde, können wir das Azure IoT Hub-Portal verwenden, um damit zu interagieren. Der Sketch sendet eine Nachricht an die devices/{deviceId}/messages/events/ Thema alle 5 Sekunden und lauscht auf Nachrichten auf den devices/{deviceId}/messages/devicebound/# Thema.

Klicken Sie im Azure IoT Hub-Portal auf die Geräte-ID-Zeile in der Tabelle IoT-Geräte für Ihr Board. Klicken Sie dann in der Symbolleiste auf die Schaltfläche "Nachricht an Gerät".

Sie können jetzt einen Nachrichtentext eingeben, der an das Gerät gesendet werden soll, im Screenshot unten "Hallo :) " eingegeben wurde. Klicken Sie in der Symbolleiste auf die Schaltfläche "Nachricht senden", um die Nachricht zu senden.

Wenn das Board die Nachricht empfängt, zeigt der Serial Monitor in der Arduino IDE sie an.

Um die Nachrichten anzuzeigen, die das Board sendet:

1) Melden Sie sich bei shell.azure.com an (wählen Sie "Bash", wenn Sie zum ersten Mal dazu aufgefordert werden).

2) Installieren Sie die IoT Hub-Erweiterung:

az-Erweiterung hinzufügen --name azure-cli-iot-ext 

3) Führen Sie den folgenden Befehl aus, ersetzen Sie mit dem Namen Ihres Hubs (geben Sie y ein, wenn Sie zur Aktualisierung der Abhängigkeit aufgefordert werden):

az iot hub monitor-events --hub-name   

4) Sie werden Nachrichten in der Shell sehen:

Fazit

In diesem Tutorial haben wir behandelt, wie Sie ein Arduino MKR NB 1500-Board sicher mit Azure IoT Hub verwenden. Ein selbstsigniertes X.509-Zertifikat wurde verwendet, um sich bei Azure IoT Hub mithilfe des MQTT-Protokolls zu authentifizieren, wobei der ATECC508A oder ATECC608A den mit dem Zertifikat verknüpften privaten Schlüssel speichert. MQTT-Nachrichten wurden zum und vom Board gesendet.

Dies ist erst der Anfang. Sie können Azure IoT Hub mit vielen anderen Diensten von Azure verwenden!

Code

Github
https://github.com/arduino/ArduinoCloudProviderExamples

Herstellungsprozess

  1. Wie das IoT Arbeitsplätze verbindet
  2. Arduino-Board zielt auf industrielles IoT ab
  3. Entwicklungskits unterstützen Azure RTOS
  4. Raspberry PI-basiertes IoT-Projekt zum Verbinden des DHT11-Sensors
  5. IoT in der Cloud:Azure vs. AWS
  6. GPS-Datenlogger, räumliche Analyse und Azure IoT Hub.
  7. Herzfrequenzmesser mit IoT
  8. Einsatz des IoT zur Fernsteuerung eines Roboterarms
  9. Internet der Dinge (IoT)-basierter Solartracker
  10. Azure IoT Swimming Pool