Obsah:
- Krok 1: Počiatočné nastavenie
- Krok 2: Nastavte program Ngrok
- Krok 3: Skript Python na ovládanie prepínača svetla
- Krok 4: Skript Python na ovládanie ventilátora
- Krok 5: Inštalácia a konfigurácia balíka LIRC
- Krok 6: Python Script na ovládanie televízora
- Krok 7: Prihláste sa do účtu AWS
- Krok 8: Nastavenie zručnosti TV Alexa
- Krok 9: Osvetlenie Alexa Skill Setup
- Krok 10: Nastavenie zručnosti ventilátora Alexa
- Krok 11: Zostavte obvod
- Krok 12: Príkazy Alexa
Video: Ovládajte obývačku pomocou Alexa a Raspberry Pi: 12 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Ovládajte televízor, svetlá a ventilátor v obývačke pomocou Alexa (Amazon Echo alebo Dot) a Raspberry Pi GPIO.
Krok 1: Počiatočné nastavenie
Použil som Raspberry Pi 2 a obrázok Raspbian Jessie stiahnutý z
Po prihlásení zadajte nasledujúce príkazy na inštaláciu požadovaných balíkov a knižníc 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: Nastavte program Ngrok
Navštívte https://ngrok.com/download a získajte najnovšie vydanie Linux ARM ako zip a rozbaľte v domovskom adresári:
rozbaliť /home/pi/ngrok-stable-linux-arm.zip
Otvorte nový terminál a zadajte nasledujúci príkaz:
sudo./ngrok http 4000
Otvorte ďalší nový terminál a zadajte nasledujúci príkaz:
sudo./ngrok http 4500
Otvorte tretí nový terminál a zadajte nasledujúci príkaz:
sudo./ngrok http 5000
Krok 3: Skript Python na ovládanie prepínača svetla
Otvorte novú reláciu terminálu a vytvorte nový súbor pythonu s názvom light_control.py:
nano light_control.py
Skopírujte/prilepte nasledujúci kód do nového súboru:
z banky import flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 except Exception as e: return statement („Číslo PIN nie je platné.“) GPIO.setup (pinNum, GPIO. OUT), ak je stav v ['zapnutý', 'vysoký']: GPIO.output (pinNum, GPIO. LOW) ak je stav v ['vypnutý', ' nízka ']: GPIO.output (pinNum, GPIO. HIGH) návratový prí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 zatvorte súbor.
Spustite bankový server pomocou:
sudo python light_control.py
Nechajte ngrok aj light_control.py spustené
Krok 4: Skript Python na ovládanie ventilátora
Otvorte novú reláciu terminálu a vytvorte nový súbor pythonu s názvom fan_control.py:
nano fan_control.py
Skopírujte/prilepte nasledujúci kód do nového súboru:
z importu banky Banka
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 except Exception as e: return statement ('Pin number neplatné. ') GPIO.setup (pinNum, GPIO. OUT), ak je stav v [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) ak je stav v [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) návratový prí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 zatvorte súbor.
Spustite bankový server pomocou:
sudo python fan_control.py
Nechajte ngrok, light_control.py a fan_control.py spustené
Krok 5: Inštalácia a konfigurácia balíka LIRC
Aby ste mohli ovládať televízor, musíte na Raspberry Pi nakonfigurovať kolík na generovanie infračervených (IR) signálov pre váš konkrétny televízor. Otvorte terminál a zadaním nasledujúceho príkazu nainštalujte balík LIRC, ktorý emuluje infračervené signály mnohých diaľkových ovládačov.
sudo apt-get install lirc
Ďalej musíte povoliť a nakonfigurovať modul jadra lirc_rpi. Ak to chcete urobiť, otvorte moduly v editore Nano
sudo nano /etc /modules
Pridajte do súboru nasledujúce riadky (uistite sa, že parameter gpio_out_pin ukazuje na pin ovládajúci IR LED):
lirc_devlirc_rpi gpio_out_pin = 17
Potom otvorte súbor hardware.conf v Nano ako predtým pomocou sudo:
sudo nano /etc/lirc/hardware.conf
Pridajte do súboru nasledujúcu konfiguráciu:
LIRCD_ARGS = "-uinput" LOAD_MODULES = true
DRIVER = "predvolené"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Teraz reštartujte Raspberry Pi:
sudo reštart
Krok 6: Python Script na ovládanie televízora
Otvorte novú reláciu terminálu a vytvorte nový súbor pythonu s názvom ir_control.py:
nano ir_control.py
Prejdite na stránku
Nájdite diaľkové ovládanie, ktoré je kompatibilné s vašim televízorom. V mojom prípade mám televízor Sanyo, ktorý pracuje s konfiguračným súborom sanyo-tv01. Akonáhle nájdete súbor, ktorý podporuje váš televízor, otvorte ho a prezrite si možnosti príkazov.
Skopírujte/prilepte nasledujúci kód do nového súboru a nahraďte sanyo-tv01 názvom súboru, ktorý funguje s vašim televízorom. Zaistite tiež, aby konfiguračné súbory vašich televízorov podporovali televízne príkazy; Možno budete musieť upraviť príkazy KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN a KEY_MUTE, aby správne pracovali s konfiguračným súborom vášho televízora:
z banky import 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ý príkaz (" Vypnutie televízora ") stav vypnutia v ['zmeniť vstup']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") návrat vyhlásenie („Zmena vstupu v televízore“) stav vypnutia v ['zvýšenie hlasitosti']: 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ý príkaz (" zvýšenie hlasitosti v televízore ") stav zdvihnutia v ['zníženie 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_oEENOOL ") vyhlásenie o návrate ('Zníženie hlasitosti v televízore') zrušenie stavu v ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") návratový príkaz ('Stlmenie TV') stav zrušenia v ['zrušiť stlmenie ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") návratový príkaz (' Zrušenie stlmenia televízora ') else: návratový príkaz (' Vzdialená funkcia sa nenašla. ') if _name_ ==' _main_ ': port = 5000 app.run (hostiteľ = '0.0.0.0', port = port)
Uložte a zatvorte súbor.
Spustite bankový server pomocou:
sudo python ir_control.py
Nechajte spustené všetky tri okná terminálu ngrok, light_control.py, fan_control.py a ir_control.py
Krok 7: Prihláste sa do účtu AWS
Najprv si vytvorte alebo sa prihláste k svojmu účtu vývojára AWS a otvorte zoznam svojich schopností Alexa.
Krok 8: Nastavenie zručnosti TV Alexa
Vyberte položku „Pridať novú zručnosť“.
Nastavte názov zručnosti na „Spúšťač TV“a vyvolávací názov na slová, ktoré chcete použiť na aktiváciu zručnosti.
Pokračujte kliknutím na „Ďalej“.
Skopírujte/prilepte nasledujúce do poľa „Schéma zámeru“:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
Potom kliknite na „Pridať typ slotu“
Do poľa „Zadajte typ“zadajte funkciu TV_Function.
Do poľa „Zadať hodnoty“zadajte nasledujúce hodnoty:
zapnúť
vypnúť zmeniť vstup zvýšiť hlasitosť znížiť hlasitosť vypnúť zvuk stlmiť
Ďalej skopírujte/prilepte nasledujúce do poľa „Ukážkové výpovede“:
GPIOControlIntent {status}
GPIOControlIntent {status} od {amount}
Pokračujte kliknutím na „Ďalej“.
Ako typ koncového bodu služby vyberte „HTTPS“a vyberte oblasť. Zadajte adresu ngrok z kroku 2 a kliknite na „Ďalej“. Adresa URL by mala byť nasledovná:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Ďalej“a potom na „Uložiť“.
Krok 9: Osvetlenie Alexa Skill Setup
Zatvorte otvorenú zručnosť a zvoľte „Pridať novú zručnosť“.
Nastavte názov zručnosti na „Ovládanie svetiel“a vyvolávací názov na slová, ktoré chcete použiť na aktiváciu zručnosti.
Pokračujte kliknutím na „Ďalej“. Skopírujte/prilepte nasledujúce do poľa „Schéma zámeru“:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}}
Potom kliknite na položku „Pridať typ slotu“.
Do poľa „Zadajte typ“zadajte „LIGHTS_CONTROL“.
Do poľa „Zadať hodnoty“zadajte nasledujúce hodnoty:
na
vypnuté
Ďalej skopírujte/prilepte nasledujúce do poľa „Ukážkové výpovede“:
LightsControlIntent odbočiť {status}
Pokračujte kliknutím na „Ďalej“. Ako typ koncového bodu služby vyberte „HTTPS“a vyberte oblasť. Zadajte adresu ngrok z kroku 2 a kliknite na „Ďalej“. Adresa URL by mala byť nasledovná:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Ďalej“a potom na „Uložiť“.
Krok 10: Nastavenie zručnosti ventilátora Alexa
Zatvorte otvorenú zručnosť a zvoľte „Pridať novú zručnosť“.
Nastavte názov zručnosti na „Ovládanie fanúšikom“a vyvolávací názov na slová, ktoré chcete použiť na aktiváciu zručnosti.
Pokračujte kliknutím na „Ďalej“.
Skopírujte/prilepte nasledujúce do poľa „Schéma zámeru“:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}}
Potom kliknite na položku „Pridať typ slotu“.
Do poľa „Zadajte typ“zadajte „FAN_CONTROL“.
Do poľa „Zadať hodnoty“zadajte nasledujúce hodnoty:
na
vypnuté
Ďalej skopírujte/prilepte nasledujúce do poľa „Ukážkové výpovede“:
FANControlIntent zase {status}
Pokračujte kliknutím na „Ďalej“. Ako typ koncového bodu služby vyberte „HTTPS“a vyberte oblasť. Zadajte adresu ngrok z kroku 2 a kliknite na „Ďalej“. Adresa URL by mala byť nasledovná:
ed6ea04d.ngrok.io
Pokračujte kliknutím na „Ďalej“a potom na „Uložiť“.
Krok 11: Zostavte obvod
Pripojte obvod podľa schémy. Na pripojenie k domácemu vedeniu 120 V AC a uzemneniu som použil 8 -kanálový reléový modul DC 5 V JBtek.
Krok 12: Príkazy Alexa
Teraz môžete Alexovi nahovoriť nasledujúce príkazy na ovládanie obývačky.
Odporúča:
Ovládajte svetlá pomocou Asistenta Google pomocou Arduina: 7 krokov
Ovládajte svetlá pomocou Asistenta Google pomocou Arduina: (Aktualizácia 22. augusta 2020: Tento návod je starý 2 roky a spolieha sa na niektoré aplikácie tretích strán. Akákoľvek zmena na ich strane môže spôsobiť, že tento projekt nebude fungovať. Môže, ale nemusí. teraz funguje, ale môžete ho použiť ako referenciu a upraviť podľa
Ovládajte svoj motor EV3 pomocou Alexa: 9 krokov
Ovládajte svoj motor EV3 pomocou Alexa: Chcete ovládať svoj LEGO EV3 hlasovými príkazmi? V tomto projekte ste sa mohli pokúsiť pohnúť motorom EV3 rozhovorom s Alexou. Všetko, čo potrebujete, je Amazon Echo Dot, doska Arduino Nano 33 IoT a EV3 s WiFi kľúčom a motorom. Cieľom je postaviť
IoTyper - Ovládajte svoj počítač pomocou systému Alexa (IoT): 5 krokov (s obrázkami)
IoTyper - Ovládajte svoj počítač cez Alexa (IoT): Neuvažovali ste niekedy o ovládaní svojho počítača pomocou IoT? Náš svet je zo dňa na deň múdrejší a dnes náš počítač premieňame na ešte múdrejší počítač, ako už je. Začnime! IoTyper je založený na dvoch základných mikrokontroléroch: ATMega 32U4, ktorý
Ovládajte spínač ohrievača pomocou relé pomocou Sonoff Th10: 8 krokov
Ovládajte spínač ohrievača pomocou relé pomocou Sonoff Th10: zariadenia sonoff vám umožňujú zapnúť a zapnúť elektrické zariadenie. model th10 je konkrétne navrhnutý tak, aby zapínal a vypínal ohrievače pomocou možnosti regulácie teploty a časového plánu. Problém nastáva, keď je váš domový ohrievač napájaný plynom
Ovládajte Arduino pomocou smartfónu cez USB pomocou aplikácie Blynk: 7 krokov (s obrázkami)
Ovládajte Arduino pomocou smartfónu cez USB pomocou aplikácie Blynk: V tomto návode sa naučíme používať aplikáciu Blynk a Arduino na ovládanie žiarovky, pričom kombinácia bude prostredníctvom sériového portu USB. Účelom tohto návodu je ukázať najjednoduchšie riešenie na diaľkové ovládanie Arduina alebo