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

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Komponenten und Materialien

Arduino MKR GSM 1400×1
Micro-USB auf USB Kabel×1
3,7 V LiPo-Akku×1
Micro-SIM-Karte×1
Mobilfunkantenne (U.FL)×1

Apps und Online-Dienste

Über dieses Projekt

Hinweis: Dieses Tutorial könnte veraltet sein. Bitte schauen Sie hier für eine aktuellere Version.

Einführung

Geräte können sich über HTTP oder MQTT mit GCP IoT Core verbinden. Dieses Tutorial zeigt, wie man ein Arduino MKR GSM 1400 Board sicher über einen MQTT-Client mit GCP IoT Core verbindet. MQTT (Message Queuing Telemetry Transport) ist ein M2M-Konnektivitätsprotokoll, das ein Publish/Subscribe-Messaging bietet.

Geräte müssen JSON Web Tokens (JWTs) zur Authentifizierung verwenden (RFC 7519). GCP IoT Core unterstützt RSA- und Elliptic-Curve-Algorithmen zur Verifizierung von JSON Web Signatures (JWS, RFC 7515).

Jedes Arduino MKR Board mit Onboard-Konnektivität, einschließlich dem MKR GSM 1400, besitzt ein Microchip ATECC508A oder ATECC608A Krypto-Element. Dieses kann einen 256-Bit-ECC-Schlüssel (Elliptic Curve Cryptography) sicher erzeugen und speichern. Wir nutzen den im Krypto-Element gespeicherten privaten Schlüssel, um das JWT zu signieren.

Software- und Hardware-Setup

Falls nicht bereits geschehen, laden Sie die Arduino IDE herunter und installieren Sie sie.

Stellen Sie sicher, dass das neueste „Arduino SAMD Boards“-Paket installiert ist. Prüfen Sie in der IDE unter Werkzeuge → Board: „…“ → Boardverwalter… nach „Arduino SAMD“. Zum Zeitpunkt der Erstellung war Version 1.6.20 aktuell.

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Installieren Sie folgende Bibliotheken über den Bibliotheksverwalter (Sketch → Bibliothek einbinden → Bibliotheken verwalten…):

Setzen Sie die Micro-SIM-Karte in den Slot auf der Unterseite des MKR GSM 1400 ein, schließen Sie die Antenne an und verbinden Sie den 3,7-V-LiPo-Akku mit dem JST-Anschluss. Verbinden Sie das Board per Micro-USB mit dem Computer, wählen Sie den seriellen Port in der IDE (Werkzeuge → Port) und das Board Arduino MKR GSM 1400 (Werkzeuge → Board).

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Board in GCP IoT Core konfigurieren und hinzufügen

Wie erwähnt, erfordert GCP IoT Core für MQTT-Verbindungen JWT-Authentifizierung. Wir nutzen einen Sketch, um ein privates und öffentliches Schlüsselpaar auf dem Board zu erzeugen und den PEM-Wert des öffentlichen Schlüssels in der GCP IoT Core Console hinzuzufügen.

Der Schlüssel kann mit einem Beispielsketch aus der ArduinoECCX08-Bibliothek erzeugt werden. Öffnen Sie in der IDE: Datei → Beispiele → ArduinoECCX08 → Tools → ECCX08JWSPublicKey. Laden Sie den Sketch hoch und öffnen Sie den Serial Monitor. Stellen Sie die Zeilenende-Einstellung auf „Both NL & CR“.

Der Sketch fordert Sie auf, das ATECC508A/ECC608A Krypto-Element dauerhaft zu konfigurieren und zu sperren, falls es noch nicht konfiguriert ist. HINWEIS: Dieser Sperrvorgang ist permanent und irreversibel, aber notwendig, um das Krypto-Element zu nutzen. Die Konfiguration erlaubt 5 private Schlüsselslots (0–4) für beliebige Cloud-Anbieter; ein privater Schlüssel kann jederzeit für jeden Slot neu erzeugt werden. Ab Werk ist das Krypto-Element unkonfiguriert und entsperrt.

Anschließend werden Sie nach dem zu verwendenden Slot gefragt. Für dieses Tutorial nutzen wir Slot 0. Hinweis: Da der private Schlüssel im Krypto-Element erzeugt wird, verlässt er nie das Gerät und ist sicher gespeichert.

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Kopieren Sie den generierten öffentlichen Schlüsselwert (PEM-Format), z. B.:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4+DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzR
e2kqGWFEb+QP4V4YUK9Zy7PsmRABi1sWgxiAoEhg1FEQgg==
-----END PUBLIC KEY-----

Nun melden Sie sich in der GCP IoT Core Console an und erstellen ein neues Gerät.

  1. Gehen Sie zu cloud.google.com und melden Sie sich an.
  2. Klicken Sie auf „GO TO CONSOLE“.
  3. Erstellen Sie ein neues Projekt (z. B. „MKR GCP Tutorial“).
  4. Nach Erstellung öffnet sich das Dashboard.
  5. Klicken Sie links oben auf das Menü, scrollen Sie zu „BIG DATA“ und wählen Sie „IoT Core“.
  6. Aktivieren Sie die API („Enable API“).
  7. Erstellen Sie ein Geräte-Register („Create a device registry“).
  8. Vergeben Sie eine Registry-ID (z. B. „MKR_GCP_Tutorial“) und wählen Sie eine Region (z. B. „us-central1“).
  9. Klicken Sie auf „Create“.
  10. Im Register-Detail auf „Devices“ klicken, dann „+ CREATE A DEVICE“.
  11. Gerätenamen eingeben (z. B. „MyMKRGSM1400“), „ES256“ als Public Key Format wählen, den kopierten PEM-öffentlichen Schlüssel einfügen und „Create“ klicken.
Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Board mit GCP IoT Core verbinden

  1. Öffnen Sie in der IDE: Datei → Beispiele → Arduino Cloud Provider Examples → GoogleCloudPlatformIoTCore → GCP_IoT_Core_GSM.
  2. Im Tab arduino_secrets.h die SIM-PIN (falls erforderlich), GPRS APN, Benutzername und Passwort Ihres Mobilfunkanbieters eintragen.
// GSM settings
#define SECRET_PINNUMBER ""
#define SECRET_GPRS_APN "GPRS_APN"
#define SECRET_GPRS_LOGIN "login"
#define SECRET_GPRS_PASSWORD "password"
  1. Projekt-ID, Cloud-Region, Registry-ID und Geräte-ID eintragen.
#define SECRET_PROJECT_ID "mkr-gcp-tutorial"
#define SECRET_CLOUD_REGION "us-central1"
#define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"
#define SECRET_DEVICE_ID "MyMKRGSM1400"

Die Projekt-ID finden Sie in der GCP Console im Menü oben.

  1. Sketch hochladen und Serial Monitor öffnen. Das Board verbindet sich mit dem Mobilfunknetz und versucht, über MQTT mit GCP IoT Core zu verbinden.
Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Mit dem Board in GCP IoT Core interagieren

Der Sketch sendet alle 5 Sekunden eine Nachricht an das Topic /devices/{deviceId}/state und lauscht auf /devices/{deviceId}/config sowie /devices/{deviceId}/commands/#.

In der Geräteseite der GCP Console auf „SEND COMMAND“ klicken, eine Nachricht eingeben (z. B. „Hello There!“) und senden. Das Board empfängt sie und gibt sie im Serial Monitor aus.

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung
Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Gesendete Nachrichten sehen Sie unter „Configuration & state history“. Sie sind Base64-kodiert; klicken Sie auf einen Eintrag und wählen Sie „Text“, um den Inhalt zu sehen.

Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung
Arduino MKR GSM 1400 sicher mit Google Cloud IoT Core verbinden – Schritt-für-Schritt-Anleitung

Im Beispiel sendete das Board „hello 464488“, wobei 464488 der Wert von millis() ist.

Fazit

In diesem Tutorial haben wir gezeigt, wie man ein Arduino MKR GSM 1400 Board sicher mit GCP IoT Core nutzt. Ein signiertes JWT authentifiziert über MQTT, wobei der private Schlüssel im ATECC508A/ATECC608A gespeichert ist. MQTT-Nachrichten wurden in beide Richtungen ausgetauscht.

Das ist erst der Anfang – Sie können GCP IoT Core mit vielen anderen GCP-Diensten kombinieren!

Code

GitHub Repository

ArduinoCloudProviderExamples

Herstellungsprozess

  1. ADLINK & Google Cloud kooperieren für nahtlose IoT-Lösungen
  2. Raspberry Pi 3 mit DHT11 verbinden und Daten an ThingsIo.ai Cloud hochladen
  3. Präzise Temperatur- & Feuchtigkeitsüberwachung mit SHT15 unter Windows 10 IoT Core
  4. Windows 10 IoT Core auf Raspberry Pi 3 Model B+ installieren – Schritt-für-Schritt
  5. Sprachgesteuerter Roboter mit Windows 10 IoT Core auf Raspberry Pi 2 bauen
  6. Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
  7. Arduino Mega: Fotos aufnehmen & automatisch in Google Drive hochladen
  8. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  9. Azure IoT Schwimmbadsteuerung: Smarte Sensoren & Fernüberwachung
  10. IoT-Gateways meistern: Geräte nahtlos mit der Cloud verbinden