Kazalo:
- 1. korak: Začetna nastavitev
- 2. korak: Namestite Ngrok
- 3. korak: Python Script za nadzor stikala za luč
- 4. korak: Python Script za nadzor ventilatorjev
- 5. korak: Namestitev in konfiguracija paketa LIRC
- 6. korak: Python Script za nadzor televizorja
- 7. korak: Prijavite se v račun AWS
- 8. korak: Nastavitev spretnosti TV Alexa
- 9. korak: Nastavi Alexa Skill Setup
- 10. korak: Nastavitev spretnosti Fan Alexa
- 11. korak: Zgradite Ciruit
- 12. korak: Ukazi Alexa
Video: Nadzor dnevne sobe z Alexa in Raspberry Pi: 12 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Upravljajte televizijo, luči in ventilator v dnevni sobi z Alexa (Amazon Echo ali Dot) in Raspberry Pi GPIO.
1. korak: Začetna nastavitev
Uporabil sem Raspberry Pi 2 in sliko Raspbian Jessie, preneseno s
Ko ste prijavljeni, vnesite naslednje ukaze za namestitev zahtevanih paketov in knjižnic python:
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
2. korak: Namestite Ngrok
Obiščite https://ngrok.com/download in si zagotovite najnovejšo izdajo Linux ARM kot zadrgo in razpakirajte v domačem imeniku:
razpakirajte /home/pi/ngrok-stable-linux-arm.zip
Odprite nov terminal in vnesite naslednji ukaz:
sudo./ngrok http 4000
Odprite nov terminal in vnesite naslednji ukaz:
sudo./ngrok http 4500
Odprite tretji novi terminal in vnesite naslednji ukaz:
sudo./ngrok http 5000
3. korak: Python Script za nadzor stikala za luč
Odprite novo terminalsko sejo in ustvarite novo datoteko python z imenom light_control.py:
nano light_control.py
Kopirajte/prilepite naslednjo kodo v novo datoteko:
iz flask import Flaskfrom flask_ask import Ask, stavek, convert_errors uvoz RPi. GPIO kot GPIO uvoz beleženja uvoz 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 razen izjeme kot e: return stavek ("Pin številka ni veljavna.") GPIO.setup (pinNum, GPIO. OUT), če je stanje v ['on', 'high']: GPIO.output (pinNum, GPIO. LOW), če je stanje v '' off ',' nizko ']: GPIO.output (pinNum, GPIO. HIGH) povratni stavek (' Obračanje {} luči dnevne sobe '. format (stanje)), če je _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', vrata = vrata)
Shranite in zaprite datoteko.
Strežnik bučke zaženite z:
sudo python light_control.py
Tako ngrok kot light_control.py pustite teči
4. korak: Python Script za nadzor ventilatorjev
Odprite novo terminalsko sejo in ustvarite novo datoteko python z imenom fan_control.py:
nano fan_control.py
Kopirajte/prilepite naslednjo kodo v novo datoteko:
iz bučke uvoz Flask
from flask_ask import Ask, stavek, convert_errors uvoz RPi. GPIO kot GPIO uvoz beleženja uvoz os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Vprašaj (app, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 razen izjeme kot e: return stavek ('PIN številka ni veljavno. ') GPIO.setup (pinNum, GPIO. OUT) if status in [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) if status in [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) povratni stavek ('Obračanje {} luči dnevne sobe'. Format (stanje)), če je _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = vrata)
Shranite in zaprite datoteko.
Strežnik bučke zaženite z:
sudo python fan_control.py
Pustite tako ngrok, light_control.py kot fan_control.py
5. korak: Namestitev in konfiguracija paketa LIRC
Za nadzor televizorja morate konfigurirati pin na Raspberry Pi za ustvarjanje infrardečih (IR) signalov za vaš televizor. Odprite terminal in vnesite naslednji ukaz za namestitev paketa LIRC, ki posnema infrardeče signale številnih daljinskih upravljalnikov.
sudo apt-get install lirc
Nato morate omogočiti in konfigurirati modul jedra lirc_rpi. Če želite to narediti, odprite module v urejevalniku Nano
sudo nano /etc /moduli
V datoteko dodajte spodnje vrstice (Prepričajte se, da parameter gpio_out_pin kaže na zatič, ki upravlja IR LED):
lirc_devlirc_rpi gpio_out_pin = 17
Nato odprite datoteko hardware.conf v Nano kot prej s sudo:
sudo nano /etc/lirc/hardware.conf
V datoteko dodajte naslednjo konfiguracijo:
LIRCD_ARGS = "-uinput" LOAD_MODULES = res
DRIVER = "privzeto"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Zdaj znova zaženite Raspberry Pi:
sudo ponovni zagon
6. korak: Python Script za nadzor televizorja
Odprite novo terminalsko sejo in ustvarite novo datoteko python z imenom ir_control.py:
nano ir_control.py
Pojdite na
Poiščite daljinski upravljalnik, ki je združljiv z vašim televizorjem. V mojem primeru imam televizor Sanyo, ki deluje s konfiguracijsko datoteko sanyo-tv01. Ko najdete datoteko, ki podpira vaš televizor, jo odprite in poglejte možnosti ukazov.
Kopirajte/prilepite naslednjo kodo v novo datoteko in zamenjajte sanyo-tv01 z imenom datoteke, ki deluje z vašim televizorjem. Prepričajte se tudi, da ukaze televizorja podpira konfiguracijska datoteka televizorjev; Za pravilno delovanje s konfiguracijsko datoteko televizorja boste morda morali spremeniti ukaze KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN in KEY_MUTE:
iz flask import Flaskfrom flask_ask import Ask, stavek, convert_errors uvoz RPi. GPIO kot GPIO uvoz beleženja uvoz 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): če je status v ['vklop']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") povratni stavek ("Vklop televizorja") elif status v ["izklopi"]: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") return statement ('Izklop televizorja') elif status v ['change input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return stavek ('Spreminjanje vhoda na televizorju') elif status v ['povečanje glasnosti']: 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 ") povratni stavek (" Povečanje glasnosti na televizorju ") elif status v ['znižaj glasnost']: os.system (" irsend SEND_ONCE sanyo-tv01 KEYNOL) 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_VOLY") ") return statement (" Zmanjšanje glasnosti na televizorju ") elif status v ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") return statement ('Muting the TV') elif status v ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") povratni stavek ("Preklic zvoka televizorja") else: return statement ("Oddaljena funkcija ni najdena.") če je _name_ ==' _main_ ': port = 5000 app.run (gostitelj = '0.0.0.0', vrata = vrata)
Shranite in zaprite datoteko.
Strežnik bučke zaženite z:
sudo python ir_control.py
Pustite vsa tri okna terminala ngrok, light_control.py, fan_control.py in ir_control.py
7. korak: Prijavite se v račun AWS
Najprej ustvarite ali se prijavite v svoj račun za razvijalce AWS in odprite svoj seznam Alexa Skills.
8. korak: Nastavitev spretnosti TV Alexa
Izberite "Dodaj novo znanje".
Ime spretnosti nastavite na »Sproži TV«, ime poziva pa na besede, ki jih želite uporabiti za aktiviranje spretnosti.
Za nadaljevanje kliknite 'Naprej'.
Kopirajte/prilepite naslednje v polje »Shema namenov«:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
Nato kliknite »Dodaj vrsto reže«
V polje 'Enter Type' vnesite TV_Function.
V polje "Vnesi vrednosti" vnesite naslednje vrednosti:
vklopiti
izklopi spremeniti vhod povečati glasnost zmanjšati glasnost utišati vklop
Nato v polje »Vzorčne izjave« kopirajte/prilepite naslednje:
GPIOControlIntent {status}
GPIOControlIntent {status} za {amount}
Za nadaljevanje kliknite 'Naprej'.
Kot vrsto končne točke storitve izberite »HTTPS« in izberite regijo. Vnesite URL ngrok iz 2. koraka in kliknite »Naprej«. URL bi moral biti nekaj takega:
ed6ea04d.ngrok.io
Za nadaljevanje kliknite »Naprej« in pritisnite »Shrani«.
9. korak: Nastavi Alexa Skill Setup
Zaprite odprto spretnost in izberite "Dodaj novo znanje".
Ime spretnosti nastavite na 'Nadzor luči', ime priklica pa na besede, ki jih želite uporabiti za aktiviranje spretnosti.
Za nadaljevanje kliknite 'Naprej'. Kopirajte/prilepite naslednje v polje »Shema namenov«:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
Nato kliknite »Dodaj vrsto reže«.
V polje "Vnesite vrsto" vnesite "LIGHTS_CONTROL".
V polje "Vnesi vrednosti" vnesite naslednje vrednosti:
naprej
izklopljeno
Nato v polje »Vzorčne izjave« kopirajte/prilepite naslednje:
LightsControlIntent obrnite {status}
Za nadaljevanje kliknite 'Naprej'. Kot vrsto končne točke storitve izberite »HTTPS« in izberite regijo. Vnesite URL ngrok iz 2. koraka in kliknite 'Naprej'. URL bi moral biti nekaj takega:
ed6ea04d.ngrok.io
Za nadaljevanje kliknite »Naprej« in pritisnite »Shrani«.
10. korak: Nastavitev spretnosti Fan Alexa
Zaprite odprto spretnost in izberite "Dodaj novo znanje".
Ime spretnosti nastavite na 'Nadzor ventilatorja', ime priklica pa na besede, ki jih želite uporabiti za aktiviranje spretnosti.
Za nadaljevanje kliknite 'Naprej'.
Kopirajte/prilepite naslednje v polje 'Namen sheme':
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Nato kliknite »Dodaj vrsto reže«.
V polje "Vnesite vrsto" vnesite "FAN_CONTROL".
V polje "Vnesi vrednosti" vnesite naslednje vrednosti:
naprej
izklopljeno
Nato v polje »Vzorčne izjave« kopirajte/prilepite naslednje:
FANControlIntent obrnite {status}
Za nadaljevanje kliknite 'Naprej'. Kot vrsto končne točke storitve izberite 'HTTPS' in izberite regijo. Vnesite URL ngrok iz 2. koraka in kliknite 'Naprej'. URL bi moral biti nekaj takega:
ed6ea04d.ngrok.io
Za nadaljevanje kliknite »Naprej« in pritisnite »Shrani«.
11. korak: Zgradite Ciruit
Priključite vezje, kot je prikazano na diagramu. Uporabil sem 8 -kanalni relejni modul DC 5V JBtek za povezavo z domom AC 120v AC in zemljo.
12. korak: Ukazi Alexa
Sedaj lahko z Alexa izgovorite naslednje ukaze za nadzor vaše dnevne sobe.
Priporočena:
Pobeg iz sobe Arduino: 6 korakov (s slikami)
Escape Room Arduino: Ta projekt govori o ustvarjanju prototipa sobe za pobeg z uporabo arduino por elektronskih komponent, osnovnega znanja o kodiranju. Ta soba za pobeg bo pokrivala 5 faz: (Za vsakogar je lahko drugače) 1. Senzor tlaka - LED Ko začnete
Sistem za nadzor in nadzor hidroponike Blynk: 4 koraki
Hydroponics Blynk Monitor & Control System: V tem projektu sem ustvaril nadzorni sistem, ki spremlja in nadzira vse vidike srednje velikega sistema odlivov in odtokov hidroponike. Prostor, v katerem sem ga zgradil, uporablja sisteme 4 x 4'x4 '640W LM301B 8 bar. Toda pri teh navodilih ne gre za moje luči. JAZ
Nadzor svetlosti PWM LED nadzor s potisnimi gumbi, Raspberry Pi in Scratch: 8 korakov (s slikami)
Nadzor svetlosti Upravljanje LED na osnovi PWM s potisnimi gumbi, Raspberry Pi in Scratch: poskušal sem najti način, kako svojim učencem razložiti, kako deluje PWM, zato sem si zadal nalogo, da poskušam nadzorovati svetlost LED z dvema gumboma - en gumb poveča svetlost LED, drugi pa ga zatemni. Za program
ESP8266 RGB LED STRIP WIFI Nadzor - NODEMCU Kot IR daljinski upravljalnik za LED trak, ki ga nadzira Wi -Fi - RGB LED STRIP Nadzor pametnega telefona: 4 koraki
ESP8266 RGB LED STRIP WIFI Nadzor | NODEMCU Kot IR daljinski upravljalnik za LED trak, ki ga nadzira Wi -Fi | RGB LED STRIP Smartphone Control: Pozdravljeni fantje, v tej vadnici se bomo naučili, kako uporabljati nodemcu ali esp8266 kot daljinski upravljalnik IR za nadzor LED traku RGB, Nodemcu pa bo preko wifi upravljal pametni telefon. V bistvu lahko s svojim pametnim telefonom upravljate RGB LED STRIP
Hidroponski sistem za nadzor in nadzor rastlinjaka: 5 korakov (s slikami)
Hidroponski sistem za nadzor in nadzor rastlinjakov: V tem navodilu vam bom pokazal, kako sestaviti hidroponski sistem za nadzor in nadzor rastlinjakov. Pokazal vam bom izbrane komponente, diagram ožičenja, kako je bilo vezje zgrajeno, in skico Arduino, uporabljeno za programiranje Seeed