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

Alexa-gesteuerte LEDs über Arduino Yún

Komponenten und Verbrauchsmaterialien

Arduino Yun
× 1
Amazon Alexa Amazon Echo
× 1
LED (generisch)
× 1
Micro-SD-Karte
× 1

Apps und Onlinedienste

Amazon Web Services AWS IoT
Amazon Web Services AWS Lambda
Amazon Alexa Alexa Skills Kit

Über dieses Projekt

Motivation

Seit ich einen Smart Mirror mit Alexa onboard gebaut habe, suche ich nach weiteren Möglichkeiten, verschiedene Hardware- und Hausautomationsgeräte im ganzen Haus zu verbinden. Als ich hörte, dass Sie mit der neuen Alexa Smart Home API benutzerdefinierte Geräte direkt steuern können, beschloss ich, es auszuprobieren.

Dieser Echo-gesteuerte Weihnachtsbaum verwendet eine ältere Version der API, diente jedoch als großartiger Ausgangspunkt und wies mich auf das IoT-zielorientierte Arduino Yún hin. Dadurch erhalten Sie ein Linux-System und einen Mikrocontroller in einem handlichen Paket.

Die Aufgabe, die ich mir gestellt habe, war das "Hallo-Wort"-Äquivalent zu Smart-Home-Kenntnissen ... Einfach eine LED mit meiner Stimme ein- und ausschalten. Da ich ein 2x3-LED-Array herumliegen hatte, entschied ich mich jedoch, das für Stilpunkte ein- und auszuschalten.

Alle Details finden Sie unten, aber so hat es sich herausgestellt!

Projektübersicht

Dieses Projekt zielt darauf ab, ein Arduino Yún-Board mit einem Alexa Smart Home v3-Skill zu verbinden. Dies geschieht mit einem Alexa Smart Home Skill (v3), einer AWS Lambda Function, einem AWS IoT Thing und einem Arduino Yún, der das IoT Thing abonniert hat.

In der Abbildung unten sehen Sie alle wichtigen Teile dieses Projekts, die beim Einschalten des Lichts beteiligt sind.

Ich würde empfehlen, es Stück für Stück einzunehmen und während der Fahrt zu testen. Nichts in dem Projekt ist sehr anspruchsvoll, aber es gibt viele miteinander verbundene Teile. Lassen Sie sich also nicht entmutigen, wenn Sie sich beim Durcharbeiten ein wenig am Kopf kratzen.

Ich würde mir jeden Schritt als Miniprojekt vorstellen, das möglicherweise jeweils mehr als 1 Stunden dauert.

Schritt 1:Erstellen Sie einen Smart Home-Skill und ein verbundenes Lambda.

Hier erstellen Sie einen Smart Home Skill, erstellen eine Lambda-Funktion und verknüpfen diese beiden miteinander. Dieser Vorgang wird in diesem Tutorial sehr gut behandelt. Stellen Sie sicher, dass Sie die LWA-Schritte befolgen, um Ihre Client-ID und Ihr Client-Geheimnis zu erhalten, die in der Skill-Konfiguration verwendet werden.

Wenn Sie sich zu diesem Zeitpunkt beim Alexa-Dashboard anmelden und Ihr neues Smart-Home-Gerät entdecken können (zu diesem Zeitpunkt nur eine Lambda-Funktionsantwort), haben Sie einen guten Start.

Beachten Sie, dass dieses Tutorial Python 3.6 verwendet, aber ich habe stattdessen Python2.7 verwendet. Sie können die handle_discovery copy kopieren Teil meiner Lambda-Funktion, aber das ist alles, was zu diesem Zeitpunkt funktioniert.

Schritt 2:Ein IoT-Ding erstellen.

Discovery ist nicht gut, wenn Sie nichts tun können. Lassen Sie uns also eine Verbindung herstellen, indem Sie ein AWS IoT-Ding erstellen.

Dies kann durch Befolgen der Schritte auf dieser Seite erfolgen. Wir verwenden den "Thing Shadow" dessen, was Sie erstellen, der eine Kopie des Zustands einer Sache ist, zusammen mit den gewünschten Änderungen. Der Arduino abonniert einen Benachrichtigungs-Feed, der die Änderungen ("Delta") an diesem Thing Shadow veröffentlicht. Schau dir diesen Link hier an, um weitere Informationen zu Thing Shadows zu erhalten.

Nachdem Sie Ihr Thing erstellt haben, navigieren Sie im Thing IoT-Web-Dashboard zur Registerkarte Sicherheit und laden Sie den öffentlichen Schlüssel, den privaten Schlüssel und das Zertifikat herunter. Sobald dies erledigt ist, klicken Sie auf "Aktivieren", wodurch Sie den Schlüssel der Stammzertifizierungsstelle erhalten. Speichern Sie dies ebenfalls. Diese werden von Ihrem Arduino verwendet, um sich beim IoT-Schatten zu authentifizieren.

Navigieren Sie zur Registerkarte Schatten Ihres Dings und klicken Sie auf Bearbeiten. Fügen Sie Ihrem Schatten eine Eigenschaft hinzu, damit sie wie folgt aussieht:

{ "reported":{ "light":"on" } }  

Schritt 3:Verbinden Sie Ihr Lambda mit Ihrem Ding.

Nachdem Sie Ihr Ding installiert haben, können Sie jetzt Ihren Lambda-Code aktualisieren, um den Ding-Schatten zu aktualisieren. Jetzt können Sie den vollständigen Code aus meiner Lambda-Funktion kopieren, aber stellen Sie sicher, dass Sie alle Discovery-bezogenen Änderungen beibehalten, die Sie vorgenommen haben.

Sie sollten auch sicherstellen, dass Ihre AWS IAM-Rolle, die mit der Lambda-Funktion verknüpft ist, über die Berechtigungen „AWSIoTFullAccess“ verfügt. Sie können Ihre Rolle unten im Lambda-Konfigurations-Web-Dashboard sehen. Mit dieser Berechtigung können Sie sich mit AWS IoT Thing verbinden.

Navigieren Sie anschließend zur Konfigurationsseite der Lambda-Funktion. Fügen Sie auf der Registerkarte "Test" Ihrer Funktion eine Anweisung namens "TurnOff" mit dem folgenden v3-spezifischen JSON hinzu. Sie können auch einen zweiten Test namens "TurnOn" hinzufügen, bei dem Sie einfach den Headernamen in "TurnOn" ändern.

{ "directive":{ "header":{ "namespace":"Alexa.PowerController", "name":"TurnOff", "payloadVersion":"3", "messageId":"1bd5d003- 31b9-476f-ad03-71d471922820", "correlationToken":"1234" }, "endpoint":{ "scope":{ "type":"BearerToken", "token":"some-access-token" }, " endpointId":"appliance-001", "cookie":{} }, "payload":{} } }  

Wenn Sie die TurnOn- und TurnOff-Tests ausführen, sollte der Thing Shadow-Bericht einen gewünschten Status anzeigen, der mit der Aktion übereinstimmt. Wenn Sie dieses Ergebnis sehen, ist alles in Ordnung.

Schritt 4:Richten Sie Ihr Arduino Yún ein.

Zeit, die Arduino Yún-Hardware einzurichten. Ich fand diese Anleitung nützlicher als die Arduino-Anleitung. Ein paar Anmerkungen - Wenn Sie ein Windows-Benutzer sind, stellen Sie beim Formatieren der SD sicher, dass Sie FAT32 verwenden (exFAT wird nicht unterstützt). Ich konnte die "Upgrade"-Seite auch nicht richtig sehen, bis ich mit Ethernet verbunden war. Nach der Konfiguration funktionierte das WLAN einwandfrei.

Sie haben diesen Schritt abgeschlossen, wenn Sie diese Option gesehen und die Schritte befolgt haben:

Sie sollten auch in der Lage sein, erfolgreich in Ihr Arduino zu ssh. Ich würde empfehlen, auch "df -h" auszuführen und nach einem Volume zu suchen, das darauf hindeutet, dass Ihre SD-Karte hinzugefügt wurde.

Das Öffnen der Arduino-IDE und das Überprüfen, ob Sie das Blink-Beispiel ausführen können, wäre zu diesem Zeitpunkt ebenfalls gut.

Schritt 6:Verbinden Sie Ihr Yún mit AWS IoT.

Wenn das Arduino in Betrieb ist, lassen Sie es mit dem IoT-Ding sprechen. Dazu installieren Sie das AWS Arduino IoT SDK und führen eine Beispielskizze aus, um die Deltas von Thing Shadow zu überwachen.

Ich empfehle, mit diesem Tutorial zu beginnen, das Sie hervorragend durch den SDK-Installationsprozess führt. Hinweis für Windows-Benutzer:Wenn Sie Cygwin verwenden, folgen Sie einfach den Mac/Linux-Anweisungen (ich hatte keine Probleme mit der "expect" -Abhängigkeit). Insbesondere das Ausführen des folgenden Skripts auf Ihrem Hostsystem macht das Leben viel einfacher:

./AWSIoTArduinoYunInstallAll.sh

Dieses Tutorial endet mit dem Hinzufügen des AWS-IoT-SDK zur Arduino-IDE. Wenn Sie nun die Arduino IDE öffnen, sollten Sie das ShadowThing-Beispiel unter File->Examples->AWS-IoT-Arduino-Yun-Library finden.

Öffne diese Skizze und bearbeite die aws_iot_config.h Datei, die Ihre relevanten Endpunkte und Zertifikats-/Schlüsselnamen enthält.

Wenn Sie diese Skizze ausführen, sollten Sie eine serielle Ausgabe anzeigen, die anzeigt, dass der Verbindungsstatus erfolgreich war. Wenn Sie Ihren Ding-Schatten im IoT-Dashboard ändern, sollten Sie eine Benachrichtigung im Serial Logger erhalten.

Wenn Sie zu diesem Zeitpunkt Probleme haben, stellen Sie sicher, dass sich Ihre Zertifikate in den richtigen Pfaden befinden, und überprüfen Sie, ob Sie den Root-CA-Text richtig in eine Datei kopiert haben.

Schritt 7:Verbinden Sie Ihr Yún mit AWS IoT.

Jetzt müssen Sie nur noch die Änderungen an Ihrem Thing Shadow auf dem Arduino vornehmen. Sie sollten in der Lage sein, den Inhalt meiner Skizze einfach zu kopieren.

Meine Skizze ist im Grunde nur das ThingShadow-Skizzenbeispiel, außer dass sie speziell nach Änderungen am Schlüssel "Licht" sucht. Wenn diese empfangen werden, werden alle Pins in ledArray auf HIGH oder LOW gesetzt, je nachdem, ob das Licht "an" oder "aus" war.

Dieses ledArray enthält den Onboard-Pin 13, sodass Sie, wenn keine zusätzlichen LEDs angeschlossen sind, sehen, wie sich die Onboard-YUN-LED basierend auf Ihren Sprachbefehlen ein- und ausschaltet. Wenn Sie einen schickeren LED-Würfel wie ich ihn verwenden möchten, sehen Sie sich dieses Projekt an, in dem Sie erfahren, wie Sie es verkabeln. Fügen Sie dann einfach die positiven Pin-Nummern zum ledArray in meiner Skizze hinzu.

Sie wissen, dass Sie mit diesem Schritt fertig sind, wenn Sie Ihr Alexa-Gerät bitten können, Ihr benutzerdefiniertes Smart-Ding ein- und auszuschalten.

Wenn dies nicht wie erwartet funktioniert, würde ich vorschlagen, es mit Ihren Lambda TestOn- und TestOff-Funktionen im Web-Dashboard zu versuchen. Dies gibt Ihnen mehr Informationen darüber, was möglicherweise schief läuft.

Veröffentlichen Sie Kommentare zu allen Problemen, auf die Sie stoßen und die nicht behandelt werden, und ich werde sie so schnell wie möglich lösen!

Schritt 9:Feiern!

Wenn du es bis hierher geschafft hast, gut gemacht! Arduinos können fast alles tun, was Sie wollen, und jetzt wissen Sie, wie Sie dies mit einem einfachen Sprachbefehl über Alexa starten können. Feiern Sie Ihre Leistung, indem Sie das Licht mehrmals ein- und ausschalten. Die IoT-Welt liegt Ihnen zu Füßen!

Code

Lambda- und Arduino-Code für das Projekt
.ino- und .h-Dateien werden für Arduino Sketch verwendet, und lambda_function wird in AWS Lambda Cloud verwendet

Herstellungsprozess

  1. Amazon Alexa Steuern eines Chromecast
  2. Raspberry Pi Roboter über Bluetooth gesteuert
  3. MajorTom:Alexa Voice Controlled ARDrone 2.0
  4. Gestengesteuerte interaktive Tischleuchte
  5. Arduino + LEDs + MIDI-Keyboard + MuseScore =Klavierlehrer
  6. Alexa-gesteuerte LEDs über Raspberry Pi
  7. Joystick-gesteuertes RC-Auto
  8. Nunchuk-gesteuerter Roboterarm (mit Arduino)
  9. Sprachgesteuerter Roboter
  10. Über Ethernet gesteuerter Roboterarm