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

Ein MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden

Komponenten und Verbrauchsmaterialien

Arduino MKR GSM 1400
× 1
Mikro-USB-auf-USB-Kabel (generisch)
× 1
3,7-V-Lipo-Akku
× 1
Micro-SIM-Karte
× 1
Mobile UF.L-Antenne
× 1

Apps und Onlinedienste

Arduino-IDE
Google Cloud IoT Core

Über dieses Projekt

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

Einführung

Geräte können über HTTP oder MQTT eine Verbindung mit GCP IoT Core herstellen. In diesem Tutorial erfahren Sie, wie Sie ein Arduino MKR GSM 1400-Board mithilfe eines MQTT-Clients sicher mit GCP IoT Core 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 müssen JSON Web Tokens (JWTs) zur Authentifizierung verwenden. Weitere Informationen zu JWTs finden Sie in RFC 7519. GCP IoT Core unterstützt sowohl RSA- als auch Elliptic Curve-Algorithmen zur Überprüfung von JSON Web Signatures (JWS). Weitere Informationen zu JWS finden Sie in RFC 7515.

Jedes Arduino MKR-Board mit On-Board-Konnektivität, einschließlich des MKR GSM 1400, 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. Wir verwenden einen privaten Schlüssel, der im Krypto-Element gespeichert ist, um das JWT zu signieren.

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:

  • MKRGSM
  • Arduino_JSON
  • ArduinoECCX08 (Version 1.3.0 oder höher)
  • ArduinoMqttClient (Version 0.1.3 oder höher)
  • Beispiele für Arduino Cloud-Anbieter (Version 1.2.0 oder höher)

Legen Sie nun die Micro-SIM-Karte in den Steckplatz auf der Unterseite des MKR GSM 1400 Boards ein, schließen Sie die Antenne an und schließen Sie den 3,7V Lipo Akku an den JST Anschluss an. Stecken Sie dann das MKR GSM 1400 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 GSM 1400 in den Tools -> Board "..." Menü.

Konfigurieren und Hinzufügen des Boards zum GCP IoT Core

Wie oben erwähnt, erfordert GCP IoT Core Geräte, die eine Verbindung über das MQTT-Protokoll herstellen, um JWT zur Authentifizierung zu verwenden. Wir verwenden eine Skizze, um einen privaten und einen öffentlichen Schlüssel auf dem Board zu generieren, und fügen dann den PEM-Wert des öffentlichen Schlüssels zur GCP IoT Core-Konsole hinzu.

Das private und das öffentliche können mit einer Beispielskizze aus der ArduinoECCX08-Bibliothek generiert werden. Öffnen Sie die Skizze in der Arduino IDE mit Datei -> Beispiele -> ArduinoECCX08 -> Tools -> ECCX08JWSPublicKey . 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 dauerhaft und irreversibel, wird jedoch benötigt, um das Krypto-Element zu verwenden - die Konfiguration, die der Sketch festlegt, ermöglicht es Ihnen, 5 private Schlüsselsteckplätze mit jedem Cloud-Anbieter (oder Server) zu verwenden, und ein privater Schlüssel kann jederzeit neu generiert werden für einen der 5 privaten Schlüsselschlitze (0 - 4) . Bei Auslieferung der Platine ab Werk befindet sich das Kryptoelement in einem unkonfigurierten und entsperrten Zustand.

Danach werden Sie nach dem zu verwendenden Steckplatz gefragt. In diesem Tutorial verwenden wir Slot 0 zum Generieren und Speichern des privaten Schlüssels, der für einen öffentlichen Schlüssel verwendet wird (die Slots 1 bis 4 können verwendet werden, um bei Bedarf zusätzliche private Schlüssel zu generieren und zu speichern). 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 öffentlichen Schlüsselwert, in diesem Screenshot lautet der Wert:

-----BEGIN PUBLIC KEY-----MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4+DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzRe2kqGWFEb+QP4V4YUK9Bis1Qgs=FEBL+QP4V4YUK9Bis1Qhs=FEBL 

Wir werden es in einem späteren Schritt verwenden, wenn das Gerät zu GCP IoT Core hinzugefügt wird.

Da wir nun über einen öffentlichen PEM-Schlüssel verfügen, müssen wir uns bei der GCP IoT Core-Konsole anmelden und ein neues Gerät dafür erstellen.

1) Öffnen Sie einen Webbrowser, gehen Sie zu https://cloud.google.com/ und klicken Sie auf den Link "Anmelden", um sich mit Ihrer Google-ID anzumelden.

2) Nachdem Sie sich eingeloggt haben, klicken Sie auf die Schaltfläche "GEHE ZU KONSOLE". Dann sehen Sie das Haupt-Dashboard.

3) Klicken Sie auf den Link "ERSTELLEN", um ein neues Projekt zu erstellen.

4) Sie werden nach einem Projektnamen gefragt, wir verwenden "MKR GCP Tutorial" für den Namen. Klicken Sie auf die Schaltfläche "ERSTELLEN", um fortzufahren.

5) Nachdem das Projekt erstellt wurde, wird Ihnen eine Dashboard-Ansicht davon angezeigt.

6) Klicken Sie nun auf das Menüsymbol oben links, scrollen Sie zur Überschrift "BIG DATA" und klicken Sie auf den Link "IoT Core".

7) Sie werden aufgefordert, die API zu aktivieren, klicken Sie auf die Schaltfläche "API aktivieren".

8) Sobald die API aktiviert ist, werden Sie aufgefordert, eine Geräteregistrierung zu erstellen. Klicken Sie auf die Schaltfläche "Geräteregistrierung erstellen", um fortzufahren.

9) Anschließend wird Ihnen ein Formular angezeigt. Tragen Sie die "Registry ID" ein, wählen Sie eine Region aus. Im Screenshot unten wurde als Registry-ID „MKR_GCP_Tutorial“ eingetragen und als Region „us-central1“ gewählt. Nachdem das Formular ausgefüllt wurde, klicken Sie auf die Schaltfläche "Erstellen".

10) Anschließend werden Ihnen Details zur Registrierung angezeigt.

11) Um ein neues Gerät hinzuzufügen, klicken Sie auf den Link "Geräte" in der Navigationsleiste auf der linken Seite.

12) Klicken Sie dann in der Überschrift oben auf der Seite auf "+ GERÄT ERSTELLEN".

13) Geben Sie den Gerätenamen ein, im Screenshot unten wurde "MyMKRGSM1400" verwendet. Als "Public-Key-Format" muss "ES256" ausgewählt werden. Fügen Sie den zuvor auf dem Board generierten öffentlichen PEM-Schlüssel in den Textbereich "Wert des öffentlichen Schlüssels" ein. Klicken Sie dann auf die Schaltfläche "Erstellen".

Verbinden des Boards mit dem GCP IoT Core

1) Öffnen Sie die GCP IoT Core GSM-Skizze in der Arduino IDE mit Datei -> Beispiele -> Arduino Cloud-Provider-Beispiele -> GoogleCloudPlatformIoTCore-> GCP_IoT_Core_GSM.

2) Geben Sie auf der Registerkarte arduino_secrets.h die PIN (falls erforderlich) für die SIM-Karte sowie den GPRS-APN, den Benutzernamen und das Passwort für den von Ihnen verwendeten Mobilfunkanbieter ein.

// GSM-Einstellungen#define SECRET_PINNUMBER ""#define SECRET_GPRS_APN "GPRS_APN" // Ersetzen Sie Ihren GPRS-APN#define SECRET_GPRS_LOGIN "login" // Ersetzen Sie durch Ihren GPRS-Login#define SECRET_GPRS_PASSWORD "password" // Ersetzen Sie durch Ihr GPRS-Passwort 

4) Aktualisieren Sie dann die Werte für Projekt-ID, Cloud-Region, Registrierungs-ID und Geräte-ID.

// Geben Sie Ihre Google Cloud Platform ein - IoT Core info#define SECRET_PROJECT_ID ""#define SECRET_CLOUD_REGION ""#define SECRET_REGISTRY_ID ""#define SECRET_DEVICE_ID "" 

Den Wert der Projekt-ID finden Sie, indem Sie oben in der GCP Console auf die Menüleiste klicken. Für die obigen Schritte sind die Werte:

#define SECRET_PROJECT_ID "mkr-gcp-tutorial"#define SECRET_CLOUD_REGION "us-central1"#define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"#define SECRET_DEVICE_ID "MyMKRGSM .1400" 

5) Laden Sie die Skizze auf Ihr Board hoch und öffnen Sie den seriellen Monitor. Das Board versucht, eine Verbindung mit dem Mobilfunknetz herzustellen und bei Erfolg eine Verbindung mit GCP IoT Core über MQTT herzustellen.

Interaktion mit dem Vorstand auf GCP IoT Core

Nachdem Ihr Board erfolgreich mit GCP IoT Core verbunden wurde, können wir die GCP IoT Core-Konsole verwenden, um damit zu interagieren. Der Sketch sendet eine Nachricht an den /devices/{deviceId}/state Thema alle 5 Sekunden und lauscht auf Nachrichten auf beiden /devices/{deviceId}/config Thema und /devices/{deviceId}/commands/# Themen.

Klicken Sie auf der Geräteseite in der GCP IoT Core Console auf die Schaltfläche "BEFEHL SENDEN".

Es erscheint ein modales Dialogfeld, in dem Sie eine zu sendende Nachricht eingeben können. Im Screenshot unten "Hallo da!" wurde ... betreten. Klicken Sie auf die Schaltfläche "BEFEHL SENDEN", ​​um die Nachricht zu senden.

Sobald das Board die Nachricht erhält, wird sie auf dem Serial Monitor ausgedruckt.

Um die Nachrichten anzuzeigen, die das Board sendet, klicke auf den Tab "Konfigurations- und Statusverlauf".

Die Nachrichten werden im Base64-codierten Format angezeigt, um den Wert anzuzeigen, klicken Sie auf und geben Sie in die Liste ein und wählen Sie das Optionsfeld "Text".

Im obigen Screenshot sendete das Board ein "Hallo 464488" Wert, der Wert 464488 ist das Ergebnis von millis() Funktion auf dem Board.

Fazit

In diesem Tutorial haben wir behandelt, wie man ein Arduino MKR GSM 1400 Board mit GCP IoT Core sicher verwendet. Ein signiertes JWT wurde verwendet, um sich bei GCP IoT Core unter Verwendung des MQTT-Protokolls zu authentifizieren, wobei der ATECC508A oder ATECC608A den privaten Schlüssel speichert, der zum Signieren des JWT verwendet wird. MQTT-Nachrichten wurden zum und vom Board gesendet.

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

Code

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

Herstellungsprozess

  1. ADLINK arbeitet mit Google Cloud zusammen, um IoT-fähige Lösungen anzubieten
  2. Raspberry PI-basiertes IoT-Projekt zum Verbinden des DHT11-Sensors
  3. Windows 10 IoT Core und SHT15
  4. Windows 10 IoT Core für Raspberry Pi 3 Model B+
  5. Windows 10 IoT Core:Sprachgesteuerter Roboter
  6. Portenta H7 Dual-Core-Debugging
  7. Arduino - Foto aufnehmen - Auf Google Drive hochladen
  8. Herzfrequenzmesser mit IoT
  9. Azure IoT Swimming Pool
  10. IoT-Gateways:Ein Leitfaden zur Verbindung von Dingen mit der Cloud