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

Je Arduino MKR NB 1500 veilig verbinden met Azure IoT Hub

Onderdelen en benodigdheden

OnderdeelAantal
Arduino MKR NB 15001
Micro-USB naar USB-kabel1
3,7V LiPo-accu1
Micro SIM-kaart1

Apps en online diensten

  • Arduino IDE
  • Microsoft Azure

Over dit project

Let op: Deze tutorial kan verouderd zijn. Raadpleeg deze link voor een actuele versie.

Inleiding

Azure IoT Hub stelt je in staat om miliarden apparaten veilig te verbinden, te monitoren en te beheren voor Internet of Things-toepassingen.

Apparaten kunnen verbinden via HTTPS, AMQP en MQTT. Azure biedt SDK's voor diverse programmeertalen om deze protocollen te abstraheren. Daarnaast is verbinding via een MQTT-client mogelijk. Meer informatie over MQTT-ondersteuning in IoT Hub vind je hier.

Deze tutorial laat stap voor stap zien hoe je een Arduino MKR NB 1500 veilig verbindt met Azure IoT Hub met behulp van een MQTT-client. MQTT (Message Queuing Telemetry Transport) is een M2M-connectiviteitsprotocol dat een publicatie/abonnement-transportmechanisme biedt.

Voor authenticatie bij Azure IoT Hub kunnen apparaten SAS-tokens of X.509-certificaten gebruiken. In deze tutorial gebruiken we een X.509-certificaat.

Elke Arduino MKR-board met on-board connectiviteit, inclusief de MKR NB 1500, is uitgerust met een Microchip ATECC508A of ATECC608A crypto-element. Dit element kan een 256-bits ECC-sleutel (Elliptic Curve Cryptography) veilig genereren en opslaan.

Software- en hardware-instellingen

  1. Installeer de Arduino IDE indien nog niet aanwezig.
  2. Zorg dat het pakket Arduino SAMD Boards up-to-date is: Tools → Board → Board Manager, zoek naar "Arduino SAMD". Versie 1.6.20 of nieuwer wordt aanbevolen.
  3. Installeer via de Library Manager (Sketch → Include Library → Manage Libraries) de volgende bibliotheken:
    • MKRNB
    • ArduinoBearSSL
    • ArduinoECCX08
    • ArduinoMqttClient
    • Arduino Cloud Provider Examples
  4. Plaats de micro SIM-kaart in de slot aan de onderkant van de board en sluit de 3,7V LiPo-accu aan op de JST-connector. Verbind de board via de micro-USB-kabel met je computer. Selecteer de juiste seriële poort (Tools → Port) en board (Tools → Board → Arduino MKR NB 1500).

Configureren en toevoegen van de board aan Azure IoT Hub

We genereren een zelfondertekend X.509-certificaat op de board en voegen de SHA1-vingerafdruk toe aan de Azure-portal.

  1. Open in de Arduino IDE het voorbeeld: File → Examples → ArduinoECCX08 → Tools → ECCX08SelfSignedCert. Upload de sketch en open de Serial Monitor (regel-einde: "Both NL & CR").
  2. De sketch vraagt om de ATECC508A/ATECC608A permanent te configureren en te vergrendelen als dat nog niet gebeurd is. Let op: dit proces is onomkeerbaar, maar noodzakelijk om het crypto-element te gebruiken. De configuratie stelt 5 privésleutel-slots (0-4) beschikbaar voor elke cloudprovider; sleutels kunnen opnieuw gegenereerd worden.
  3. Vervolgens wordt om certificaatgegevens gevraagde: uitgiftejaar, maand, dag, uur en geldigheidsduur in jaren. We gebruiken slot 0 voor de privésleutel en slot 8 voor de certificaatmetadata (uitgifte/vervaldatum en handtekening). De privésleutel verlaat het apparaat nooit.
  4. Kopieer de gegenereerde SHA1-waarde (bijv. 99d6d96fa55bdf08b4040a142a8d0d934bc9d12b). Deze dient als vingerafdruk voor het certificaat in Azure.

Apparaat aanmaken in Azure Portal

  1. Ga naar portal.azure.com en log in (of maak een account aan).
  2. Klik in de navigatiebalk op Create a resource → Internet of Things → IoT Hub.
  3. Vul abonnement, resourcegroep, regio en IoT Hub-naam in (bijv. "Free Trial", "MKR", "East US", "ArduinoProjectHubTutorial"). Klik op Review + Create → Create.
  4. Wacht tot de implementatie klaar is en klik op Go to resource.
  5. Onder Explore kies je IoT Devices en klik op Add.
  6. Geef een apparaatnaam op (bijv. "MyMKRNB1500"), kies het tabblad X.509 Self-Signed en plak de SHA1-waarde in zowel Primary als Secondary Thumbprint. Klik op Save.

De board verbinden met Azure IoT Hub

  1. Open de sketch: File → Examples → Arduino Cloud Provider Examples → AzureIoTHub → Azure_IoT_Hub_NB.
  2. In het tabblad arduino_secrets.h vul je de PIN-code van de SIM-kaart in (indien vereist):
    // NB settings
    #define SECRET_PINNUMBER ""
  3. Vervang de broker-waarde door het IoT Hub-eindpunt:
    // Hostname van je Azure IoT Hub broker
    #define SECRET_BROKER ".azure-devices.net"
  4. Vul het apparaat-ID in (de naam die je in de portal hebt gegeven):
    #define SECRET_DEVICE_ID ""
  5. Upload de sketch en open de Serial Monitor. De board zal verbinden met het cellulair netwerk en vervolgens via MQTT met Azure IoT Hub.

Interactie met de board via Azure IoT Hub

De sketch stuurt elk 5 seconden een bericht naar het topic devices/{deviceId}/messages/events/ en luist naar devices/{deviceId}/messages/devicebound/#.

Bericht naar het apparaat sturen

  1. In de Azure-portal klik je op het apparaat in de IoT Devices-tabel.
  2. Klik op Message to device in de werkbalk.
  3. Voer een bericht in (bijv. "Hello there :)") en klik op Send Message.
  4. De ontvangen boodschap verschijnt in de Serial Monitor van de Arduino IDE.

Berichten van het apparaat bekijken

  1. Log in op shell.azure.com (kies "Bash" bij eerste gebruik).
  2. Installeer de IoT Hub-extensie:
    az extension add --name azure-cli-iot-ext
  3. Voer uit (vervang <hubnaam>):
    az iot hub monitor-events --hub-name 
  4. De verzonden berichten verschijnen in de shell.

Conclusie

In deze tutorial heb je geleerd hoe je een Arduino MKR NB 1500 veilig verbindt met Azure IoT Hub met behulp van een zelfondertekend X.509-certificaat en MQTT. De privésleutel blijft veilig opgeslagen in het ATECC508A/ATECC608A crypto-element. Berichten worden heen en weer gestuurd.

Dit is slechts het begin: Azure IoT Hub integreert met talloze andere Azure-services voor uitgebreide IoT-oplossingen.

Code

De complete voorbeeldcode vind je op GitHub:
https://github.com/arduino/ArduinoCloudProviderExamples

Productieproces

  1. Raspberry Pi 3 verbinden met DHT11-sensor en data uploaden naar ThingsIo.ai-cloud
  2. Bouw een GPS-datalogger met ruimtelijke analyse op Azure IoT Hub
  3. Real-time IoT hartslagmonitor met Arduino en MAX30100
  4. Externe IoT-besturing van een zelfgebouwde robotarm
  5. IoT-zonnesturing: Slimme energiemanagement met Arduino
  6. Web-IoT Meter Bouwen met Arduino, Yaler en IFTTT
  7. Azure IoT Zwembadbeheersysteem: Slimme Sensoren & Remote Monitoring
  8. Arduino lanceert Portenta H7: Industriële IoT-board debuteert op CES
  9. Azure RTOS breidt uit over grote embedded platforms met nieuwe ontwikkelkits
  10. Hoe IoT en 5G Moderne Werkplekken Transformeren
  11. Azure vs AWS: Welk cloudplatform wint voor IoT?