Tartalomjegyzék:

Irányítsd a nappalit Alexával és Raspberry Pi -vel: 12 lépés
Irányítsd a nappalit Alexával és Raspberry Pi -vel: 12 lépés

Videó: Irányítsd a nappalit Alexával és Raspberry Pi -vel: 12 lépés

Videó: Irányítsd a nappalit Alexával és Raspberry Pi -vel: 12 lépés
Videó: Агрогороскоп посева семян помидоров на рассаду в марте 2022 года 2024, Szeptember
Anonim
Irányítsd a nappalit Alexával és Raspberry Pi -vel
Irányítsd a nappalit Alexával és Raspberry Pi -vel

Irányítsd nappalid TV -jét, fényeit és ventilátorát az Alexa (Amazon Echo vagy Dot) és a Raspberry Pi GPIO segítségével.

1. lépés: Kezdeti beállítás

Egy Raspberry Pi 2 -t és egy Raspbian Jessie -képet használtam, amelyeket a https://www.raspberrypi.org/downloads/raspbian/ webhelyről töltöttek le

Bejelentkezés után írja be a következő parancsokat a szükséges csomagok és python könyvtárak telepítéséhez:

sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Lombik lombik-ask sudo apt-get install lirc

2. lépés: Az Ngrok beállítása

Az Ngrok beállítása
Az Ngrok beállítása

Látogasson el a https://ngrok.com/download oldalra, és töltse le a legújabb Linux ARM kiadást zip -ként, és bontsa ki a saját könyvtárban:

bontsa ki a /home/pi/ngrok-stable-linux-arm.zip fájlt

Nyisson meg egy új terminált, és írja be a következő parancsot:

sudo./ngrok http 4000

Nyisson meg egy új terminált, és írja be a következő parancsot:

sudo./ngrok http 4500

Nyissa meg a harmadik új terminált, és írja be a következő parancsot:

sudo./ngrok http 5000

3. lépés: Python -szkript a fénykapcsoló vezérléséhez

Nyisson meg egy új terminál szekciót, és hozzon létre egy új python fájlt light_control.py néven:

nano light_control.py

Másolja/illessze be a következő kódot az új fájlba:

lombik importálásból Lombikfrom flask_ask import Kérdés, utasítás, convert_errors import RPi. GPIO mint GPIO import naplózás importálás os GPIO.setmode (GPIO. BCM) app = Lombik (_ name_) ask = Ask (app, '/') logging.getLogger (" setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (állapot): try: pinNum = 27, kivétel e: return utasítás ('A PIN -kód érvénytelen.') GPIO.setup (pinNum, GPIO. OUT), ha az állapot ['on', 'high']: GPIO.output (pinNum, GPIO. LOW), ha az állapot ['off', ' low ']: GPIO.output (pinNum, GPIO. HIGH) return utasítás (' Turning {} the Living Room Lights'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ') 0.0.0.0 ', port = port)

Mentse és zárja be a fájlt.

Indítsa el a lombik szervert a következővel:

sudo python light_control.py

Hagyja futni mind az ngrok, mind a light_control.py

4. lépés: Python -szkript a ventilátorvezérléshez

Nyisson meg egy új terminál szekciót, és hozzon létre egy új python fájlt fan_control.py néven:

nano fan_control.py

Másolja/illessze be a következő kódot az új fájlba:

lombik import lombikból

from flask_ask import Kérdés, utasítás, convert_errors import RPi. GPIO mint GPIO import naplózás 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 (állapot): try: pinNum = 22, kivéve e: return utasítás nem érvényes. ') GPIO.setup (pinNum, GPIO. OUT), ha az állapot [' be ',' magas ']: GPIO.output (pinNum, GPIO. LOW), ha az állapot [' ki ',' alacsony ']: GPIO.output (pinNum, GPIO. HIGH) visszatérési utasítás ('Turning {} the Living Room Lights'.format (status)) if _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = port)

Mentse és zárja be a fájlt.

Indítsa el a lombik szervert a következővel:

sudo python fan_control.py

Hagyja futni mind az ngrok, mind a light_control.py, mind a fan_control.py fájlokat

5. lépés: A LIRC csomag telepítése és konfigurálása

A TV vezérléséhez konfigurálnia kell egy tűt a Raspberry Pi -n, hogy infravörös (IR) jeleket generáljon az adott TV -hez. Nyissa meg a terminált, és írja be a következő parancsot egy LIRC csomag telepítéséhez, amely sok távirányító infravörös jeleit emulálja.

sudo apt-get install lirc

Ezután engedélyeznie és konfigurálnia kell a lirc_rpi kernel modult. Ehhez nyisson meg modulokat a Nano szerkesztőben

sudo nano /etc /modules

Adja hozzá az alábbi sorokat a fájlhoz (Győződjön meg arról, hogy a gpio_out_pin paraméter az IR LED -et vezérlő tűre mutat):

lirc_devlirc_rpi gpio_out_pin = 17

Ezután nyissa meg a hardware.conf fájlt a Nano -ban, mint korábban sudo -val:

sudo nano /etc/lirc/hardware.conf

Adja hozzá a következő konfigurációt a fájlhoz:

LIRCD_ARGS = "-uinput" LOAD_MODULES = igaz

DRIVER = "alapértelmezett"

Eszköz = "/dev/lirc0"

MODULES = "lirc_rpi"

LIRCD_CONF = ""

LIRCMD_CONF = ""

Most indítsa újra a Raspberry Pi -t:

sudo újraindítás

6. lépés: Python -szkript a TV -vezérléshez

Nyisson meg egy új terminál munkamenetet, és hozzon létre egy új python fájlt ir_control.py néven:

nano ir_control.py

Lépjen a https://lirc-remotes.sourceforge.net/remotes-table… oldalra.

Keresse meg a TV -vel kompatibilis távirányítót. Esetemben van egy Sanyo TV-m, amely a sanyo-tv01 konfigurációs fájllal működik. Ha megtalálta a TV -t támogató fájlt, nyissa meg, és nézze át a parancsbeállításokat.

Másolja/illessze be a következő kódot az új fájlba, és cserélje le a sanyo-tv01-et a TV-vel működő fájlnévvel. Győződjön meg arról is, hogy a tv -parancsokat támogatja a TV konfigurációs fájlja; Lehet, hogy módosítania kell a KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN és KEY_MUTE parancsokat, hogy megfelelően működjenek a TV konfigurációs fájljával:

lombik importálásból Lombikfrom flask_ask import Kérdés, utasítás, convert_errors import RPi. GPIO mint GPIO import naplózás import os GPIO.setmode (GPIO. BCM) app = Lombik (_ név_) ask = Kérdezzen (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): ha az ['bekapcsolás']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") visszatérési utasítás ("A TV bekapcsolása") elif állapota a ['kikapcsolás'] alatt: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") visszatérési utasítás ('A TV kikapcsolása') elif állapota a ['input input'] -ban: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return utasítás ('A tévé bemenetének megváltoztatása') elif állapota a ['hangerő növelése'] -ben: 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 ") visszatérési utasítás (" Hangerő növelése a tévén ") elif állapota ['hangerő csökkentése']: 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_VOLUMEDSOWNYENSENSION ") visszatérési nyilatkozat (" Csökkenő hangerő a TV-n ") elif állapota ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") visszatérési nyilatkozat (" A TV némítása ") elif állapota

Mentse és zárja be a fájlt.

Indítsa el a lombik szervert a következővel:

sudo python ir_control.py

Hagyja futni mind a három ngrok terminálablakot, a light_control.py, fan_control.py és ir_control.py

7. lépés: Jelentkezzen be az AWS -fiókba

Jelentkezzen be az AWS fiókba
Jelentkezzen be az AWS fiókba

Először hozza létre vagy jelentkezzen be AWS fejlesztői fiókjába, és nyissa meg az Alexa Skills listáját.

8. lépés: TV Alexa készség beállítása

TV Alexa készség beállítása
TV Alexa készség beállítása

Válassza az "Új készség hozzáadása" lehetőséget.

Állítsa a készségnevet „Trigger TV” értékre, a meghívási nevet pedig a szó (k) ra, amelyet használni szeretne a készség aktiválásához.

A folytatáshoz kattintson a „Tovább” gombra.

Másolja/illessze be a következőket a "Intent Schema" mezőbe:

"slot": [{"name": "status", "type": "TV_Function"}, {"name": "összeg", "type": "AMAZON. NUMBER"}], "aim": "GPIOControlIntent "}]}

Ezután kattintson a "Rés típus hozzáadása" gombra

Írja be a TV_Function funkciót az „Enter Type” mezőbe.

Írja be az alábbi értékeket az „Értékek megadása” mezőbe:

bekapcsol

kikapcsolás változtat bemenet hangerő csökkentése hangerő némítás némítás feloldása

Ezután másolja/illessze be a következőket a "Minta kijelentések" mezőbe:

GPIOControlIntent {status}

GPIOControlIntent {status} {összeg} szerint

A folytatáshoz kattintson a „Tovább” gombra.

Válassza ki a „HTTPS” szolgáltatási végpont típusát, és válasszon ki egy régiót. Írja be az ngrok URL -t a 2. lépésből, majd kattintson a „Tovább” gombra. Az URL -nek valahogy így kell lennie:

ed6ea04d.ngrok.io

A folytatáshoz kattintson a „Tovább” gombra, majd a „Mentés” gombra.

9. lépés: Világít az Alexa Skill Setup

Fények Alexa Skill Setup
Fények Alexa Skill Setup

Zárja be a nyitott készséget, és válassza az "Új készség hozzáadása" lehetőséget.

Állítsa a készségnevet „Lights Control” értékre, a meghívási nevet pedig a szó (k) ra, amelyet használni szeretne a készség aktiválásához.

A folytatáshoz kattintson a „Tovább” gombra. Másolja/illessze be a következőket a "Intent Schema" mezőbe:

{

"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "aim": "LightsControlIntent"}]}

Ezután kattintson a „Rés típus hozzáadása” gombra.

Írja be a "LIGHTS_CONTROL" mezőt az "Enter Type" mezőbe.

Írja be az alábbi értékeket az „Értékek megadása” mezőbe:

tovább

ki

Ezután másolja/illessze be a következőket a "Minta kijelentések" mezőbe:

LightsControlIntent turn {status}

A folytatáshoz kattintson a „Tovább” gombra. Válassza ki a „HTTPS” szolgáltatási végpont típusát, és válassza ki a régiót. Írja be a ngrok URL -t a 2. lépésből, majd kattintson a „Tovább” gombra. Az URL -nek valahogy így kell lennie:

ed6ea04d.ngrok.io

A folytatáshoz kattintson a „Tovább” gombra, majd a „Mentés” gombra.

10. lépés: rajongó Alexa készség beállítása

Ventilátor Alexa Skill Setup
Ventilátor Alexa Skill Setup

Zárja be a nyitott készséget, és válassza az "Új készség hozzáadása" lehetőséget.

Állítsa a készségnevet „Ventilátorvezérlés” -re, a meghívási nevet pedig a szó (k) ra, amelyet használni szeretne a készség aktiválásához.

A folytatáshoz kattintson a „Tovább” gombra.

Másolja/illessze be a következőket a "Intent Schema" mezőbe:

{

"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "aim": "FANControlIntent"}]}

Ezután kattintson a „Rés típus hozzáadása” gombra.

Írja be a "FAN_CONTROL" mezőt az "Enter Type" mezőbe.

Írja be az alábbi értékeket az „Értékek megadása” mezőbe:

tovább

ki

Ezután másolja/illessze be a következőket a "Minta kijelentések" mezőbe:

FANControlIntent turn {status}

A folytatáshoz kattintson a „Tovább” gombra. Válassza ki a „HTTPS” szolgáltatási végpont típusát, és válassza ki a régiót. Írja be a ngrok URL -t a 2. lépésből, majd kattintson a „Tovább” gombra. Az URL -nek valahogy így kell lennie:

ed6ea04d.ngrok.io

A folytatáshoz kattintson a „Tovább” gombra, majd a „Mentés” gombra.

11. lépés: Építse fel az áramkört

Építsd meg a kört
Építsd meg a kört

Csatlakoztassa az áramkört az ábra szerint. JBtek 8 csatornás egyenáramú 5 V -os relé modult használtam az otthoni AC 120 V -os vezeték és a föld csatlakoztatásához.

12. lépés: Alexa parancsol

Most a következő parancsokat lehet elmondani Alexának, hogy irányítsa a nappalit.

Ajánlott: