Indholdsfortegnelse:
- Trin 1: Første opsætning
- Trin 2: Konfigurer Ngrok
- Trin 3: Python Script til Light Switch Control
- Trin 4: Python -script til ventilatorstyring
- Trin 5: Installation og konfiguration af LIRC -pakken
- Trin 6: Python -script til tv -kontrol
- Trin 7: Log ind på AWS -konto
- Trin 8: TV Alexa Skill Setup
- Trin 9: Tænder Alexa Skill Setup
- Trin 10: Fan Alexa Skill Setup
- Trin 11: Byg Ciruit
- Trin 12: Alexa -kommandoer
Video: Styr stue med Alexa og Raspberry Pi: 12 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Styr dit stue -tv, lys og ventilator med Alexa (Amazon Echo eller Dot) og Raspberry Pi GPIO.
Trin 1: Første opsætning
Jeg brugte et Raspberry Pi 2 og et Raspbian Jessie -billede downloadet fra
Når du er logget ind, skal du indtaste følgende kommandoer for at installere de nødvendige pakker og python -biblioteker:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Kolbe kolbe-spørg sudo apt-get install lirc
Trin 2: Konfigurer Ngrok
Besøg https://ngrok.com/download og få den nyeste Linux ARM -udgivelse som en zip og udpakning i hjemmebiblioteket:
unzip /home/pi/ngrok-stable-linux-arm.zip
Åbn en ny terminal, og indtast følgende kommando:
sudo./ngrok http 4000
Åbn en ny ny terminal, og indtast følgende kommando:
sudo./ngrok http 4500
Åbn den tredje nye terminal, og indtast følgende kommando:
sudo./ngrok http 5000
Trin 3: Python Script til Light Switch Control
Åbn en ny terminalsession, og opret en ny python -fil ved navn light_control.py:
nano light_control.py
Kopier/indsæt følgende kode i den nye fil:
fra kolbe import Kolbe fra kolbe_ask import Spørg, erklæring, konverteringsfejl importerer RPi. GPIO som GPIO import logning import os GPIO.setmode (GPIO. BCM) app = Kolbe (_ navn_) ask = Spørg (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): prøv: pinNum = 27 undtagen Undtagelse som e: returnering ('Pin -nummer er ikke gyldigt.') GPIO.setup (pinNum, GPIO. OUT) hvis status i ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) hvis status i ['off', ' lav ']: GPIO.output (pinNum, GPIO. HIGH) returopgørelse (' Drej {} Living Room Lights'.format (status)) hvis _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
Gem og luk filen.
Start kolbe serveren med:
sudo python light_control.py
Lad både ngrok og light_control.py køre
Trin 4: Python -script til ventilatorstyring
Åbn en ny terminalsession, og opret en ny python -fil ved navn fan_control.py:
nano fan_control.py
Kopier/indsæt følgende kode i den nye fil:
fra kolbe import Flask
fra flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 undtagen Undtagelse som e: returnering ('Pin -nummer') ikke gyldig. ') GPIO.setup (pinNum, GPIO. OUT) hvis status i [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) hvis status i [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) returerklæring ('Drejning af {} Living Room Lights'.format (status)) hvis _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = port)
Gem og luk filen.
Start kolbe serveren med:
sudo python fan_control.py
Lad både ngrok, light_control.py og fan_control.py køre
Trin 5: Installation og konfiguration af LIRC -pakken
For at styre tv'et skal du konfigurere en pin på Raspberry Pi til at generere infrarøde (IR) signaler til dit specifikke tv. Åbn terminal og indtast følgende kommando for at installere en LIRC -pakke, der efterligner de infrarøde signaler fra mange fjernbetjeninger.
sudo apt-get install lirc
Dernæst skal du aktivere og konfigurere kernelmodulet lirc_rpi. For at gøre det skal du åbne moduler i Nano -editoren
sudo nano /etc /modules
Føj linjerne herunder til filen (Sørg for, at parameteren gpio_out_pin peger på den pin, der styrer IR -lysdioden):
lirc_devlirc_rpi gpio_out_pin = 17
Åbn derefter hardware.conf -filen i Nano som før med sudo:
sudo nano /etc/lirc/hardware.conf
Tilføj følgende konfiguration til filen:
LIRCD_ARGS = "-uinput" LOAD_MODULES = sand
DRIVER = "standard"
ENHED = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Genstart nu Raspberry Pi:
sudo genstart
Trin 6: Python -script til tv -kontrol
Åbn en ny terminalsession, og opret en ny python -fil ved navn ir_control.py:
nano ir_control.py
Gå til
Find en fjernbetjening, der er kompatibel med dit tv. I mit tilfælde har jeg et Sanyo TV, der fungerer med konfigurationsfilen sanyo-tv01. Når du har fundet en fil, der understøtter dit tv, skal du åbne den og se kommandoindstillingerne igennem.
Kopier/indsæt følgende kode i den nye fil, og erstat sanyo-tv01 med det filnavn, der fungerer med dit tv. Sørg også for, at tv -kommandoerne understøttes af dine tv'ers konfigurationsfil; Du skal muligvis ændre kommandoerne KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN og KEY_MUTE for at fungere korrekt med dit fjernsyns konfigurationsfil:
fra kolbe import Kolbe fra kolbe_ask import Spørg, erklæring, konverteringsfejl importerer RPi. GPIO som GPIO import logning import os GPIO.setmode (GPIO. BCM) app = Kolbe (_ navn_) ask = Spørg (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): hvis status i ['tænd']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") returerklæring ('Tænd for fjernsynet') elif-status i ['sluk']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") return statement ('Slukning af fjernsynet') elif status i ['change input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return erklæring ('Ændring af input på fjernsynet') elif-status i ['øg lydstyrke']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") returopgørelse ('Øget lydstyrke på fjernsynet') elif-status i ['sænk volumen']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN ") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system "tv" ") return statement ('Reducer lydstyrke på fjernsynet') elif status i ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") return statement ('Muting the TV') elif status in ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return statement (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
Gem og luk filen.
Start kolbe serveren med:
sudo python ir_control.py
Lad alle tre ngrok terminalvinduer, light_control.py, fan_control.py og ir_control.py køre
Trin 7: Log ind på AWS -konto
Opret eller log først på din AWS -udviklerkonto, og åbn din liste over Alexa -færdigheder.
Trin 8: TV Alexa Skill Setup
Vælg "Tilføj en ny færdighed".
Indstil Færdighedsnavnet til 'Trigger TV' og Tilkaldelsesnavnet til de ord, du vil bruge til at aktivere færdigheden.
Klik på 'Næste' for at fortsætte.
Kopier/indsæt følgende i feltet 'Intent Schema':
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intention": "GPIOControlIntent "}]}
Klik derefter på 'Tilføj slotstype'
Indtast TV_Function i feltet 'Enter Type'.
Indtast følgende værdier i feltet 'Indtast værdier':
tænde for
sluk ændre input øge lydstyrke reducere lydstyrke slå lyden fra
Kopier/indsæt derefter følgende i feltet 'Prøveudtalelser':
GPIOControlIntent {status}
GPIOControlIntent {status} efter {amount}
Klik på 'Næste' for at fortsætte.
Vælg 'HTTPS' som Service Endpoint Type, og vælg en region. Indtast ngrok URL fra trin 2, og klik på 'Næste'. URL'en skal være noget i retning af:
ed6ea04d.ngrok.io
Klik på 'Næste' for at fortsætte, og tryk på 'Gem'.
Trin 9: Tænder Alexa Skill Setup
Luk den åbne færdighed, og vælg "Tilføj en ny færdighed".
Indstil Færdighedsnavnet til 'Lights Control' og Invocation Name til de ord, du vil bruge til at aktivere færdigheden.
Klik på 'Næste' for at fortsætte. Kopier/indsæt følgende i feltet 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intention": "LightsControlIntent"}]}}
Klik derefter på 'Tilføj slotstype'.
Indtast "LIGHTS_CONTROL" i feltet "Enter Type".
Indtast følgende værdier i feltet 'Indtast værdier':
på
af
Kopier/indsæt derefter følgende i feltet 'Prøveudtalelser':
LightsControlIntent turn {status}
Klik på 'Næste' for at fortsætte. Vælg 'HTTPS' som Service Endpoint Type, og vælg en region. Indtast ngrok -URL'en fra trin 2, og klik på 'Næste'. URL'en skal være noget i retning af:
ed6ea04d.ngrok.io
Klik på 'Næste' for at fortsætte, og tryk på 'Gem'.
Trin 10: Fan Alexa Skill Setup
Luk den åbne færdighed, og vælg "Tilføj en ny færdighed".
Indstil Færdighedsnavnet til 'Fan Control' og Invocation Name til de ord, du vil bruge til at aktivere færdigheden.
Klik på 'Næste' for at fortsætte.
Kopier/indsæt følgende i feltet 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intention": "FANControlIntent"}]}}
Klik derefter på 'Tilføj slotstype'.
Indtast "FAN_CONTROL" i feltet "Enter Type".
Indtast følgende værdier i feltet 'Indtast værdier':
på
af
Kopier/indsæt derefter følgende i feltet 'Prøveudtalelser':
FANControlIntent turn {status}
Klik på 'Næste' for at fortsætte. Vælg 'HTTPS' som Service Endpoint Type, og vælg en region. Indtast ngrok URL fra trin 2, og klik på 'Næste'. URL'en skal være noget i retning af:
ed6ea04d.ngrok.io
Klik på 'Næste' for at fortsætte, og tryk på 'Gem'.
Trin 11: Byg Ciruit
Tilslut kredsløbet som vist i diagrammet. Jeg brugte et JBtek 8 -kanals DC 5V relæmodul til at forbinde til mine hjem AC 120v -linje og jord.
Trin 12: Alexa -kommandoer
Nu kan følgende kommandoer tales til Alexa for at styre din stue.
Anbefalede:
Stue til film med Shelly: 4 trin
Living Room for Movie With Shelly: Summary
Styr husholdningsapparater gennem Alexa med ESP8266 eller ESP32: 8 trin
Styr husholdningsapparater gennem Alexa med ESP8266 eller ESP32: Hey, hvad sker der, fyre! Akarsh her fra CETech.Dette projekt af mit vil hjælpe dit liv med at blive let, og du kommer til at føle dig som en konge efter at have kontrolleret apparater i dit hus ved blot at give en kommando til Alexa.Hovedsagen bag denne side
Kaptajn Lee De Martians stue: 6 trin
Captain Lee De Martian's Parlor: Captain Lee er un outil libre de droits pour créer des jeux vidéos à propos de donjonsListe des matériauxFeuillesFeutrescrayons Liste des outils OrdinateursScannersSite internet: Captainlee.org
Styr balancelabyrinten med Alexa: 6 trin (med billeder)
Styr balancelabyrinten med Alexa: Styr balancelabyrinten med Alexa Flyt labyrinten med stemme. Først og fremmest se venligst videoen. Det er et resumé af operationen. Tal med Alexa (Raspberry Pi + AVS) SIG: Alexa Start SkillSAY: BARANSU MEIRO WO KIDOU SHITE Instruct SkillSAY: 1 DO, UE N
LED FLOOD LIGHT I MIT STUE !!!: 6 trin
LED FLODLYS I MIT STUE !!!: 18 LED -pærer til " ekstra " lysstyrke