Obsah:
- Krok 1: Počáteční nastavení
- Krok 2: Nastavení Ngrok
- Krok 3: Python Script pro ovládání přepínače světla
- Krok 4: Python Script pro ovládání ventilátoru
- Krok 5: Instalace a konfigurace balíčku LIRC
- Krok 6: Python Script pro ovládání TV
- Krok 7: Přihlaste se k účtu AWS
- Krok 8: Nastavení dovednosti TV Alexa
- Krok 9: Rozsvítí nastavení dovednosti Alexa
- Krok 10: Nastavení dovednosti fanouška Alexa
- Krok 11: Vybudujte obvod
- Krok 12: Příkazy Alexa
Video: Ovládejte obývací pokoj s Alexou a Raspberry Pi: 12 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Ovládejte televizi, světla a ventilátor v obývacím pokoji pomocí Alexa (Amazon Echo nebo Dot) a Raspberry Pi GPIO.
Krok 1: Počáteční nastavení
Použil jsem Raspberry Pi 2 a obrázek Raspbian Jessie stažený z
Jakmile jste přihlášeni, zadejte následující příkazy a nainstalujte požadované balíčky a knihovny pythonu:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc
Krok 2: Nastavení Ngrok
Navštivte https://ngrok.com/download a získejte nejnovější verzi Linux ARM jako zip a rozbalte v domovském adresáři:
rozbalit /home/pi/ngrok-stable-linux-arm.zip
Otevřete nový terminál a zadejte následující příkaz:
sudo./ngrok http 4000
Otevřete další nový terminál a zadejte následující příkaz:
sudo./ngrok http 4500
Otevřete třetí nový terminál a zadejte následující příkaz:
sudo./ngrok http 5000
Krok 3: Python Script pro ovládání přepínače světla
Otevřete novou relaci terminálu a vytvořte nový soubor pythonu s názvem light_control.py:
nano light_control.py
Zkopírujte/vložte následující kód do nového souboru:
z baňky import Flask z 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 kromě Exception as e: return statement („Číslo PIN není platné.“) GPIO.setup (pinNum, GPIO. OUT), pokud je stav v ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) pokud je stav v ['off', ' low ']: GPIO.output (pinNum, GPIO. HIGH) návratový příkaz (' Turning {} the Living Room Lights'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ' 0,0.0,0 ', port = port)
Uložte a zavřete soubor.
Spusťte bankový server pomocí:
sudo python light_control.py
Nechte ngrok i light_control.py spuštěné
Krok 4: Python Script pro ovládání ventilátoru
Otevřete novou relaci terminálu a vytvořte nový soubor pythonu s názvem fan_control.py:
nano fan_control.py
Zkopírujte/vložte následující kód do nového souboru:
z baňky import baňky
from 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 kromě Exception as e: return statement ('Pin number neplatné. ') GPIO.setup (pinNum, GPIO. OUT) pokud je stav v [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) pokud je stav v [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) návratový příkaz ('Turning {} the Living Room Lights'.format (status)) if _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = port)
Uložte a zavřete soubor.
Spusťte bankový server pomocí:
sudo python fan_control.py
Nechte ngrok, light_control.py a fan_control.py spuštěné
Krok 5: Instalace a konfigurace balíčku LIRC
Abyste mohli ovládat televizi, musíte na Raspberry Pi nakonfigurovat pin pro generování infračervených (IR) signálů pro vaši konkrétní televizi. Otevřete terminál a zadáním následujícího příkazu nainstalujte balíček LIRC, který emuluje infračervené signály mnoha dálkových ovladačů.
sudo apt-get install lirc
Dále musíte povolit a nakonfigurovat modul jádra lirc_rpi. Chcete -li to provést, otevřete moduly v editoru Nano
sudo nano /etc /modules
Přidejte do souboru následující řádky (Ujistěte se, že parametr gpio_out_pin ukazuje na pin ovládající IR LED):
lirc_devlirc_rpi gpio_out_pin = 17
Dále otevřete soubor hardware.conf v Nano jako dříve pomocí sudo:
sudo nano /etc/lirc/hardware.conf
Přidejte do souboru následující konfiguraci:
LIRCD_ARGS = "-uinput" LOAD_MODULES = true
DRIVER = "výchozí"
ZAŘÍZENÍ = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Nyní restartujte Raspberry Pi:
sudo restart
Krok 6: Python Script pro ovládání TV
Otevřete novou relaci terminálu a vytvořte nový soubor pythonu s názvem ir_control.py:
nano ir_control.py
Přejít na
Najděte dálkový ovladač, který je kompatibilní s vaší televizí. V mém případě mám televizor Sanyo, který pracuje s konfiguračním souborem sanyo-tv01. Jakmile najdete soubor, který podporuje váš televizor, otevřete jej a prohlédněte si možnosti příkazů.
Zkopírujte/vložte následující kód do nového souboru a nahraďte sanyo-tv01 názvem souboru, který funguje s vaší televizí. Zajistěte také, aby konfigurační soubor televizorů podporoval příkazy tv; Pravděpodobně budete muset upravit příkazy KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN a KEY_MUTE, aby správně fungovaly s konfiguračním souborem vaší televize:
z baňky import Flask z 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): if status in ['turn on']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") return return ('Turning on the TV') elif status in ['turn off']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") návratový příkaz ('Vypnutí TV') stav elif v ['změnit vstup']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") návrat prohlášení ('Změna vstupu na TV') stav elif v ['zvýšit hlasitost']: 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 ") návratový příkaz (" Zvýšení hlasitosti v televizi ") stav elif v ['snížení hlasitosti']: 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") s_OYENCEOL ") návratový příkaz ('Snížení hlasitosti na TV') stav elif v ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") návratový příkaz ('Ztlumení TV') stav elif v ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return return (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
Uložte a zavřete soubor.
Spusťte bankový server pomocí:
sudo python ir_control.py
Nechte spuštěna všechna tři okna terminálu ngrok, light_control.py, fan_control.py a ir_control.py
Krok 7: Přihlaste se k účtu AWS
Nejprve si vytvořte nebo se přihlaste ke svému účtu vývojáře AWS a otevřete seznam Alexa Skills.
Krok 8: Nastavení dovednosti TV Alexa
Vyberte „Přidat novou dovednost“.
Nastavte název dovednosti na „Trigger TV“a název vyvolání na slova, která chcete použít k aktivaci dovednosti.
Pokračujte kliknutím na 'Další'.
Do pole 'Schéma záměru' zkopírujte/vložte následující:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
Dále klikněte na 'Přidat typ slotu'
Do pole „Zadejte typ“zadejte funkci TV_Function.
Do pole „Zadat hodnoty“zadejte následující hodnoty:
zapnout
vypnout změnit vstup zvýšit hlasitost snížit hlasitost ztlumit zrušit ztlumení
Dále zkopírujte/vložte následující do pole „Ukázkové výpovědi“:
GPIOControlIntent {status}
GPIOControlIntent {status} o {amount}
Pokračujte kliknutím na 'Další'.
Jako typ koncového bodu služby vyberte 'HTTPS' a vyberte oblast. Zadejte adresu ngrok z kroku 2 a klikněte na 'Další'. Adresa URL by měla být něco jako:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Další“a poté na „Uložit“.
Krok 9: Rozsvítí nastavení dovednosti Alexa
Zavřete otevřenou dovednost a vyberte „Přidat novou dovednost“.
Nastavte název dovednosti na „Ovládání světel“a Název vyvolání na slova, která chcete použít k aktivaci dovednosti.
Pokračujte kliknutím na 'Další'. Do pole 'Schéma záměru' zkopírujte/vložte následující:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}}
Dále klikněte na „Přidat typ slotu“.
Do pole „Zadejte typ“zadejte „LIGHTS_CONTROL“.
Do pole „Zadat hodnoty“zadejte následující hodnoty:
na
vypnuto
Dále zkopírujte/vložte následující do pole „Ukázkové výpovědi“:
LightsControlIntent otočit {status}
Pokračujte kliknutím na 'Další'. Jako typ koncového bodu služby vyberte 'HTTPS' a vyberte oblast. Zadejte adresu ngrok z kroku 2 a klikněte na 'Další'. Adresa URL by měla být něco jako:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Další“a poté na „Uložit“.
Krok 10: Nastavení dovednosti fanouška Alexa
Zavřete otevřenou dovednost a vyberte „Přidat novou dovednost“.
Nastavte název dovednosti na „Ovládání fanouškem“a Název vyvolání na slova, která chcete použít k aktivaci dovednosti.
Pokračujte kliknutím na 'Další'.
Do pole 'Schéma záměru' zkopírujte/vložte následující:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Dále klikněte na „Přidat typ slotu“.
Do pole „Zadejte typ“zadejte „FAN_CONTROL“.
Do pole „Zadat hodnoty“zadejte následující hodnoty:
na
vypnuto
Dále zkopírujte/vložte následující do pole „Ukázkové výpovědi“:
FANControlIntent otočit {status}
Pokračujte kliknutím na 'Další'. Jako typ koncového bodu služby vyberte 'HTTPS' a vyberte oblast. Zadejte adresu ngrok z kroku 2 a klikněte na 'Další'. Adresa URL by měla být něco jako:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Další“a poté na „Uložit“.
Krok 11: Vybudujte obvod
Zapojte obvod podle schématu. Použil jsem JBtek 8 kanálový DC 5V reléový modul pro připojení k domovu AC 120V vedení a uzemnění.
Krok 12: Příkazy Alexa
Nyní můžete s Alexou vyslovit následující příkazy, abyste mohli ovládat váš obývací pokoj.
Doporučuje:
Fanair: meteorologická stanice pro váš pokoj: 6 kroků (s obrázky)
Fanair: meteorologická stanice pro váš pokoj: Existuje nespočet způsobů, jak zjistit aktuální počasí, ale pak znáte počasí pouze venku. Co když chcete znát počasí uvnitř vašeho domu, v konkrétní místnosti? To se pokouším vyřešit tímto projektem. Fanair používá více
Obývací pokoj pro film s Shelly: 4 kroky
Living Room for Movie With Shelly: Project Shrnutí Jak vytvořit velmi jednoduchou automatizaci pomocí domácích rutin Google, aby byl můj obývací pokoj pohodlný pro sledování filmu
SmartBox - inteligentní domácí systém pro váš pokoj: 6 kroků
SmartBox - inteligentní domácí systém pro váš pokoj: Ahoj všichni! V tomto návodu vám vysvětlím, jak vytvořit inteligentní pokojový systém. Tento systém obsahuje dvě zařízení. Obecné zařízení se snímačem vlhkosti a snímačem teploty, které měří aktuální kvalitu života ve vaší místnosti. Ty jsi
Nike LED Swoosh! To je skvělý dekor pro pokoj. Toto je jeden projekt, který může každý opakovat .: 5 kroků
Nike LED Swoosh! To je skvělý dekor pro pokoj. Toto je ten jeden projekt, který může každý opakovat .: Nástroje-páskový měřič-šroubovák-pájka-pila-elektrická vrtačka-brusný papír Dodávky-LED pásek (RGB) 5 m-LED ovladač-Napájení 12V 4A-dřevo 50-50-1500 2x dřevo 20-20-3000 2x překližka 500-1000 mm-šrouby (45 mm) 150x-šrouby (35 mm) 30x-scr
Ovládejte Bludiště s Alexou: 6 kroků (s obrázky)
Ovládejte Bludiště Bludiště pomocí Alexa: Ovládejte Bludiště Balance pomocí Alexa Pohybujte bludištěm hlasem. Nejprve si prosím prohlédněte video. Je to souhrn operací. Talk to Alexa (Raspberry Pi + AVS) SAY: Alexa Start SkillSAY: BARANSU MEIRO WO KIDOU SHITE Instruct SkillSAY: 1 DO, UE N