Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Onderdelen en benodigdheden

Arduino MKR GSM 14001
Micro-USB naar USB Kabel (Generiek)1
3.7V Lipo Batterij1
Micro SIM-kaart1
Cellulaire UF.L Antenne1

Apps en online diensten

  • Arduino IDE
  • Google Cloud IoT Core

Over dit project

Let op: Deze tutorial kan verouderd zijn, ga hier voor een actueelere versie.

Inleiding

Apparaten kunnen verbinden met GCP IoT Core via HTTP of MQTT. Deze tutorial leidt u door het proces om een Arduino MKR GSM 1400 bord veilig te verbinden met GCP IoT Core met behulp van een MQTT-client. MQTT (Message Queuing Telemetry Transport) is een M2M (machine-to-machine) connectiviteitsprotocol dat een messaging-abonnement en publiceertransport biedt.

Apparaten moeten JSON Web Tokens (JWTs) gebruiken voor authenticatie, meer informatie over JWTs vindt u in RFC 7519. GCP IoT Core ondersteunt zowel RSA als Elliptic Curve algoritmen om JSON Web Signatures (JWS) te verifiëren. Meer informatie over JWS vindt u in RFC 7515.

Elk Arduino MKR-bord met on-board connectiviteit, inclusief de MKR GSM 1400, is uitgerust met een Microchip ATECC508A of ATECC608A crypto-element. Dit crypto-element kan worden gebruikt om veilig een 256-bit ECC (Elliptic Curve Cryptography) sleutel te genereren en op te slaan. We zullen een privésleutel die opgeslagen is in het crypto-element gebruiken om de JWT te tekenen.

Software- en Hardware-instelling

Als u de Arduino IDE niet op uw computer heeft geïnstalleerd, download en installeer deze.

Zodra het geïnstalleerd is, zorg ervoor dat u het laatste "Arduino SAMD Boards"-pakket heeft geïnstalleerd. U kunt dit controleren door de Arduino IDE te openen, en het menu Tools → Board: "..." → Board Manager... te openen, en te zoeken naar "Arduino SAMD". Op het moment van schrijven was 1.6.20 de nieuwste versie.

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Vervolgens moet u de Arduino-bibliotheken installeren die gebruikt zullen worden, via de bibliotheekbeheerder van de Arduino IDE. Open het menu Sketch → Include Library → Manage Libraries..., zoek en installeer elk van de volgende bibliotheken afzonderlijk:

  • MKRGSM
  • Arduino_JSON
  • ArduinoECCX08 (versie 1.3.0 of later)
  • ArduinoMqttClient (versie 0.1.3 of later)
  • Arduino Cloud Provider Examples (versie 1.2.0 of later)

Plaats nu de micro SIM-kaart in de sleuf aan de onderkant van het MKR GSM 1400-bord, sluit de antenne aan, en bevestig de 3.7V Lipo-batterij aan de JST-connector. Plug vervolgens de MKR GSM 1400 in met de micro-USB-kabel aan uw computer, selecteer de seriële poort in de Arduino IDE via het menu Tools → Port "..." en selecteer ook Arduino MKR GSM 1400 in het menu Tools → Board "...".

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Configureren en toevoegen van het bord aan GCP IoT Core

Zoals hierboven vermeld, vereist GCP IoT Core dat apparaten die verbinden via het MQTT-protocol JWT gebruiken voor authenticatie. We zullen een sketch gebruiken om een privésleutel en publieke sleutel op het bord te genereren, en vervolgens de PEM-waarde van de publieke sleutel toevoegen aan de GCP IoT Core-console.

De privésleutel en publieke sleutel kunnen worden gegenereerd met een voorbeeldsketch uit de ArduinoECCX08-bibliotheek. Open de sketch in de Arduino IDE via File → Examples → ArduinoECCX08 → Tools → ECCX08JWSPublicKey. Klik op de knop "Upload" om de sketch te bouwen en naar uw bord te uploaden, en open vervolgens de Seriële Monitor. Zorg ervoor dat de regel-einde-configuratie ingesteld staat op "Both NL & CR."

Deze sketch zal u vragen om uw ATECC508A of ATECC608A crypto-element permanent te configureren als dit nog niet geconfigureerd en vergrendeld is. LET OP: Dit vergrendelingsproces is permanent en onomkeerbaar, maar is nodig om het crypto-element te gebruiken - de configuratie die de sketch instelt, stelt u in staat om 5 privésleutel-slots te gebruiken met elke cloud-provider (of server) en een privésleutel kan op elk moment opnieuw worden gegenereerd voor elk van de 5 privésleutel-slots (0 - 4). Wanneer het bord de fabriek verlaat, bevindt het crypto-element zich in een niet-geconfigureerde en ontgrendelde staat.

Hierna wordt u gevraagd welk slot u wilt gebruiken. Voor deze tutorial gebruiken we slot 0 om de privésleutel te genereren en op te slaan die gebruikt wordt voor een publieke sleutel (slots 1 tot 4 kunnen worden gebruikt om extra privésleutels te genereren en op te slaan indien nodig). Opmerking: Omdat de privésleutel binnen het crypto-element wordt gegenereerd, verlaat deze het apparaat nooit en wordt deze veilig opgeslagen en kan niet worden uitgelezen.

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Kopieer de gegenereerde publieke sleutelwaarde, in deze screenshot is de waarde:

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

We zullen deze in een latere stap gebruiken bij het toevoegen van het apparaat aan GCP IoT Core.

Nu we een PEM-publieke sleutel hebben, moeten we inloggen in de GCP IoT Core-console en een nieuw apparaat aanmaken.

  1. Open een webbrowser en ga naar https://cloud.google.com/ en klik op de link "Sign In" om in te loggen met uw Google ID.
  2. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  3. Zodra u bent ingelogd, klik op de knop "GO TO CONSOLE". Vervolgens ziet u het hoofddashboard.
  4. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  5. Klik op de link "CREATE" om een nieuw project aan te maken.
  6. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  7. U wordt gevraagd om een projectnaam, we gebruiken "MKR GCP Tutorial" als naam. Klik op de knop "CREATE" om door te gaan.
  8. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  9. Nadat het project is aangemaakt, krijgt u een dashboardweergave te zien.
  10. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  11. Klik nu op het menu-icoon linksboven, scroll naar de kop "BIG DATA" en klik op de link "IoT Core".
  12. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  13. U wordt gevraagd de API in te schakelen, klik op de knop "Enable API".
  14. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  15. Zodra de API is ingeschakeld, wordt u gevraagd een apparaatregister aan te maken. Klik op de knop "Create a device registry" om door te gaan.
  16. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  17. U krijgt dan een formulier te zien. Vul de "Registry ID" in, selecteer een regio. In de onderstaande screenshot werd "MKR_GCP_Tutorial" ingevuld voor de registry ID en "us-central1" geselecteerd als regio. Na het invullen van het formulier, klik op de knop "Create".
  18. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  19. U krijgt dan de details van het register te zien.
  20. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  21. Om een nieuw apparaat toe te voegen, klik op de link "Devices" in de navigatiebalk aan de linkerkant.
  22. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  23. Klik vervolgens op "+ CREATE A DEVICE" in de kop bovenaan de pagina.
  24. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding
  25. Voer de apparaatnaam in, in de onderstaande screenshot werd "MyMKRGSM1400" gebruikt. "ES256" moet geselecteerd zijn als "Public key format". Plak de PEM-publieke sleutel die eerder op het bord is gegenereerd in het tekstvak "Public key value". Klik vervolgens op de knop "Create".
  26. Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Het bord verbinden met GCP IoT Core

  1. Open de GCP IoT Core GSM-sketch in de Arduino IDE via File → Examples → Arduino Cloud Provider Examples → GoogleCloudPlatformIoTCore → GCP_IoT_Core_GSM.
  2. In het tabblad arduino_secrets.h, vul de pin (indien vereist) voor de SIM-kaart in, evenals de GPRS APN, gebruikersnaam en wachtwoord voor de cellulaire provider die u gebruikt.
// GSM instellingen
#define SECRET_PINNUMBER ""
#define SECRET_GPRS_APN "GPRS_APN" // vervang door uw GPRS APN
#define SECRET_GPRS_LOGIN "login" // vervang door uw GPRS login
#define SECRET_GPRS_PASSWORD "password" // vervang door uw GPRS wachtwoord
  1. Werk vervolgens de project-id, cloud-regio, register-id en apparaat-id waarden bij.
// Vul uw Google Cloud Platform - IoT Core info in
#define SECRET_PROJECT_ID ""
#define SECRET_CLOUD_REGION ""
#define SECRET_REGISTRY_ID ""
#define SECRET_DEVICE_ID ""

De project-id waarde kan worden gevonden door op de menubalk bovenin de GCP-console te klikken. Voor de bovenstaande stappen zijn de waarden:

#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"
  1. Upload de sketch naar uw bord en open de seriële monitor. Het bord zal proberen verbinding te maken met het cellulaire netwerk en, als dat succesvol is, proberen te verbinden met GCP IoT Core via MQTT.
Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Interactie met het bord op GCP IoT Core

Nu uw bord met succes verbonden is met GCP IoT Core, kunnen we de GCP IoT Core-console gebruiken om ermee te interacteren. De sketch stuurt elk 5 seconden een bericht naar het /devices/{deviceId}/state-onderwerp en luistert naar berichten op zowel het /devices/{deviceId}/config-onderwerp als het /devices/{deviceId}/commands/#-onderwerpen.

Klik op de apparaatpagina in de GCP IoT Core-console op de knop "SEND COMMAND".

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Een modaal venster verschijnt, waar u een bericht kunt invoeren om te verzenden. In de onderstaande screenshot werd "Hello There!" ingevoerd. Klik op de knop "SEND COMMAND" om het bericht te verzenden.

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Zodra het bord het bericht ontvangt, print het dit op de Seriële Monitor.

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

Om de berichten te bekijken die het bord verstuurt, klik op het tabblad "Configuration & state history".

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

De berichten verschijnen in Base64-gecodeerde indeling. Om de waarde te bekijken, klik op een item in de lijst en selecteer de radioknop "Text".

Arduino MKR GSM 1400 Veilig Koppelen aan Google Cloud IoT Core: Stap-voor-Stap Handleiding

In de bovenstaande screenshot stuurde het bord een "hello 464488" waarde, de 464488-waarde is het resultaat van de millis()-functie op het bord.

Conclusie

In deze tutorial hebben we behandeld hoe u een Arduino MKR GSM 1400-bord veilig kunt gebruiken met GCP IoT Core. Een ondertekende JWT werd gebruikt om te authenticeren bij GCP IoT Core met behulp van het MQTT-protocol, met de ATECC508A of ATECC608A die de privésleutel opslaat die gebruikt wordt om de JWT te tekenen. MQTT-berichten werden heen en weer gestuurd naar en van het bord.

Dit is slechts het begin, u kunt GCP IoT Core gebruiken met veel van de andere diensten die GCP biedt!

Code

Github

https://github.com/arduino/ArduinoCloudProviderExamples

Productieproces

  1. Raspberry Pi 3 verbinden met DHT11-sensor en data uploaden naar ThingsIo.ai-cloud
  2. Nauwkeurige Temperatuur- & Vochtigheidsmonitoring met SHT15 op Windows 10 IoT Core
  3. Windows 10 IoT Core Installeren op Raspberry Pi 3 Model B+: Stap-voor-stap Handleiding
  4. Bouw een Spraak-gecontroleerde Robot met Windows 10 IoT Core op Raspberry Pi 2
  5. Debuggen van het Arduino Portenta H7 Dual-Core-systeem met Segger J-Link
  6. Arduino Mega: Foto's Maken en Automatisch Uploaden naar Google Drive
  7. Real-time IoT hartslagmonitor met Arduino en MAX30100
  8. Bouw een Sensor Toren met Arduino Cloud: Temperatuur, Beweging & Gas Monitoring
  9. Azure IoT Zwembadbeheersysteem: Slimme Sensoren & Remote Monitoring
  10. ADLINK & Google Cloud collaboreren voor naadloze IoT-oplossingen
  11. IoT-gateways onder de knie krijgen: apparaten naadloos met de cloud verbinden