Innholdsfortegnelse:
- Trinn 1: Første oppsett
- Trinn 2: Konfigurer Ngrok
- Trinn 3: Python -skript for lysbryterkontroll
- Trinn 4: Python -skript for viftekontroll
- Trinn 5: Installere og konfigurere LIRC -pakken
- Trinn 6: Python -skript for TV -kontroll
- Trinn 7: Logg på AWS -konto
- Trinn 8: TV Alexa Skill Setup
- Trinn 9: Lyser opp Alexa Skill Setup
- Trinn 10: Vift Alexa Skill Setup
- Trinn 11: Bygg sirenen
- Trinn 12: Alexa -kommandoer
Video: Kontroller stue med Alexa og Raspberry Pi: 12 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Kontroller stuen din TV, lys og vifte med Alexa (Amazon Echo eller Dot) og Raspberry Pi GPIO.
Trinn 1: Første oppsett
Jeg brukte et Raspberry Pi 2 og et Raspbian Jessie -bilde lastet ned fra
Når du er logget inn, skriver du inn følgende kommandoer for å installere de nødvendige pakkene og python -bibliotekene:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip installere kolbe kolbe-spør sudo apt-get install lirc
Trinn 2: Konfigurer Ngrok
Besøk https://ngrok.com/download og få den nyeste Linux ARM -versjonen som en zip og pakke ut i hjemmekatalogen:
pakke ut /home/pi/ngrok-stable-linux-arm.zip
Åpne en ny terminal og skriv inn følgende kommando:
sudo./ngrok http 4000
Åpne en ny terminal og skriv inn følgende kommando:
sudo./ngrok http 4500
Åpne den tredje nye terminalen og skriv inn følgende kommando:
sudo./ngrok http 5000
Trinn 3: Python -skript for lysbryterkontroll
Åpne en ny terminalsession og opprett en ny python -fil som heter light_control.py:
nano light_control.py
Kopier/lim inn følgende kode i den nye filen:
fra flaskeimport Flaskfrå 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 ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): prøv: pinNum = 27 unntatt Unntak som e: returoppgave ('PIN -nummer er ikke gyldig.') 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) returoppgave (' Slå {} Living Room Lights'.format (status)) hvis _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
Lagre og lukk filen.
Start kolbe -serveren med:
sudo python light_control.py
La både ngrok og light_control.py være i gang
Trinn 4: Python -skript for viftekontroll
Åpne en ny terminaløkt og opprett en ny python -fil som heter fan_control.py:
nano fan_control.py
Kopier/lim inn følgende kode i den nye filen:
fra kolbeimport Flaske
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 unntatt Unntak som e: returoppgave ('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 ('Slå {} opplysningene i stuen'. Format (status)) hvis _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Lagre og lukk filen.
Start kolbe -serveren med:
sudo python fan_control.py
La både ngrok, light_control.py og fan_control.py være i gang
Trinn 5: Installere og konfigurere LIRC -pakken
For å kontrollere TV -en må du konfigurere en pin på Raspberry Pi for å generere infrarøde (IR) signaler for din spesifikke TV. Åpne terminalen og skriv inn følgende kommando for å installere en LIRC -pakke som emulerer de infrarøde signalene til mange fjernkontroller.
sudo apt-get install lirc
Deretter må du aktivere og konfigurere kjernemodulen lirc_rpi. For å gjøre det, åpne moduler i Nano -editoren
sudo nano /etc /modules
Legg til linjene nedenfor i filen (Sørg for at parameteren gpio_out_pin peker på pinnen som styrer IR -LED):
lirc_devlirc_rpi gpio_out_pin = 17
Deretter åpner du hardware.conf -filen i Nano som før med sudo:
sudo nano /etc/lirc/hardware.conf
Legg til følgende konfigurasjon i filen:
LIRCD_ARGS = "-uinput" LOAD_MODULES = true
DRIVER = "standard"
ENHET = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Start nå Raspberry Pi på nytt:
sudo omstart
Trinn 6: Python -skript for TV -kontroll
Åpne en ny terminaløkt og opprett en ny python -fil som heter ir_control.py:
nano ir_control.py
Gå til
Finn en fjernkontroll som er kompatibel med TV -en din. I mitt tilfelle har jeg en Sanyo TV som fungerer med konfigurasjonsfilen sanyo-tv01. Når du finner en fil som støtter TV -en din, åpner du den og ser gjennom kommandoalternativene.
Kopier/lim inn følgende kode i den nye filen og erstatt sanyo-tv01 med filnavnet som fungerer med TV-en. Sørg også for at TV -kommandoene støttes av konfigurasjonsfilen til TV -en din; Du må kanskje endre kommandoene KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN og KEY_MUTE for å fungere korrekt med TV -ens konfigurasjonsfil:
fra flaskeimport Flaskfrå 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 ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): hvis status i ['slå på']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") returerklæring ('Slå på TVen') elif-status i ['slå av']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") returoppgave ('Slå av TV') elif-status i ['endre inngang']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") retur statement ('Endring av inngang på TV') elif-status i ['øk volum']: 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 ") returoppgave ('Økende volum på TV') elifstatus i ['reduser volum']: os.system (" send 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" ") returoppgave ('Reduserende volum på TV-en') elif-status i ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") returoppgave ('dempet TV') elif-status i ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") returoppgave (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (vert = '0.0.0.0', port = port)
Lagre og lukk filen.
Start kolbe -serveren med:
sudo python ir_control.py
La alle tre ngrok terminalvinduer, light_control.py, fan_control.py og ir_control.py være i gang
Trinn 7: Logg på AWS -konto
Opprett eller logg først på AWS -utviklerkontoen din og åpne listen over Alexa Skills.
Trinn 8: TV Alexa Skill Setup
Velg "Legg til en ny ferdighet".
Sett ferdighetsnavnet til 'Trigger TV' og påkallingsnavnet til ordene du vil bruke for å aktivere ferdigheten.
Klikk "Neste" for å fortsette.
Kopier/lim inn følgende i "Intens Schema" -boksen:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intention": "GPIOControlIntent "}]}
Deretter klikker du på 'Legg til spiltype'
Skriv inn TV_Function i feltet "Skriv inn".
Skriv inn følgende verdier i feltet "Skriv inn verdier":
Slå på
slå av endre inngang øke volum redusere volum dempe unmute
Deretter kopierer/limer du inn følgende i "Eksempeluttalelser" -boksen:
GPIOControlIntent {status}
GPIOControlIntent {status} etter {amount}
Klikk "Neste" for å fortsette.
Velg 'HTTPS' som Service Endpoint Type og velg en region. Skriv inn ngrok URL fra trinn 2 og klikk 'Next'. Nettadressen skal være omtrent som:
ed6ea04d.ngrok.io
Klikk "Neste" for å fortsette og trykk "Lagre".
Trinn 9: Lyser opp Alexa Skill Setup
Lukk den åpne ferdigheten og velg "Legg til en ny ferdighet".
Sett ferdighetsnavnet til 'Lights Control' og påkallingsnavnet til ordene du vil bruke for å aktivere ferdigheten.
Klikk "Neste" for å fortsette. Kopier/lim inn følgende i "Intens Schema" -boksen:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intention": "LightsControlIntent"}]}
Deretter klikker du på 'Legg til spiltype'.
Skriv inn "LIGHTS_CONTROL" i feltet "Skriv inn".
Skriv inn følgende verdier i feltet "Skriv inn verdier":
på
av
Deretter kopierer/limer du inn følgende i "Eksempeluttalelser" -boksen:
LightsControlIntent sving {status}
Klikk "Neste" for å fortsette. Velg 'HTTPS' som Service Endpoint Type og velg en region. Skriv inn ngrok URL fra trinn 2, og klikk "Neste". Nettadressen skal være omtrent som:
ed6ea04d.ngrok.io
Klikk "Neste" for å fortsette og trykk "Lagre".
Trinn 10: Vift Alexa Skill Setup
Lukk den åpne ferdigheten og velg "Legg til en ny ferdighet".
Sett ferdighetsnavnet til 'Fan Control' og påkallingsnavnet til ordene du vil bruke for å aktivere ferdigheten.
Klikk "Neste" for å fortsette.
Kopier/lim inn følgende i "Intens Schema" -boksen:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intention": "FANControlIntent"}]}
Deretter klikker du på 'Legg til spiltype'.
Skriv inn "FAN_CONTROL" i feltet "Skriv inn".
Skriv inn følgende verdier i feltet "Skriv inn verdier":
på
av
Deretter kopierer/limer du inn følgende i "Eksempeluttalelser" -boksen:
FANControlIntent sving {status}
Klikk "Neste" for å fortsette. Velg 'HTTPS' som Service Endpoint Type og velg en region. Skriv inn ngrok -URL -en fra trinn 2 og klikk "Neste". Nettadressen skal være omtrent som:
ed6ea04d.ngrok.io
Klikk "Neste" for å fortsette og trykk "Lagre".
Trinn 11: Bygg sirenen
Koble til kretsen som vist i diagrammet. Jeg brukte en JBtek 8 -kanals DC 5V relemodul for å koble til hjemmet mitt AC 120v linje og jord.
Trinn 12: Alexa -kommandoer
Nå kan følgende kommandoer snakkes til Alexa for å kontrollere stua.
Anbefalt:
Alexa IoT TV-kontroller ESP8266: 10 trinn (med bilder)
Alexa IoT TV-kontroller ESP8266: Nylig kjøpte jeg en Amazon Echo Dot under Amazon Prime-dagen for ~ 20 €. Disse små stemmeassistentene er billige og flotte for DIY Home Automation hvis du vet hva som er mulig og hvordan du bygger smarte enheter. Jeg har en Samsung Smart TV, men jeg ville
Stue for film med Shelly: 4 trinn
Living Room for Movie With Shelly: Summary
Kontroller hvitevarer gjennom Alexa med ESP8266 eller ESP32: 8 trinn
Kontroller hvitevarer gjennom Alexa med ESP8266 eller ESP32: Hei, hva skjer, gutter! Akarsh her fra CETech. Dette prosjektet mitt skal hjelpe livet ditt til å bli enkelt, og du kommer til å føle deg som en konge etter å ha kontrollert apparater i huset ditt ved å bare gi en kommando til Alexa.Hovedsaken bak denne siden
Kontroller EV3 -motoren din med Alexa: 9 trinn
Kontroller EV3 -motoren din med Alexa: Vil du kontrollere LEGO EV3 med talekommandoer? I dette prosjektet kan du prøve å flytte en EV3 -motor ved å snakke med Alexa. Alt du trenger er en Amazon Echo Dot, et Arduino Nano 33 IoT -kort og en EV3 med WiFi -dongle og motor. Tanken er å bygge
Kontroller balanse -labyrinten med Alexa: 6 trinn (med bilder)
Kontroller balanse labyrinten med Alexa: Kontroller balanse labyrinten med Alexa Flytt labyrinten med stemme. Først av alt, se videoen. Det er et sammendrag av operasjonen. Snakk med Alexa (Raspberry Pi + AVS) SE: Alexa Start SkillSAY: BARANSU MEIRO WO KIDOU SHITE Instruct SkillSAY: 1 DO, UE N