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

Programm MKR Over-the-Air + Extras:Sprachsteuerung usw.

Komponenten und Verbrauchsmaterialien

Arduino MKR1000
Dies wird für jedes OTA-Projekt benötigt. Die folgenden Komponenten werden nur für den Anwendungsfall / das Beispiel benötigt:das Raumthermostat.
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (4 Pins)
× 1
Relais (generisch)
× 1
Breadboard (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE
Microsoft Azure
Microsoft Azure IoT Hub
Microsoft Visual Studio 2015
UWP (Universal Windows Platform) verwenden
Microsoft Azure
Microsoft Project Oxford (Spracherkennungs-API)

Über dieses Projekt

Übersicht

Unser Beitrag besteht aus 2 Teilen.

Teil 1:Eine Sammlung wiederverwendbarer Komponenten. Sie können als Rahmen für den Aufbau verschiedener IoT-Projekte dienen, die nützliche Funktionen nutzen:

  • Over-the-Air (OTA)-Programmierung des Arduino MKR1000 (d. h. Hochladen des kompilierten Binärcodes). Es stehen mehrere Methoden zur Verfügung:z.B. aus dem LAN oder aus dem Internet, sicher über Microsoft Azure IoT Hub.
  • Universelle Windows-Plattform (UWP) Client-App , mit einer schönen Benutzeroberfläche. Es kommuniziert sicher mit dem Board über Azure IoT Hub.
  • Spracherkennung (auf der Client-App) über die Spracherkennungs-API von Microsoft Project Oxford. Gesprochene Befehle können verwendet werden, um das Board über Azure IoT Hub zu steuern.

Teil 2:Ein Anwendungsfall/Beispiel, aufgebaut mit den oben genannten Komponenten:ein Raumthermostat, gesteuert über das Telefon (UWP-App). Wir haben es gebaut, um als Beispiel für die Verwendung der Komponenten zu dienen. Und wir sind noch weiter gegangen:Wir haben es in unserem Büro installiert und während wir diese Zeilen schreiben, wird die Büroheizung von genau diesem Projekt gesteuert.

Teil 1:Die wiederverwendbaren Komponenten für OTA

OTA-Arbeitsprinzip

Wir haben folgende Komponenten entwickelt:

Für Arduino-IDE:

  • eine Laufzeitbibliothek . Es verarbeitet den Firmware-Upload und die Kopiermechanik.
  • ein benutzerdefiniertes "Boards"-Paket . Es hat einige linkerbezogene Einstellungen, die von der Bibliothek benötigt werden.
  • ein Arduino-IDE-Plugin . Es sendet Download-Signale und kompilierte Binärskizzen (auch bekannt als Firmware). Es kommuniziert mit dem Board, Azure IoT Hub, der IoT Dispatcher Server App (vgl. unten).

Zur Installation auf einem Drittanbieter-Server (z. B. der Microsoft Azure-Website):

  • IoT-Dispatcher , eine PHP + MySQL-Anwendung, die Firmware speichert und bereitstellt.

Funktionsprinzip der UWP-App

Wir haben entwickelt:

  • Eine in C# geschriebene UWP-Client-App. Es kommuniziert mit dem Board über Azure IoT Hub und erkennt gesprochene Befehle über Microsoft Project Oxford. Es kann als Ausgangspunkt für verschiedene Projekte verwendet werden.

OTA-DEMO

Teil 2:Anwendungsfall/Beispiel:Raumthermostat

Wie bereits erwähnt, haben wir den Raumthermostat entwickelt, um zu zeigen, wie man unsere Komponenten zu einem realen Projekt kombinieren kann. In unserem Fall nehmen wir es sogar in Produktion, d.h. es steuert die Heizung unseres Büros.

Die Logik ist einfach:

  • wenn die Temperatur unter die voreingestellte Temperatur fällt => schaltet das Relais (d.h. Heizung) EIN
  • Wenn die Temperatur über der voreingestellten Temperatur liegt => schaltet das Relais/die Heizung AUS
  • die Benutzeroberfläche/UWP-Client:zeigt den Status an und stellt die voreingestellte Temperatur ein (über Textfeld oder Stimme)

1. Erstellen Sie das Projekt (Hardware)

Wir stellen kein Fritzing-Diagramm zur Verfügung, da wir ein Beta MKR1000 verwenden. Das Pin-Layout kann sich in Zukunft ändern.

2. Einrichten der Entwicklungsumgebung für OTA und Azure IoT Hub

  • Installieren Sie Arduino IDE, mindestens Version 1.6.7
  • Installieren Sie Arduino SAMD-Boards. Von der Arduino IDE:Tools> Board:...> Boards Manager ...> wählen Sie "Arduino SAMD Boards"
  • Laden Sie einige Bibliotheken herunter und entpacken Sie sie in:SKETCHBOOK_DIR (z. B. Dokumente/Arduino)/Bibliotheken :WiFi101, AzureIoT, RTCZero.

Und jetzt unsere Komponenten:

  • Laden Sie die OTA Laufzeitbibliothek herunter und entpacken Sie sie in:SKETCHBOOK_DIR (z. B. Dokumente/Arduino)/Bibliotheken.
  • Laden Sie unser benutzerdefiniertes "Boards"-Paket herunter . Erstellen Sie ein Verzeichnis:SKETCHBOOK_DIR (z. B. Documents/Arduino)/hardware/flower-platform . Entpacken Sie die heruntergeladene Datei hier.
  • Laden Sie das Arduino IDE-Plug-in herunter . Erstellen Sie ein Verzeichnis:SKETCHBOOK_DIR (z. B. Documents/Arduino)/tools. Entpacken Sie die heruntergeladene Datei hier.

Für sicheres OTA über Internet/HTTPS:

  • IoT-Dispatcher herunterladen und installieren Sie es auf einem PHP + MySQL-Server. Z.B. Wir haben Anweisungen zur Bereitstellung in der Microsoft Azure Cloud.

3. Testen Sie OTA

Es gibt 3 OTA-Upload-Methoden.

1) Testen Sie OTA über LAN: Datei> Beispiele> Arduino-FlowerOTA> WiFiOTA . Ändere die kommentierten Zeilen mit "// CHANGE ME" entsprechend, um die IP-Adresse, WLAN-Parameter, Plain/Ssl, Serversignatur zu konfigurieren. Dann Flower Platform> OTA hochladen ...

Stellen Sie sicher, dass Sie Folgendes verwenden:

WiFiClient-Client; 

und (vgl. die "Serversignatur" aus dem Popup-Fenster).

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

HINWEIS :Für alle 3 Methoden müssen Sie einen ersten Upload über USB durchführen. Danach können Sie OTA mit der Methode Ihrer Wahl weiter verwenden.

2) Testen Sie OTA über einen sicheren Dispatcher , mit derselben Datei:

Stellen Sie sicher, dass Sie Folgendes verwenden:

WiFiSSLClient-Client; 

und

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

3) Testen Sie OTA über einen sicheren Dispatcher + Azure IoT Hub . Datei> Beispiele> Arduino-FlowerOTA> WiFiOTA-AzureIoTHub. Nochmals:Vergessen Sie nicht, die mit "// CHANGE ME . kommentierten Zeilen anzupassen ".

4) Probieren Sie den Anwendungsfall / das Beispiel aus:den Raumthermostat. Es ist hier verfügbar.

4. Testen Sie die Benutzeroberfläche (UWP-App mit Azure IoT Hub und Spracherkennung)

Das UWP-Projekt ist hier verfügbar. Visual Studio 2015 und Windows 10 werden benötigt.

Stellen Sie sicher, dass Sie die Verbindungsparameter ändern, vgl. Ihr Azure-Konto:

SendCloudToDevice.cs

 class SendCloudToDevice { // CHANGE ME:Bitte ersetzen Sie die Konstanten unten durch tatsächliche Werte (aus Ihrem Azure-Portal) private const string HOST ="???.azure-devices.net"; private const string DEVICE_ID ="???"; privater const string DEVICE_KEY ="???"; statische Zeichenfolge sharedAccessKeyName ="???"; statische Zeichenfolge sharedAccessKey ="???"; 

ReadDeviceToCloud.cs

 class ReadDeviceToCloud { // Ersetzen Sie die Konstanten unten durch tatsächliche Werte (aus Ihrem Azure-Portal) private statische Zeichenfolge ConnectionString ="???"; private statische Zeichenfolge eventHubEntity ="???"; 

Dieser Code kann als Ausgangspunkt für Client-Apps für verschiedene Projekte dienen. Sie müssen lediglich die Benutzeroberfläche entsprechend Ihrem Projekt anpassen.

Zukünftige Schritte

Boards wie das Arduino MKR1000, die über eine angemessene Rechenleistung und SSL-Kommunikationsfähigkeiten verfügen, stellen einen großen Fortschritt für die Community der Hersteller dar.

Wir setzen die mit diesem Projekt begonnene Arbeit fort, um Flower Platform IoT zu entwickeln, einen Online-Dienst, der IoT-Projekte enorm beschleunigen würde:

  • Entwicklung:Verwendung von OOP-Komponenten und grafischer Programmiersprache (die mit handgeschriebenem Code gemischt werden kann);
  • Bereitstellung:Nutzung von OTA.

Unter Nutzung der Flower-Plattform planen wir die Gründung einer Stiftung, die sich darauf konzentriert, kleinen Kindern beizubringen, IoT-Projekte zu erstellen und zu programmieren.

Code

Laufzeitbibliothek für den Firmware-Upload und die Kopiermechanik (C++)
https://github.com/flower-platform/Arduino-FlowerOTA
Benutzerdefiniertes "Boards"-Paket mit einigen Linker-bezogenen Einstellungen, die von der Bibliothek (Linker-Skript) benötigt werden
https://github.com/flower-platform/ArduinoCore-samd-OTA
Arduino-IDE-Plugin. Kommuniziert mit Board, Dispatcher und IoT Hub (Java)
https://github.com/flower-platform/flower-platform-arduino-ide-plugin
IoT-Dispatcher. Speichert und stellt die während des OTA benötigte Firmware bereit (PHP + MySQL)
https://github.com/flower-platform/flower-platform-iot-dispatcher
Anwendungsfall/Beispiel für Raumthermostat (C++)
https://github.com/flower-platform/ThermostatIoT
UWP Client, für den Raumthermostat Anwendungsfall / Beispiel (C#, HTML, JavaScript)
https://github.com/flower-platform/thermostat-uwp-ui

Schaltpläne

Wir stellen kein Fritzing-Diagramm zur Verfügung, da wir ein Beta MKR1000 verwenden. Das Pin-Layout kann sich in Zukunft ändern.

Herstellungsprozess

  1. Wie werde ich ein von Microsoft zertifizierter Azure-Administrator?
  2. WIE GUT ALS BERUFLICHE WAHL IST
  3. Microsoft Azure' Blockchain Token und Datenverwaltungsdienste
  4. Microsoft Azure Spickzettel 2020
  5. Verbinden von Azure mit Power BI:Ein umfassender Leitfaden
  6. Antibabypille
  7. Algorithmus und Hardware-Leistungssteigerung der Sprachsteuerung
  8. Pool-Füllkontrolle
  9. Microsoft führt Azure Edge Zones für 5G-Anwendungen ein
  10. Nachhaltigkeitsinitiative von Emerson mit Cloud-Kontrollplattform