INHOUDSOPGAWE:
- Stap 1: Aanvanklike opstelling
- Stap 2: Stel Ngrok op
- Stap 3: Python -script vir beheer oor ligskakelaars
- Stap 4: Python -script vir waaierbeheer
- Stap 5: Installeer en konfigureer die LIRC -pakket
- Stap 6: Python -script vir TV -beheer
- Stap 7: Meld aan by AWS -rekening
- Stap 8: Opstel van TV -Alexa -vaardigheid
- Stap 9: Verlig Alexa Skill Setup
- Stap 10: Waaier Alexa Skill Setup
- Stap 11: Bou die Ciruit
- Stap 12: Alexa -opdragte
Video: Beheer woonkamer met Alexa en Framboos Pi: 12 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Beheer u woonkamer -TV, ligte en waaier met Alexa (Amazon Echo of Dot) en Raspberry Pi GPIO.
Stap 1: Aanvanklike opstelling
Ek het 'n Raspberry Pi 2 en 'n Raspbian Jessie -prent gebruik wat afgelaai is van
Sodra u aangemeld het, voer die volgende opdragte in om die vereiste pakkette en python -biblioteke te installeer:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip installeer Fleskolf-vra sudo apt-get install lirc
Stap 2: Stel Ngrok op
Besoek https://ngrok.com/download en kry die nuutste Linux ARM -weergawe as 'n zip en pak dit uit in die tuisgids:
unzip /home/pi/ngrok-stable-linux-arm.zip
Maak 'n nuwe terminale oop en voer die volgende opdrag in:
sudo./ngrok http 4000
Maak nog 'n nuwe terminale oop en voer die volgende opdrag in:
sudo./ngrok http 4500
Maak die derde nuwe terminale oop en voer die volgende opdrag in:
sudo./ngrok http 5000
Stap 3: Python -script vir beheer oor ligskakelaars
Maak 'n nuwe terminalsessie oop en skep 'n nuwe python -lêer met die naam light_control.py:
nano light_control.py
Kopieer/plak die volgende kode in die nuwe lêer:
van fles invoer Kolf van flask_ask invoer Vra, verklaring, omskakel foute invoer RPi. GPIO as GPIO invoer logboek invoer os GPIO.setmode (GPIO. BCM) app = Flask (_ naam_) ask = Vra (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): probeer: pinNum = 27 behalwe Uitsondering as e: retourstelling ('Speldnommer nie geldig nie.') GPIO.setup (pinNum, GPIO. OUT) as status in ['aan', 'hoog']: GPIO.output (pinNum, GPIO. LOW) as status in ['af', ' laag ']: GPIO.output (pinNum, GPIO. HIGH) opgaweverklaring (' Draai {} die Living Room Lights'.formaat (status)) as _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', poort = poort)
Stoor en maak die lêer toe.
Begin die kolfbediener met:
sudo python light_control.py
Laat beide ngrok en light_control.py aan die gang
Stap 4: Python -script vir waaierbeheer
Maak 'n nuwe terminalsessie oop en skep 'n nuwe python -lêer met die naam fan_control.py:
nano fan_control.py
Kopieer/plak die volgende kode in die nuwe lêer:
van fles invoer Flask
vanaf flask_ask import Vra, statement, convert_errors invoer RPi. GPIO as GPIO import logging invoer os GPIO.setmode (GPIO. BCM) app = Flask (_ naam_) ask = Ask (app, '/') logging.getLogger ("flask_ask").setLevel (aanmelding. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): probeer: pinNum = 22 behalwe Uitsondering as e: retourstelling ('Pin -nommer') nie geldig nie. ') GPIO.setup (pinNum, GPIO. OUT) as status in [' aan ',' hoog ']: GPIO.output (pinNum, GPIO. LOW) as status in [' af ',' laag ']: GPIO.output (pinNum, GPIO. HIGH) opgaweverklaring ('Draai {} die woonkamerligte'.formaat (status)) as _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', poort = poort)
Stoor en maak die lêer toe.
Begin die kolfbediener met:
sudo python fan_control.py
Laat beide ngrok, light_control.py en fan_control.py aan die gang
Stap 5: Installeer en konfigureer die LIRC -pakket
Om die TV te beheer, moet u 'n pen op die Raspberry Pi instel om infrarooi (IR) seine vir u spesifieke TV te genereer. Maak terminale oop en voer die volgende opdrag in om 'n LIRC -pakket te installeer wat die infrarooi seine van baie afstandsbedienings naboots.
sudo apt-get installeer lirc
Vervolgens moet u die lirc_rpi kernmodule aktiveer en konfigureer. Om dit te doen, maak modules oop in die Nano -redakteur
sudo nano /etc /modules
Voeg die onderstaande lyne by die lêer (maak seker dat die parameter gpio_out_pin wys na die pen wat die IR -LED beheer):
lirc_devlirc_rpi gpio_out_pin = 17
Open vervolgens die hardware.conf -lêer in Nano soos voorheen met sudo:
sudo nano /etc/lirc/hardware.conf
Voeg die volgende opset by die lêer:
LIRCD_ARGS = "-uinput" LOAD_MODULES = waar
DRIVER = "verstek"
TOESTEL = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Herlaai nou die Raspberry Pi:
sudo herlaai
Stap 6: Python -script vir TV -beheer
Maak 'n nuwe terminalsessie oop en skep 'n nuwe python -lêer met die naam ir_control.py:
nano ir_control.py
Gaan na
Soek 'n afstandsbediening wat met u TV versoenbaar is. In my geval het ek 'n Sanyo TV wat werk met die sanyo-tv01 config lêer. Sodra u 'n lêer gevind het wat u TV ondersteun, maak dit oop en kyk deur die opdragopsies.
Kopieer/plak die volgende kode in die nuwe lêer en vervang sanyo-tv01 met die lêernaam wat met u TV werk. Maak ook seker dat die TV -opdragte deur u konfig -lêer vir u TV's ondersteun word; Miskien moet u die KEY_POWER-, KEY_VIDEO-, KEY_VOLUMEUP-, KEY_VOLUMEDOWN- en KEY_MUTE -opdragte verander om korrek te werk met die konfigurasie -lêer van u TV:
van fles invoer Kolf van flask_ask invoer Vra, verklaring, omskakel foute invoer RPi. GPIO as GPIO invoer logboek invoer os GPIO.setmode (GPIO. BCM) app = Flask (_ naam_) ask = Vra (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): as status in ['aanskakel']: os.system ("stuur SEND_ONCE sanyo-tv01 KEY_POWER") opgaweverklaring ('Skakel die TV aan') elif-status in ['afskakel']: os.system ("stuur SEND_ONCE sanyo-tv01 KEY_POWER ") opgaweverklaring ('Skakel die TV af') elif-status in ['verander insette']: os.system (" stuur SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" stuur SEND_ONCE sanyo-tv01 KEY_VIDEO ") terug verklaring ('Verander insette op die TV') elifstatus in ['volume verhoog']: os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") opgaweverklaring ('Verhoog volume op die TV') elifstatus in ['verlaag volume']: os.system (" stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN ") os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("stuur SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system " ") opgaweverklaring ('Afnemende volume op die TV') elifstatus in ['demp']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") opgaweverklaring ('demp die TV') elifstatus in ['demp' ']: os.system ("stuur SEND_ONCE sanyo-tv01 KEY_MUTE") opgaweverklaring (' Ontdemp die TV ') anders: opgaafverklaring (' Afstandsfunksie nie gevind nie. ') as _name_ ==' _main_ ': port = 5000 app.run (gasheer = '0.0.0.0', poort = poort)
Stoor en maak die lêer toe.
Begin die kolfbediener met:
sudo python ir_control.py
Laat al drie die ngrok -terminale vensters, light_control.py, fan_control.py en ir_control.py aan die gang
Stap 7: Meld aan by AWS -rekening
Skep of meld eers aan by u AWS -ontwikkelaarrekening en maak u lys met Alexa Skills oop.
Stap 8: Opstel van TV -Alexa -vaardigheid
Kies 'Voeg 'n nuwe vaardigheid by'.
Stel die vaardigheidsnaam in op 'Trigger TV' en die aanroepingsnaam op die woord (e) wat u wil gebruik om die vaardigheid te aktiveer.
Klik op 'Volgende' om voort te gaan.
Kopieer/plak die volgende in die 'Intent Schema' -boks:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intention": "GPIOControlIntent "}]}
Klik vervolgens op 'Voeg gleuftipe by'
Voer TV_Function in die veld 'Enter Type' in.
Voer die volgende waardes in die veld 'Tik waardes' in:
sit aan
skakel verander insette verhoog volume verlaag volume demp demp
Kopieer/plak die volgende in die boks 'Voorbeelduitsprake':
GPIOControlIntent {status}
GPIOControlIntent {status} volgens {amount}
Klik op 'Volgende' om voort te gaan.
Kies 'HTTPS' as die tipe eindpunt van die diens en kies 'n streek. Voer die ngrok -URL in vanaf stap 2 en klik op 'Volgende'. Die URL moet iets soos:
ed6ea04d.ngrok.io
Klik op 'Volgende' om voort te gaan en druk op 'stoor'.
Stap 9: Verlig Alexa Skill Setup
Sluit die oop vaardigheid en kies 'Voeg 'n nuwe vaardigheid by'.
Stel die vaardigheidsnaam in op 'Lights Control' en die aanroepingsnaam op die woord (e) wat u wil gebruik om die vaardigheid te aktiveer.
Klik op 'Volgende' om voort te gaan. Kopieer/plak die volgende in die 'Intent Schema' -boks:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intention": "LightsControlIntent"}]}
Klik vervolgens op 'Voeg gleuftipe by'.
Voer "LIGHTS_CONTROL" in die 'Enter Type' veld in.
Voer die volgende waardes in die veld 'Voer waardes in' in:
op
af
Kopieer/plak die volgende in die boks 'Voorbeelduitsprake':
LightsControlIntent draai {status}
Klik op 'Volgende' om voort te gaan. Kies 'HTTPS' as die tipe diens eindpunt en kies 'n streek. Voer die ngrok -URL in vanaf stap 2 en klik op 'Volgende'. Die URL moet iets soos:
ed6ea04d.ngrok.io
Klik op 'Volgende' om voort te gaan en druk op 'stoor'.
Stap 10: Waaier Alexa Skill Setup
Sluit die oop vaardigheid en kies 'Voeg 'n nuwe vaardigheid by'.
Stel die vaardigheidsnaam in op 'waaierbeheer' en die aanroepingsnaam op die woord (e) wat u wil gebruik om die vaardigheid te aktiveer.
Klik op 'Volgende' om voort te gaan.
Kopieer/plak die volgende in die 'Intent Schema' -boks:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intention": "FANControlIntent"}]}
Klik vervolgens op 'Voeg gleuftipe by'.
Voer "FAN_CONTROL" in die veld 'Tik tipe' in.
Voer die volgende waardes in die veld 'Tik waardes' in:
op
af
Kopieer/plak die volgende in die boks 'Voorbeelduitsprake':
FANControlIntent draai {status}
Klik op 'Volgende' om voort te gaan. Kies 'HTTPS' as die tipe diens eindpunt en kies 'n streek. Voer die ngrok -URL in vanaf stap 2 en klik op 'Volgende'. Die URL moet iets soos:
ed6ea04d.ngrok.io
Klik op 'Volgende' om voort te gaan en druk op 'stoor'.
Stap 11: Bou die Ciruit
Verbind die stroombaan soos in die diagram getoon. Ek het 'n JBtek 8 -kanaals DC 5V -aflosmodule gebruik om aan te sluit by my huise AC 120v -lyn en -grond.
Stap 12: Alexa -opdragte
Nou kan die volgende opdragte met Alexa gepraat word om u woonkamer te beheer.
Aanbeveel:
Woonkamer vir flieks met Shelly: 4 stappe
Living Room for Movie With Shelly: opsomming van die projekhoof Hoe om 'n baie eenvoudige outomatisering te skep met behulp van Google -huisroetines om my woonkamer gemaklik te maak om na 'n film te kyk
Die beheer van verskeie LED's met Python en die GPIO -penne van u Framboos Pi: 4 stappe (met foto's)
Die beheer van verskeie LED's met Python en die GPIO -penne van u Raspberry Pi: Hierdie instruksie demonstreer hoe u meer GPIO -penne op u RaspberryPi kan beheer om 4 LED's aan te dryf. Dit sal u ook kennis maak met parameters en voorwaardelike stellings in Python. Ons vorige instruksies met behulp van die GPIO -penne van u Raspberry Pi om
DIY Lae-spanning buitelugbeligting wat beheer word deur middel van Framboos Pi: 11 stappe (met foto's)
DIY Laagspanning Buitelugverligting Beheer Met Raspberry Pi: Waarom? Ek moet erken, ek is, soos baie ander, 'n groot fan van die internet van dinge (of IoT). Ek is ook nog steeds moeg om al my ligte, toestelle, voordeur, motorhuisdeur aan te sluit en wie weet wat nog meer aan die blootgestelde internet. Veral met geleenthede soos
Hoe om die afsetpunte te beheer met 'n framboos Pi: 6 stappe
Hoe om die afsetpunte te beheer met behulp van 'n Framboos Pi: In hierdie instruksies sal ek u demonstreer hoe u 'n webkoppelvlak kan skep om die afsetpunte in u huis te beheer met behulp van 'n Framboos Pi. Ek het gekies om hierdie projek te skryf toe ek die Sensors -wedstryd sien, en aangesien hierdie projek die gebruik van 'n sensor behels om te lees
Helderheidsbeheer PWM -gebaseerde LED -beheer met drukknoppies, Framboos Pi en Scratch: 8 stappe (met foto's)
Helderheidsbeheer PWM -gebaseerde LED -beheer met drukknoppies, Framboos Pi en Scratch: ek het 'n manier probeer vind om te verduidelik hoe PWM aan my studente werk, daarom het ek my die taak gegee om die helderheid van 'n LED te beheer met behulp van 2 drukknoppies - een knoppie verhoog die helderheid van 'n LED en die ander een verduister dit. Om te ontwikkel