Alexa, schalte DIESE Lampe ein:Intelligenter 3D-Sensor für Amazon Echo
Komponenten und Verbrauchsmaterialien
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 2 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 2 |
Über dieses Projekt
Einführung
Wenn Sie eine Alexa oder einen anderen intelligenten Lautsprecher besitzen und über eine Smart Home-Integration verfügen, ist dieses Problem aufgetreten, bei dem Sie sich den Namen des zu steuernden Geräts merken müssen. Ich habe viele Smart-Home-Geräte und manchmal ist es schwierig, sich die Namen jedes einzelnen zu merken.
Manchmal würde ich sagen:
3 Dinge werden entweder passieren:
- Am Ende hat Alexa verwirrt und ein anderes Smart-Gerät eingeschaltet.
- Fluch über Alexa (du weißt wovon ich rede, gib es zu)
- Oder aufgeben, frustriert werden und zu ihr sagen:'Vergiss es, Alexa, ich mache es selbst'... widerwillig auf den Schalter zuzugehen.
Meine Kinder genießen normalerweise diesen Befehl:"Alexa, schalte ALLE Lichter ein". Und natürlich wird das ganze Haus erleuchtet wie ein Weihnachtsbaum. Es macht keinen Spaß, wenn das mitten in der Nacht jemand macht!
So geht's
Was ist, wenn ich nur sagen kann:Alexa, schalte diese Lampe ein?

Lassen Sie Alexa erkennen, wo ich mich in der Nähe des Geräts befinde. Und es weiß, wovon ich rede... wäre das nicht eine großartige Idee?
Nun, eine mögliche Lösung besteht darin, eine Kamera in meinem Zimmer zu montieren und Bewegungen und dergleichen zu überwachen. Aber das wäre ZU SCHRECKLICH. Ich möchte keine Kameras in meinem Haus haben und mache eine Bilderkennung.
Hier kommt Walabot ins Spiel:
Walabot
Was ist ein Walabot?
Walabot ist ein programmierbarer 3D-Sensor, der sich perfekt für DIY-Elektronikprojekte eignet. Walabot ist eine neue Art von 3D-Bildsensor. Es verwendet Radiofrequenz (RFID) und enthüllt alle möglichen Dinge, die in der Welt um Sie herum verborgen sind. Es ist tragbar, programmierbar und unser SDK (Software Development Kit). Es enthält eine Vielzahl von Imaging-Funktionen und unsere API ermöglicht es Ihnen, Ihre eigenen benutzerdefinierten Anwendungen dafür zu erstellen.
Es kann Bewegungen mithilfe von RFID verfolgen.

LattePanda
LattePanda ist ein x86/x64-SBC mit einem Quad-Core Intel Atom x8300 „Cherrytrail“-Prozessor, auf dem Windows 10 ausgeführt werden kann. Es enthält entweder 2 GB oder 4 GB RAM mit integriertem Bluetooth 4.0 und 802.11 n WiFi, 1 x USB 3.0, 2 x USB 2.0, HDMI-Ausgang und ein integrierter ATMega32u4-Coprozessor - wie man ihn in einem Arduino Leonardo findet - mit dazugehörigem GPIO - alles auf einem handtellergroßen Board!

Dieses Setup macht LattePanda ideal für eine Reihe von Szenarien. In diesem Tutorial konzentrieren wir uns auf die Vorteile des integrierten Mikrocontrollers von LattePanda. Wenn dieser Mikrocontroller in Verbindung mit dem Intel Atom-Prozessor verwendet wird, können Sie Walabot und Arduino miteinander verbinden.

Knoten-Rot
Node-Red ist ein browserbasiertes Tool, mit dem Sie schnell und einfach Ihre eigene Logik für den Umgang mit verschiedenen IoT-Geräten erstellen können, einschließlich des Abonnierens der TCP-Nachrichten, des Abhörens von Alexa-Anfragen, des Lesens und Schreibens in Datenbanken, des Veröffentlichens bei MQTT-Brokern und des Antwortens auf HTTP-Anfragen . Es ermöglicht Ihnen auch, in JavaScript geschriebene spezifische Funktionen zu definieren, um komplexe logische Operationen bereitzustellen, während Sie eine visuelle, benutzerfreundliche Drag-and-Drop-Benutzeroberfläche verwenden, um verschiedene Komponenten und Logik miteinander zu verknüpfen.
Node-Red ist eine sehr leichtgewichtige Laufzeit, die auf Node.js basiert und das ereignisgesteuerte, nicht blockierende Betriebsmodell voll ausnutzt.
Wenn wir Walabot-Daten in Node-Red einstecken können, eröffnet dies viele Dinge, die wir insbesondere in der Heimautomatisierung tun können. Es gibt einige Pakete, die ich verwendet habe, um Alexa und Arduino zu verbinden:
- node-red-contrib-alexa-local:ein kinderleichter Knoten zum Hinzufügen von Alexa-Funktionen zu Ihrem NodeRED-Flow.

- node-red-node-arduino:Ein Node-RED-Knoten, um mit einem Arduino zu sprechen
Hier sind einige Dokumentationen, die Sie zum Einrichten von Firmata verwenden können:https://nodered.org/docs/hardware/arduino.html
So funktioniert es

Hardware
- LattePanda
- 7-Zoll-IPS-Display mit 1024 x 600 für LattePanda
- USB-Funktastatur und -Maus
- Walabot
- USB-betriebener Hub
- Relais
- Lampe
Installation
Schritt 1. Walabot SDK
Laden Sie das SDK herunter und installieren Sie es:https://walabot.com/getting-started
Schritt 2. Arduino auf Walabot einrichten
http://docs.lattepanda.com/content/hardware/accessPinoutsFromVS/
1. Aktivieren Sie den Entwicklermodus auf Ihrem Betriebssystem



Schritt 3. Arduino einrichten
1. Öffnen Sie Arduino. Und wählen Sie die „StandardFirmata“

2. Wählen Sie „Arduino Leonardo“

3. Wählen Sie Ihren COM-Port

4. Laden Sie die Skizze hoch

5. Hochladen Fertig!

Verbinden Sie die Relais mit dem LattePanda.

Schritt 4 . NodeJS und Node-Red installieren und herunterladen
Wenn Sie mit NodeJS und node-red nicht vertraut sind, hier einige Links:
- https://nodejs.org/de/
- http://docs.lattepanda.com/content/projects/NodeRED/
- https://nodered.org/docs/getting-started/installation
Schritt 5. Python3 herunterladen und installieren

Schritt 6 . Hier ist das Repository für das Projekt:https://github.com/rondagdag/smart3DSensorForAlexa
Laden Sie die ZIP-Datei herunter und extrahieren Sie sie:
> npm install> npm start
Schritt 7 . Stellen Sie sicher, dass Sie sich im selben WLAN befinden und die Smart Home Skills in Ihrer Alexa App aktiviert haben. Sagen Sie:„Alexa, Geräte entdecken“. Alexa würde die Lampe finden. Wenn Sie die Node-Red-Flows sehen und ändern möchten:http://localhost:8080/red/
Sie können es jetzt mit einem anderen Pin auf Arduino Pins in LattePanda verbinden. Oder verbinden Sie es mit MQTT oder anderen Node-Red-Modulen.
Der ganze Ablauf sieht so aus...
3 Schritte:
- Walabot-Dienst bearbeiten :ein Python-Programm, das Daten vom Walabot-Sensor liest und Daten an einen TCP-Port 1890 streamt
- Walabot-Objektdaten abrufen und speichern :liest Daten vom Walabot-Dienst über Port 1890 und speichert den letzten bekannten erkannten Objektstandort
- Alexa-Befehle handhaben :wird ausgeführt, wenn ein Befehl von Alexa empfangen wird, und bestimmen Sie anhand des letzten bekannten Standorts den Arduino-Pin, der mit einem Relais verbunden werden soll.

- Walabot-Dienst bearbeiten


Hier ist der Walbot-Python-Code. Es liest die Daten von Walabot und streamt einen JSON-String über TCP.
from __future__ import print_functionfrom sys import platformfrom os import systemfrom imp import load_sourceWalabotAPI =load_source('WalabotAPI', 'C:\\Program Files\\Walabot\\WalabotSDK\\python\\WalabotAPI.py')import socket, sysif __name__ =='__main__':WalabotAPI.Init() # das WalabotSDK in den Python-Wrapper laden WalabotAPI.SetSettingsFolder() # den Pfad zu den wesentlichen Datenbankdateien setzen WalabotAPI.ConnectAny() # stellt die Kommunikation mit der Walabot WalabotAPI her. SetProfile(WalabotAPI.PROF_SENSOR) # Scanprofil aus den Möglichkeiten setzen WalabotAPI.SetThreshold(35) WalabotAPI.SetArenaR(50,400,4) WalabotAPI.SetArenaPhi(-45,45,2) WalabotAPI.SetArenaTheta(-20,20,10) WalabotAPI.SetDynamicImageFilter(WalabotAPI.FILTER_TYPE_MTI) # Filter für die Verwendung von WalabotAPI.Start() angeben # startet Walabot als Vorbereitung für das Scannen des Systems('cls' if platform =='win32' else 'clear') # lösche das Terminal numOfTargetsToDisplay =1 if len(sys.argv) ==2:TCP_IP ='127.0.0.1' TCP_PORT =int( sys.argv[1]) s =socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((TCP_IP, TCP_PORT)) s.listen(1) conn, addr =s.accept() while True:WalabotAPI .Trigger() # initiiert einen Scan und zeichnet Signale auf Ziele =WalabotAPI.GetSensorTargets() # liefert eine Liste der identifizierten Ziele finds ='{"targets":[' index =0 for i, t in enumerate(targets):if i
- Walabot-Objektdaten abrufen und speichern
Dies empfängt Daten von Port 1890, parst die JSON-Daten, um die globalen Variablen entsprechend festzulegen.

Hier ist der Code zum Konvertieren in ein Json-Array
raw =msg.payload.toString('UTF-8') j =JSON.parse(raw); var msg1 ={ Nutzlast:raw }; var msg2 ={ Nutzlast:j}; if (raw.length> 20) { X =msg2.payload.targets[0].x; Y =msg2.payload.targets[0].y; Z =msg2.payload.targets[0].z; global.set("X", X); global.set("Y", Y); global.set("Z", Z); var msg3 ={ Nutzlast:X}; var msg4 ={ Nutzlast:Y}; var msg5 ={ Nutzlast:Z}; } zurück [ msg1, msg2, msg3, msg4, msg5];
- Alexa-Befehle verarbeiten
Um Alexa-Befehle zu verarbeiten, verwenden wir die Knoten-Rot-Beitrag-Alexa-Lokal. Dann würden wir anhand dieser Logik erkennen, welcher Befehl basierend auf der letzten bekannten Position der Person weitergeleitet werden soll.

Wenn dieses Projekt Sie dazu interessiert hat, mehr über Amazon Echo, Walabot, LattePanda, Node-Red, Python zu erfahren oder Sie einfach nur einen tollen Tag haben, klicken Sie einfach auf die Schaltfläche "Projekt respektieren" und folgen Sie mir. Wenn Ihnen dies beim Aufbau eines Projekts geholfen hat, hinterlassen Sie eine Nachricht und geben Sie uns Feedback. Ich möchte hören, wie Ihnen dieses Projekt geholfen hat.
Beachten Sie, dass für dieses Projekt kein benutzerdefinierter Alexa-Skill verwendet wird, sondern die integrierte Amazon Echo-Smart-Home-Funktion, die ab Werk Phillips-Hue-Lampen steuert. Der Node-red-contrib-alexa-local Node in Node-Red fälscht einfach alle benutzerdefinierten "Glühbirnen", die Sie mit Alexa steuern möchten!
Code
Smarter 3D-Sensor für Alexa
https://github.com/rondagdag/smart3DSensorForAlexaHerstellungsprozess
- Computer Vision als Bewegungssensor für SmartThings
- DIY Infrarot-Bewegungssensorsystem für Raspberry Pi
- Mobiles IoT:Intelligenter Mülleimer
- Amazon Alexa Steuern eines Chromecast
- Intelligente Ampel
- Raspberry Pi-Roboter bauen:Bestes Tutorial für Anfänger
- Smart Pen:Endgültiges Projekt für ECE5725
- Ist das die Killer-App für Smart Textiles?
- Ultraempfindlicher, widerstandsfähiger Sensor für intelligente Textilien
- Ultradünner Sensor für intelligente Kontaktlinsen