Innehållsförteckning:
- Steg 1: Initial installation
- Steg 2: Konfigurera Ngrok
- Steg 3: Python Script för Light Switch Control
- Steg 4: Python -skript för fläktkontroll
- Steg 5: Installera och konfigurera LIRC -paketet
- Steg 6: Python -skript för TV -kontroll
- Steg 7: Logga in på AWS -konto
- Steg 8: TV Alexa Skill Setup
- Steg 9: Tänder Alexa Skill Setup
- Steg 10: Fan Alexa Skill Setup
- Steg 11: Bygg Ciruit
- Steg 12: Alexa -kommandon
Video: Styr vardagsrum med Alexa och Raspberry Pi: 12 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:36
Styr din vardagsrums -TV, lampor och fläkt med Alexa (Amazon Echo eller Dot) och Raspberry Pi GPIO.
Steg 1: Initial installation
Jag använde en Raspberry Pi 2 och en Raspbian Jessie -bild nedladdad från
När du har loggat in anger du följande kommandon för att installera de nödvändiga paketen och pythonbiblioteken:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip installera kolvkolv-fråga sudo apt-get install lirc
Steg 2: Konfigurera Ngrok
Besök https://ngrok.com/download och få den senaste Linux ARM -versionen som en zip och packa upp i hemkatalogen:
packa upp /home/pi/ngrok-stable-linux-arm.zip
Öppna en ny terminal och ange följande kommando:
sudo./ngrok http 4000
Öppna ytterligare en ny terminal och ange följande kommando:
sudo./ngrok http 4500
Öppna den tredje nya terminalen och ange följande kommando:
sudo./ngrok http 5000
Steg 3: Python Script för Light Switch Control
Öppna en ny terminalsession och skapa en ny pythonfil med namnet light_control.py:
nano light_control.py
Kopiera/klistra in följande kod i den nya filen:
från flaskimport Flaskfrån 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): try: pinNum = 27 utom Undantag som e: returseddelande ('PIN -nummer ej giltigt.') GPIO.setup (pinNum, GPIO. OUT) om status i ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) om status i ['off', ' låg ']: GPIO.output (pinNum, GPIO. HIGH) returseddel (' Slår {} vardagsrumsljusen '. format (status)) om _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', port = port)
Spara och stäng filen.
Starta kolvservern med:
sudo python light_control.py
Låt både ngrok och light_control.py vara igång
Steg 4: Python -skript för fläktkontroll
Öppna en ny terminalsession och skapa en ny pythonfil som heter fan_control.py:
nano fan_control.py
Kopiera/klistra in följande kod i den nya filen:
från kolvimport Flask
från 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 utom Undantag som e: returseddel ('Pin -nummer') inte giltig. ') GPIO.setup (pinNum, GPIO. OUT) om status i [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) om status i [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) returseddelande ('Turning {} the Living Room Lights'.format (status)) om _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = port)
Spara och stäng filen.
Starta kolvservern med:
sudo python fan_control.py
Låt både ngrok, light_control.py och fan_control.py vara igång
Steg 5: Installera och konfigurera LIRC -paketet
För att styra TV: n måste du konfigurera en pin på Raspberry Pi för att generera infraröda (IR) signaler för din specifika TV. Öppna terminalen och ange följande kommando för att installera ett LIRC -paket som emulerar infraröda signaler från många fjärrkontroller.
sudo apt-get install lirc
Därefter måste du aktivera och konfigurera kärnmodulen lirc_rpi. För att göra det, öppna moduler i Nano -redigeraren
sudo nano /etc /modules
Lägg till raderna nedan till filen (Se till att parametern gpio_out_pin pekar på stiftet som styr IR -lysdioden):
lirc_devlirc_rpi gpio_out_pin = 17
Öppna sedan hardware.conf -filen i Nano som tidigare med sudo:
sudo nano /etc/lirc/hardware.conf
Lägg till följande konfiguration i filen:
LIRCD_ARGS = "-uinput" LOAD_MODULES = true
DRIVER = "standard"
ENHET = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Starta om Raspberry Pi nu:
sudo starta om
Steg 6: Python -skript för TV -kontroll
Öppna en ny terminalsession och skapa en ny pythonfil med namnet ir_control.py:
nano ir_control.py
Gå till
Hitta en fjärrkontroll som är kompatibel med din TV. I mitt fall har jag en Sanyo TV som fungerar med konfigurationsfilen sanyo-tv01. När du har hittat en fil som stöder din TV öppnar du den och tittar igenom kommandon.
Kopiera/klistra in följande kod i den nya filen och ersätt sanyo-tv01 med filnamnet som fungerar med din TV. Se också till att tv -kommandona stöds av dina TV: ns konfigurationsfil; Du kan behöva ändra kommandona KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN och KEY_MUTE för att fungera korrekt med din TV: s konfigurationsfil:
från flaskimport Flaskfrån 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): om status i ['slå på']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") returbesked ('Slå på TV: n') elif-status i ['stäng av']: os.system ("skicka SEND_ONCE sanyo-tv01 KEY_POWER ") returseddel ('Stäng av TV: n') elif-status i ['ändra ingång']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") retur statement ('Ändra ingång på TV: n') elif-status i ['öka volymen']: 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 ") returbesked ('Öka volymen på TV: n') elif status i ['minska volymen']: os.system (" skicka 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) KENNY_VOLUMEDOWN ") os.system () ") returseddel ('Minskande volym på TV: n') elif-status i ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") returseddel ('Muting the TV') elif status i ['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)
Spara och stäng filen.
Starta kolvservern med:
sudo python ir_control.py
Låt alla tre ngrok -terminalfönster, light_control.py, fan_control.py och ir_control.py vara igång
Steg 7: Logga in på AWS -konto
Skapa eller logga först in på ditt AWS -utvecklarkonto och öppna din lista över Alexa Skills.
Steg 8: TV Alexa Skill Setup
Välj "Lägg till en ny kompetens".
Ställ in skicklighetsnamnet på 'Trigger TV' och anropsnamnet till de ord som du vill använda för att aktivera färdigheten.
Klicka på "Nästa" för att fortsätta.
Kopiera/klistra in följande i rutan "Intent Schema":
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intention": "GPIOControlIntent "}]}
Klicka sedan på "Lägg till plats"
Ange TV_Function i fältet "Enter Type".
Ange följande värden i fältet "Ange värden":
sätta på
stäng av ändra ingång öka volym minska volym stäng av ljudet
Kopiera/klistra sedan in följande i rutan "Provutterances":
GPIOControlIntent {status}
GPIOControlIntent {status} med {amount}
Klicka på "Nästa" för att fortsätta.
Välj "HTTPS" som Service Endpoint Type och välj en region. Ange ngrok URL från steg 2 och klicka på "Nästa". Webbadressen ska vara ungefär så här:
ed6ea04d.ngrok.io
Klicka på "Nästa" för att fortsätta och tryck på "Spara".
Steg 9: Tänder Alexa Skill Setup
Stäng den öppna färdigheten och välj "Lägg till en ny kompetens".
Ställ in skicklighetsnamnet på 'Ljuskontroll' och anropsnamnet till de ord som du vill använda för att aktivera färdigheten.
Klicka på "Nästa" för att fortsätta. Kopiera/klistra in följande i rutan "Intent Schema":
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intention": "LightsControlIntent"}]}}
Klicka sedan på "Lägg till plats för typ av plats".
Ange "LIGHTS_CONTROL" i fältet "Skriv typ".
Ange följande värden i fältet "Ange värden":
på
av
Kopiera/klistra sedan in följande i rutan "Provutterances":
LightsControlIntent turn {status}
Klicka på "Nästa" för att fortsätta. Välj "HTTPS" som Service Endpoint Type och välj en region. Ange ngrok URL från steg 2 och klicka på "Nästa". Webbadressen ska vara ungefär så här:
ed6ea04d.ngrok.io
Klicka på "Nästa" för att fortsätta och tryck på "Spara".
Steg 10: Fan Alexa Skill Setup
Stäng den öppna färdigheten och välj "Lägg till en ny kompetens".
Ställ in skicklighetsnamnet på 'Fan Control' och Invocation Name till de ord som du vill använda för att aktivera färdigheten.
Klicka på "Nästa" för att fortsätta.
Kopiera/klistra in följande i rutan "Intent Schema":
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intention": "FANControlIntent"}]}
Klicka sedan på "Lägg till plats".
Ange "FAN_CONTROL" i fältet "Skriv typ".
Ange följande värden i fältet "Ange värden":
på
av
Kopiera/klistra sedan in följande i rutan "Provutterances":
FANControlIntent sväng {status}
Klicka på "Nästa" för att fortsätta. Välj "HTTPS" som Service Endpoint Type och välj en region. Ange ngrok URL från steg 2 och klicka på "Nästa". Webbadressen ska vara ungefär så här:
ed6ea04d.ngrok.io
Klicka på "Nästa" för att fortsätta och tryck på "Spara".
Steg 11: Bygg Ciruit
Anslut kretsen enligt diagrammet. Jag använde en JBtek 8 -kanalig DC 5V -relämodul för att ansluta till mitt hem AC 120v -ledning och jord.
Steg 12: Alexa -kommandon
Nu kan följande kommandon talas till Alexa för att styra ditt vardagsrum.
Rekommenderad:
Vardagsrum för film med Shelly: 4 steg
Living Room for Movie With Shelly: Project Executive Summary Hur man skapar en mycket enkel automatisering med hjälp av Googles hemrutiner för att göra mitt rum vardagsrum bekvämt att se en film
Styr din eldstad med HomeKit och Alexa: 7 steg
Styr din eldstad med HomeKit och Alexa: Jag har nyligen installerat en gasspis som inkluderade en fjärrkontroll. Och efter att ha sett några exempel på människor som integrerade sina eldstäder i sina hemkontrollinställningar började jag leta efter detsamma. Min eldstad har denna fjärrkontroll
Hur man styr ljus/hemljus med Arduino och Amazon Alexa: 16 steg (med bilder)
Hur man styr ljus/hemljus med Arduino och Amazon Alexa: Jag har förklarat hur man styr ljus som är anslutet till UNO och styrs av Alexa
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Styr hushållsapparater från din Smarthphone med Blynk -appen och Raspberry Pi: 5 steg (med bilder)
Styr hushållsapparater från din Smarthphone med Blynk -appen och Raspberry Pi: I det här projektet kommer vi att lära oss hur man använder Blynk -appen och Raspberry Pi 3 för att styra hushållsapparater (kaffebryggare, lampa, fönstergardin och mer … ) .Hardware -komponenter: Raspberry Pi 3 Relay Lamp Breadboard Wires Programvaruappar: Blynk A