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

Programmeer MKR Over-the-Air + extra's:spraakbediening, enz.

Componenten en benodigdheden

Arduino MKR1000
Dit is nodig voor elk OTA-project. Onderstaande componenten zijn alleen nodig voor de use case / sample:de kamerthermostaat.
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 1
Relais (algemeen)
× 1
Broodplank (algemeen)
× 1

Apps en online services

Arduino IDE
Microsoft Azure
Microsoft Azure IoT Hub
Microsoft Visual Studio 2015
UWP (Universal Windows Platform) gebruiken
Microsoft Azure
Microsoft Project Oxford (API voor spraakherkenning)

Over dit project

Overzicht

Onze bijdrage bestaat uit 2 delen.

Deel 1:Een verzameling herbruikbare componenten. Ze kunnen dienen als een raamwerk voor het bouwen van verschillende IoT-projecten die gebruikmaken van handige functies:

  • Over-the-Air (OTA) programmering van de Arduino MKR1000 (d.w.z. het uploaden van de gecompileerde binaire code). Er zijn verschillende methoden beschikbaar:b.v. vanuit LAN of vanaf internet, veilig, via Microsoft Azure IoT Hub.
  • Universal Windows Platform (UWP) client-app , met een mooie gebruikersinterface. Het communiceert veilig met het bord via Azure IoT Hub.
  • Spraakherkenning (op de client-app), via de Speech Recognition API van Microsoft Project Oxford. Gesproken opdrachten kunnen worden gebruikt om het bord te besturen via Azure IoT Hub.

Deel 2: Een use case / voorbeeld, gebouwd met de bovenstaande componenten:een kamerthermostaat, bediend via de telefoon (UWP-app). We hebben het gebouwd om als voorbeeld te dienen voor het gebruik van de componenten. En we gingen nog verder:we hebben het in ons kantoor geïnstalleerd en terwijl we deze regels schrijven, wordt het verwarmingssysteem van het kantoor door dit project geregeld.

Deel 1:De herbruikbare componenten voor OTA

OTA-werkprincipe

We hebben de volgende componenten ontwikkeld:

Voor Arduino IDE:

  • een runtime bibliotheek . Het behandelt de firmware-upload en kopieermechanica.
  • een aangepast "boards"-pakket . Het heeft een paar linker-gerelateerde instellingen die de bibliotheek nodig heeft.
  • een Arduino IDE-plug-in . Het verzendt downloadsignalen en gecompileerde binaire schetsen (ook wel firmware genoemd). Het communiceert met het bord, Azure IoT Hub, de IoT-dispatcher-server-app (zie hieronder).

Te installeren op een server van een derde partij (bijv. zoals de Microsoft Azure-website):

  • IoT-verzender , een PHP + MySQL-toepassing die firmware opslaat en aanbiedt.

Werkingsprincipe UWP-app

We hebben ontwikkeld:

  • Een UWP-client-app, geschreven in C#. Het communiceert met het bord via Azure IoT Hub en herkent gesproken opdrachten via Microsoft Project Oxford. Het kan worden gebruikt als startpunt voor verschillende projecten.

OTA-DEMO

Deel 2:Use Case / Voorbeeld:Kamerthermostaat

Zoals eerder vermeld, hebben we de kamerthermostaat ontwikkeld om te laten zien hoe je onze componenten kunt combineren om een ​​realistisch project te bouwen. In ons geval hebben we het zelfs in productie genomen, d.w.z. het regelt de verwarming van ons kantoor.

De logica is simpel:

  • wanneer de temperatuur onder de vooraf ingestelde temperatuur daalt => gaat het relais (d.w.z. verwarming) AAN
  • wanneer de temperatuur boven de vooraf ingestelde temperatuur komt => schakelt het relais/de verwarming UIT
  • de gebruikersinterface/UWP-client:toont de status en stelt de vooraf ingestelde temperatuur in (via tekstvak of spraak)

1. Maak het project (hardware)

We bieden geen Fritzing-diagram, omdat we een Beta MKR1000 gebruiken. De pinlay-out kan in de toekomst veranderen.

2. Stel de ontwikkelomgeving in voor OTA en Azure IoT Hub

  • Installeer Arduino IDE, minimaal versie 1.6.7
  • Installeer Arduino SAMD-kaarten. Vanuit Arduino IDE:Tools> Board:...> Boards Manager ...> selecteer "Arduino SAMD Boards"
  • Download en pak enkele bibliotheken uit in:SKETCHBOOK_DIR (bijv. Documenten/Arduino)/bibliotheken :WiFi101, AzureIoT, RTCZero.

En nu onze componenten:

  • Download en unzip de OTA runtime-bibliotheek in:SKETCHBOOK_DIR (bijv. Documenten/Arduino)/bibliotheken.
  • Download ons aangepaste "boards"-pakket . Maak een directory:SKETCHBOOK_DIR (bijv. Documents/Arduino)/hardware/flower-platform . Pak het gedownloade bestand hier uit.
  • Download de Arduino IDE-plug-in . Maak een map:SKETCHBOOK_DIR (bijv. Documenten/Arduino)/tools. Pak het gedownloade bestand hier uit.

Voor veilige OTA via internet/HTTPS:

  • Download IoT Dispatcher en installeer het op een PHP + MySQL-server. bijv. we hebben instructies over hoe te implementeren in de Microsoft Azure Cloud.

3. Testrit OTA

Er zijn 3 OTA-uploadmethoden.

1) Probeer OTA via LAN: Bestand> Voorbeelden> Arduino-FlowerOTA> WiFiOTA . Verander de regels die zijn becommentarieerd met "// CHANGE ME" dienovereenkomstig, om het IP-adres, WiFi-parameters, gewoon/ssl, serverhandtekening te configureren. Dan Flower Platform> OTA uploaden ...

Zorg ervoor dat u het volgende gebruikt:

WiFiClient-client; 

en (zie de "serverhandtekening" in het pop-upvenster).

ota.begin(&udp, &client, "1hvtdliHzKLjMykvfW1MfPwsFthUU/YfjN8fOZJ3Qhc="); 

OPMERKING :voor alle 3 methoden moet u eerst een upload via USB doen. Daarna kunt u OTA blijven gebruiken, met de methode van uw keuze.

2) Probeer OTA via beveiligde coördinator , met hetzelfde bestand:

Zorg ervoor dat u het volgende gebruikt:

WiFiSSSLient-client; 

en

ota.begin(&udp, &client, "my-iot-dispatcher-upload-key"); // vgl. geconfigureerd binnen IoT Dispatcher (PHP) 

3) Probeer OTA via beveiligde coördinator + Azure IoT Hub . Bestand> Voorbeelden> Arduino-FlowerOTA> WiFiOTA-AzureIoTHub. Nogmaals:vergeet niet de regels aan te passen die zijn becommentarieerd met "// CHANGE ME ".

4) Probeer de use case/voorbeeld:de kamerthermostaat. Het is hier beschikbaar.

4. Test de gebruikersinterface (UWP-app met Azure IoT Hub en spraakherkenning)

Het UWP-project is hier beschikbaar. Visual Studio 2015 en Windows 10 zijn nodig.

Zorg ervoor dat u de verbindingsparameters wijzigt, cf. uw Azure-account:

SendCloudToDevice.cs

 class SendCloudToDevice { // CHANGE ME:Vervang de onderstaande constanten door de werkelijke waarden (overgenomen uit uw Azure Portal) private const string HOST ="???.azure-devices.net"; private const string DEVICE_ID ="???"; private const string DEVICE_KEY ="???"; statische tekenreeks sharedAccessKeyName ="???"; statische tekenreeks sharedAccessKey ="???"; 

ReadDeviceToCloud.cs

 class ReadDeviceToCloud { // Vervang de onderstaande constanten door de werkelijke waarden (overgenomen uit uw Azure Portal) private statische tekenreeks ConnectionString ="???"; private statische string eventHubEntity ="???"; 

Deze code kan dienen als startpunt voor client-apps voor verschillende projecten. U hoeft alleen de gebruikersinterface aan te passen aan uw project.

Toekomstige stappen

Borden zoals de Arduino MKR1000, die een redelijke verwerkingskracht en SSL-communicatiemogelijkheden hebben, vormen een enorme stap voorwaarts voor de gemeenschap van makers.

We zetten het werk voort dat met dit project is begonnen om Flower Platform IoT te ontwikkelen, een online service die IoT-projecten enorm zou versnellen:

  • ontwikkeling:gebruik van OOP-componenten en grafische programmeertaal (die kan worden gemengd met handgeschreven code);
  • implementatie:gebruik van OTA.

Gebruikmakend van het Flower Platform zijn we van plan een stichting op te richten die zich zal richten op het leren van jonge kinderen om IoT-projecten te maken en te programmeren.

Code

Runtime-bibliotheek die de mechanica voor het uploaden en kopiëren van firmware afhandelt (C++)
https://github.com/flower-platform/Arduino-FlowerOTA
Aangepast "boards"-pakket met een paar linkergerelateerde instellingen, nodig voor de bibliotheek (linkerscript)
https://github.com/flower-platform/ArduinoCore-samd-OTA
Arduino IDE-plug-in. Communiceert met het bestuur, de coördinator en IoT Hub (Java)
https://github.com/flower-platform/flower-platform-arduino-ide-plugin
IoT-verzender. Slaat en serveert firmware die nodig is tijdens OTA (PHP + MySQL)
https://github.com/flower-platform/flower-platform-iot-dispatcher
Gebruiksvoorbeeld/voorbeeld kamerthermostaat (C++)
https://github.com/flower-platform/ThermostatIoT
UWP-client, voor gebruiksvoorbeeld / voorbeeld van de kamerthermostaat (C#, HTML, JavaScript)
https://github.com/flower-platform/thermostat-uwp-ui

Schema's

We bieden geen Fritzing-diagram, omdat we een Beta MKR1000 gebruiken. De pinlay-out kan in de toekomst veranderen.

Productieproces

  1. Hoe word je een Microsoft Certified Azure-beheerder?
  2. HOE GOED IS AZURE ALS CARRIREKEUZE
  3. Microsoft Azure' Blockchain Token en Data Management Services
  4. Microsoft Azure Cheatsheet 2020
  5. Verbind Azure met Power BI:een uitgebreide handleiding
  6. Birth Control Pil
  7. Algoritmen en hardwarematige toename van stembesturing
  8. Pool Fill Control
  9. 3 sleutels om een ​​preventief onderhoudsprogramma weer onder controle te krijgen
  10. Microsoft lanceert Azure Edge Zones voor 5G-toepassingen
  11. Emersons streven naar duurzaamheid met platform voor cloudbeheer