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

Alexa, zet deze lamp aan:slimme 3D-sensor voor Amazon Echo

Componenten en benodigdheden

Amazon Alexa Amazon Echo
× 1
Walabot Creator
× 1
Arduino Leonardo
× 1
Relais (algemeen)
× 2
LattePanda 2G/32GB (geactiveerd)
× 1
LattePanda 7-inch 1024 x 600 IPS-scherm
× 1
Lamp
× 2

Over dit project

Inleiding

Als je een Alexa of een andere slimme luidspreker hebt gehad en Smart Home-integratie hebt, heb je dit probleem ervaren waarbij je de naam van het te bedienen apparaat moet onthouden. Ik heb veel slimme apparaten voor thuisgebruik en soms is het lastig om de namen van elk apparaat te onthouden.

Soms zei ik:

Er zullen ofwel 3 dingen gebeuren:

  • Eindelijk verwarrend Alexa, inschakelen van een ander smart-apparaat.
  • Vloeken op Alexa (je weet waar ik het over heb, geef het toe)
  • Of opgeven, gefrustreerd raken en tegen haar zeggen:'Vergeet het Alexa, ik doe het zelf wel'... met tegenzin naar de schakelaar lopen.

Mijn kinderen genieten meestal van dit commando:"Alexa, doe ALLE lichten aan". En natuurlijk wordt het hele huis verlicht als een kerstboom. Het is niet leuk als iemand dat midden in de nacht doet!

Hoe het te doen

Wat als ik gewoon kan zeggen:Alexa, zet deze lamp aan?

Laat Alexa detecteren waar ik ben in de buurt van het apparaat. En hij weet waar ik het over heb... zou dit geen geweldig idee zijn?

Wel, een mogelijke oplossing is om een ​​camera in mijn kamer te monteren en bewegingen en dergelijke in de gaten te houden. Maar dat zou TE GRAPPIG zijn. Ik wil geen camera's in mijn huis en doe aan beeldherkenning.

Dat is waar Walabot om de hoek komt kijken:

Walabot

Wat is een Walabot?

Walabot is een programmeerbare 3D-sensor die perfect is voor doe-het-zelf-elektronicaprojecten. Walabot is een nieuw soort 3D-beeldsensor. Het maakt gebruik van radiofrequentie (RFID) en onthult allerlei dingen die verborgen zijn in de wereld om je heen. Het is handheld, programmeerbaar en onze SDK (software development kit) Het bevat een verscheidenheid aan beeldmogelijkheden en onze API stelt je in staat om je eigen aangepaste applicaties ervoor te bouwen.

Het kan bewegingen volgen met behulp van RFID.

LattePanda

LattePanda is een x86/x64 SBC met een quad-core Intel Atom x8300 "Cherrytrail"-processor die Windows 10 kan draaien. Het bevat 2 GB of 4 GB RAM met geïntegreerde Bluetooth 4.0 en 802.11 n WiFi, 1 x USB 3.0, 2 x USB 2.0, HDMI out en een geïntegreerde ATMega32u4 co-processor - zoals je zou vinden in een Arduino Leonardo - met bijbehorende GPIO - allemaal op één palm-sized board!

Deze opstelling maakt LattePanda ideaal voor een aantal scenario's. In deze tutorial zal de nadruk liggen op de voordelen van LattePanda's geïntegreerde microcontroller. Wanneer deze microcontroller wordt gebruikt in combinatie met de Intel Atom-processor, kun je de walabot en arduino met elkaar verbinden.

Knooppunt-Rood

Node-Red is een browsergebaseerd hulpmiddel waarmee u snel en eenvoudig uw eigen logica kunt bouwen voor het omgaan met verschillende IoT-apparaten, waaronder het abonneren op de TCP-berichten, luisteren naar Alexa-verzoeken, lezen en schrijven naar databases, publiceren naar MQTT-makelaars en reageren op HTTP-verzoeken . Het stelt u ook in staat om specifieke functies te definiëren die in JavaScript zijn geschreven om complexe logische bewerkingen te bieden, terwijl u een visuele, gebruiksvriendelijke gebruikersinterface met slepen en neerzetten gebruikt om verschillende componenten en logica aan elkaar te koppelen.

Node-Red is een zeer lichtgewicht runtime die bovenop Node.js is gebouwd en optimaal profiteert van het gebeurtenisgestuurde, niet-blokkerende werkingsmodel.

Als we Walabot-gegevens kunnen laten aansluiten op Node-Red, opent dit een heleboel dingen die we kunnen doen, vooral in huisautomatisering. Er zijn een paar pakketten die ik heb gebruikt om Alexa en Arduino aan te sluiten:

  • node-red-contrib-alexa-local:een doodeenvoudig knooppunt voor het toevoegen van Alexa-mogelijkheden aan uw NodeRED-stroom.
  • node-red-node-arduino:Een Node-RED node om met een Arduino te praten

Hier zijn enkele documentatie die u kunt gebruiken om firmata in te stellen:https://nodered.org/docs/hardware/arduino.html

Hoe het werkt

Hardware

  • LattePanda
  • 7-inch 1024x600 IPS-scherm voor LattePanda
  • USB draadloos toetsenbord en muis
  • Walabot
  • USB-aangedreven hub
  • Relais
  • Lamp

Installatie

Stap 1. Walabot SDK

Download de SDK en installeer deze:https://walabot.com/getting-started

Stap 2. Arduino instellen op Walabot

http://docs.lattepanda.com/content/hardware/accessPinoutsFromVS/

1. Schakel de ontwikkelaarsmodus in op uw besturingssysteem

Stap 3. Stel de Arduino in

1. Arduino openen. En selecteer de “StandardFirmata”

2. Selecteer "Arduino Leonardo"

3. Selecteer uw COM-poort

4. Upload de schets

5. Uploaden klaar!

Sluit de relais aan op de LattePanda.

Stap 4 . Installeer en download NodeJS en Node-Red

Als je niet bekend bent met NodeJS en node-red zijn hier enkele links:

  • https://nodejs.org/en/
  • http://docs.lattepanda.com/content/projects/NodeRED/
  • https://nodered.org/docs/getting-started/installation

Stap 5. Download Python3 en installeer

Stap 6 . Hier is de repository voor het project:https://github.com/rondagdag/smart3DSensorForAlexa

Download en pak het zip-bestand uit:

> npm install> npm start  

Stap 7 . Zorg ervoor dat je op dezelfde wifi zit en de Smart Home Skills op je Alexa-app hebt ingeschakeld. Zeg:'Alexa, ontdek apparaten'. Alexa zou de lamp vinden. Als u de Node-Red-stromen wilt zien en wijzigen:http://localhost:8080/red/

Je kunt het nu verbinden met een andere pin op Arduino Pins in LattePanda. Of verbind het met MQTT of andere Node-Red modules.

De hele stroom ziet er zo uit...

3 stappen:

  • Walabot-service afhandelen :een python-programma dat gegevens van de walabot-sensor leest en gegevens naar een tcp-poort 1890 streamt
  • Walabot-objectgegevens ophalen en opslaan :leest gegevens van walabot-service via poort 1890 en slaat de laatst bekende gedetecteerde objectlocatie op
  • Alexa-opdrachten afhandelen :wordt uitgevoerd wanneer een opdracht wordt ontvangen van Alexa en bepaalt op basis van de laatst bekende locatie de Arduino-pin die moet worden aangesloten op een relais.
  • Walabot-service afhandelen

Hier is de Walabot Python-code. Het leest de gegevens van Walabot en streamt een JSON-string via TCP.

van __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() # laad de WalabotSDK in de Python-wrapper WalabotAPI.SetSettingsFolder() # stel het pad in naar de essentiële databasebestanden WalabotAPI.ConnectAny() # brengt communicatie tot stand met de Walabot WalabotAPI. SetProfile(WalabotAPI.PROF_SENSOR) # stel scanprofiel uit de mogelijkheden WalabotAPI.SetThreshold(35) WalabotAPI.SetArenaR(50,400,4) WalabotAPI.SetArenaPhi(-45,45,2) WalabotAPI.SetArenaTheta(-20,20,10) WalabotAPI.SetDynamicImageFilter(WalabotAPI.FILTER_TYPE_MTI) # specificeer het filter om WalabotAPI.Start() te gebruiken # start Walabot als voorbereiding op het scansysteem ('cls' if platform =='win32' else 'clear') # wis de 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() # start een scan en registreert signalen doelen =WalabotAPI.GetSensorTargets() # biedt een lijst met geïdentificeerde doelen finds ='{"targets":[' index =0 for i, t in enumerate(targets):if i  
  • Walabot-objectgegevens ophalen en opslaan

Dit zal gegevens van poort 1890 ontvangen, de json-gegevens ontleden om de globale variabelen dienovereenkomstig in te stellen.

Hier is de code om te converteren naar json-array

raw =msg.payload.toString('UTF-8') j =JSON.parse(raw); var msg1 ={ nuttige lading:onbewerkt }; var msg2 ={ lading:j }; if (onbewerkte lengte> 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 ={ lading:X }; var msg4 ={ lading:Y }; var msg5 ={ nuttige lading:Z }; } return [ msg1, msg2, msg3, msg4, msg5];  
  • Alexa-opdrachten verwerken

Om Alexa-commando's af te handelen, gebruiken we de node-red-contrib-alexa-local. Dan zouden we op basis van deze logica detecteren welke opdracht moet worden gerouteerd op basis van de laatst bekende positie van de persoon.

Als dit project je interesseerde om meer te leren over Amazon Echo, Walabot, LattePanda, Node-Red, Python, of als je gewoon een geweldige dag hebt, klik dan op de knop 'Respect project' en volg mij. als dit je heeft geholpen bij het bouwen van een project, laat dan een bericht achter en geef ons feedback. Ik wil horen hoe dit project je heeft geholpen.

Merk op dat er geen echte aangepaste Alexa Skill wordt gebruikt voor dit project, het maakt gebruik van de ingebouwde Amazon Echo smart home-functionaliteit die direct uit de doos Phillips Hue-lampen bestuurt. De node-red-contrib-alexa-local node in Node-Red vervalst gewoon elke aangepaste "Bulbs" die je wilt bedienen met Alexa!

Code

Slimme 3D-sensor voor Alexa
https://github.com/rondagdag/smart3DSensorForAlexa

Productieproces

  1. Computervisie als bewegingssensor voor SmartThings
  2. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  3. Cellular IoT:Smart Garbage Can
  4. Amazon Alexa Een Chromecast bedienen
  5. Slim verkeerslicht
  6. Bouw Raspberry Pi-robots:de beste tutorial voor beginners
  7. Smart Pen:eindproject voor ECE5725
  8. Is dit de 'killer app' voor slim textiel?
  9. Ultragevoelige, veerkrachtige sensor voor slim textiel
  10. Ultradunne sensor voor slimme contactlenzen
  11. Sensorfilm voor ruimtevaart