Sadržaj:
- Korak 1: Početno postavljanje
- Korak 2: Postavite Ngrok
- Korak 3: Python skripta za kontrolu prekidača svjetla
- Korak 4: Python skripta za kontrolu ventilatora
- Korak 5: Instaliranje i konfiguriranje LIRC paketa
- Korak 6: Python skripta za kontrolu televizora
- Korak 7: Prijavite se na AWS račun
- Korak 8: Postavljanje TV Alexa vještine
- Korak 9: Osvjetljava postavljanje Alexa vještina
- Korak 10: Postavljanje vještine Alexa Alexa
- Korak 11: Izgradite Ciruit
- Korak 12: Alexa naredbe
Video: Upravljajte dnevnom sobom s Alexa i Raspberry Pi: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Upravljajte TV -om, svjetlima i ventilatorom u dnevnoj sobi pomoću Alexa (Amazon Echo ili Dot) i Raspberry Pi GPIO.
Korak 1: Početno postavljanje
Koristio sam Raspberry Pi 2 i Raspbian Jessie sliku preuzetu sa
Nakon što ste prijavljeni, unesite sljedeće naredbe za instaliranje potrebnih paketa i python biblioteka:
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
Korak 2: Postavite Ngrok
Posjetite https://ngrok.com/download i preuzmite najnovije izdanje Linux ARM -a kao zip i raspakirajte unutar početnog direktorija:
raspakirajte /home/pi/ngrok-stable-linux-arm.zip
Otvorite novi terminal i unesite sljedeću naredbu:
sudo./ngrok http 4000
Otvorite još jedan novi terminal i unesite sljedeću naredbu:
sudo./ngrok http 4500
Otvorite treći novi terminal i unesite sljedeću naredbu:
sudo./ngrok http 5000
Korak 3: Python skripta za kontrolu prekidača svjetla
Otvorite novu terminalsku sesiju i kreirajte novu python datoteku pod nazivom light_control.py:
nano light_control.py
Kopirajte/zalijepite sljedeći kod u novu datoteku:
iz flask import Flaskfrom flask_ask import Ask, statement, convert_errors uvoz RPi. GPIO kao 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 osim iznimke kao e: return naredbe ('Pin broj nije važeći.') GPIO.setup (pinNum, GPIO. OUT) ako je status u ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) if status in ['off', ' niska ']: GPIO.output (pinNum, GPIO. HIGH) povratna naredba (' Uključivanje {} svjetla dnevne sobe '. format (status)) ako je _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', port = port)
Sačuvajte i zatvorite datoteku.
Pokrenite flask server sa:
sudo python light_control.py
Ostavite da ngrok i light_control.py rade
Korak 4: Python skripta za kontrolu ventilatora
Otvorite novu terminalsku sesiju i kreirajte novu python datoteku pod nazivom fan_control.py:
nano fan_control.py
Kopirajte/zalijepite sljedeći kod u novu datoteku:
from flask import Flask
from flask_ask import Ask, statement, convert_errors import RPi. GPIO kao 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 osim izuzetka kao e: return naredba ('PIN broj nije važeća. ') GPIO.setup (pinNum, GPIO. OUT) ako je status u [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) if status in [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) povratna naredba ('Okretanje {} svjetla dnevne sobe'. Format (status)) ako je _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Sačuvajte i zatvorite datoteku.
Pokrenite flask server sa:
sudo python fan_control.py
Ostavite i ngrok, light_control.py i fan_control.py da rade
Korak 5: Instaliranje i konfiguriranje LIRC paketa
Da biste upravljali televizorom, morate konfigurirati pin na Raspberry Pi -u za generiranje infracrvenih (IC) signala za vaš određeni televizor. Otvorite terminal i unesite sljedeću naredbu za instaliranje LIRC paketa koji oponaša infracrvene signale mnogih daljinskih upravljača.
sudo apt-get install lirc
Zatim morate omogućiti i konfigurirati modul jezgre lirc_rpi. Da biste to učinili, otvorite module u Nano uređivaču
sudo nano /etc /modules
Dodajte donje retke u datoteku (Uvjerite se da parametar gpio_out_pin pokazuje na pin koji kontrolira IC LED):
lirc_devlirc_rpi gpio_out_pin = 17
Zatim otvorite datoteku hardware.conf u Nano -u kao i prije pomoću sudo:
sudo nano /etc/lirc/hardware.conf
Dodajte sljedeću konfiguraciju u datoteku:
LIRCD_ARGS = "-uinput" LOAD_MODULES = tačno
DRIVER = "zadano"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Sada ponovo pokrenite Raspberry Pi:
sudo reboot
Korak 6: Python skripta za kontrolu televizora
Otvorite novu terminalsku sesiju i kreirajte novu python datoteku pod nazivom ir_control.py:
nano ir_control.py
Idite na
Pronađite daljinski upravljač koji je kompatibilan s vašim televizorom. U mom slučaju imam Sanyo TV koji radi s konfiguracijskom datotekom sanyo-tv01. Kada pronađete datoteku koja podržava vaš TV, otvorite je i pregledajte opcije naredbi.
Kopirajte/zalijepite sljedeći kôd u novu datoteku i zamijenite sanyo-tv01 imenom datoteke koja radi s vašim televizorom. Takođe se pobrinite da TV komande podržavaju konfiguracijske datoteke vašeg televizora; Možda ćete morati izmijeniti naredbe KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN i KEY_MUTE za ispravan rad s konfiguracijskom datotekom vašeg televizora:
iz flask import Flaskfrom flask_ask import Ask, statement, convert_errors uvoz RPi. GPIO kao 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 ['uključivanje']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") povratna izjava ('Uključivanje televizora') elif status u ['isključivanje']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") return statement ('Isključivanje televizora') elif status u ['change input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return izjava ('Promjena ulaza na TV-u') elif status u ['povećaj jačinu zvuka']: 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 ") return statement (" Povećanje jačine zvuka na TV-u ") elif status u ['smanjuje jačinu zvuka']: 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_OOL" ir ") return statement ('Smanjivanje jačine zvuka na TV-u') elif status u ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") return statement ('Muting the TV') elif status u ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return naredba (' Unmuting TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
Sačuvajte i zatvorite datoteku.
Pokrenite flask server sa:
sudo python ir_control.py
Ostavite sva tri prozora terminala ngrok, light_control.py, fan_control.py i ir_control.py
Korak 7: Prijavite se na AWS račun
Prvo stvorite ili se prijavite na svoj AWS račun za programere i otvorite svoju listu Alexa vještina.
Korak 8: Postavljanje TV Alexa vještine
Odaberite "Dodaj novu vještinu".
Postavite naziv vještine na 'Trigger TV', a naziv poziva na riječi koje želite koristiti za aktiviranje vještine.
Kliknite 'Dalje' za nastavak.
Kopirajte/zalijepite sljedeće u okvir 'Shema namjere':
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
Zatim kliknite "Dodaj vrstu utora"
Unesite TV_Function u polje 'Enter Type'.
Unesite sljedeće vrijednosti u polje 'Unesite vrijednosti':
uključi
isključiti promeniti ulaz povećati jačinu zvuka smanjiti jačinu zvuka isključiti zvuk
Zatim kopirajte/zalijepite sljedeće u okvir 'Primjeri izjava':
GPIOControlIntent {status}
GPIOControlIntent {status} prema {amount}
Kliknite 'Dalje' za nastavak.
Odaberite "HTTPS" kao vrstu krajnje točke usluge i odaberite regiju. Unesite ngrok URL iz koraka 2 i kliknite "Dalje". URL bi trebao biti nešto poput:
ed6ea04d.ngrok.io
Pritisnite 'Dalje' za nastavak i pritisnite 'Spremi'.
Korak 9: Osvjetljava postavljanje Alexa vještina
Zatvorite otvorenu vještinu i odaberite "Dodaj novu vještinu".
Postavite naziv vještine na 'Kontrola svjetla', a naziv poziva na riječ (i) koje želite koristiti za aktiviranje vještine.
Kliknite 'Dalje' za nastavak. Kopirajte/zalijepite sljedeće u okvir 'Shema namjere':
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
Zatim kliknite 'Dodaj vrstu utora'.
Unesite "LIGHTS_CONTROL" u polje 'Enter Type'.
Unesite sljedeće vrijednosti u polje 'Unesite vrijednosti':
uključeno
isključeno
Zatim kopirajte/zalijepite sljedeće u okvir 'Primjeri izjava':
LightsControlIntent skrenite {status}
Kliknite 'Dalje' za nastavak. Odaberite „HTTPS“kao vrstu krajnje točke usluge i odaberite regiju. Unesite ngrok URL iz koraka 2 i kliknite 'Dalje'. URL bi trebao biti nešto poput:
ed6ea04d.ngrok.io
Pritisnite 'Dalje' za nastavak i pritisnite 'Spremi'.
Korak 10: Postavljanje vještine Alexa Alexa
Zatvorite otvorenu vještinu i odaberite "Dodaj novu vještinu".
Postavite naziv vještine na 'Kontrola obožavatelja', a naziv poziva na riječ (i) koje želite koristiti za aktiviranje vještine.
Kliknite 'Dalje' za nastavak.
Kopirajte/zalijepite sljedeće u okvir 'Shema namjere':
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Zatim kliknite 'Dodaj vrstu utora'.
Unesite "FAN_CONTROL" u polje 'Enter Type'.
Unesite sljedeće vrijednosti u polje 'Unesite vrijednosti':
uključeno
isključeno
Zatim kopirajte/zalijepite sljedeće u okvir 'Primjeri izjava':
FANControlIntent skrenite {status}
Kliknite 'Dalje' za nastavak. Odaberite „HTTPS“kao vrstu krajnje točke usluge i odaberite regiju. Unesite ngrok URL iz koraka 2 i kliknite 'Dalje'. URL bi trebao biti nešto poput:
ed6ea04d.ngrok.io
Pritisnite 'Dalje' za nastavak i pritisnite 'Spremi'.
Korak 11: Izgradite Ciruit
Spojite krug kao što je prikazano na dijagramu. Koristio sam JBtek 8 -kanalni DC 5V relejni modul za spajanje na kućnu AC 120v liniju i masu.
Korak 12: Alexa naredbe
Sada se Aleksa može izgovoriti sljedeće naredbe kako bi kontrolirao vašu dnevnu sobu.
Preporučuje se:
Upravljajte kućnim aparatima putem Alexa pomoću ESP8266 ili ESP32: 8 koraka
Upravljajte kućnim aparatima putem Alexa pomoću ESP8266 ili ESP32: Hej, šta ima, momci! Akarsh ovdje iz CETech -a. Ovaj moj projekt će vam pomoći da vam život postane lak, a vi ćete se osjećati kao kralj nakon što kontrolirate kućanske aparate u svojoj kući samo dajući naredbu Alexa. Glavna stvar iza ovog p
Uradi sam sa sobom užarene kugle sa Arduinom: 8 koraka (sa slikama)
Uradi sam sjajne kugle sa Arduinom: Zdravo momci :-) U ovom uputstvu ću izgraditi nevjerojatan Arduino LED projekt. Koristio sam zmajeve kuglice napravljene od stakla, zalijepio sam bijelu LED za svaku zmajevu kuglu i programirao Arduino sa različitim uzorak poput efekta disanja, slaganje po st
Ponesite kućni WiFi sa sobom u automobil: 5 koraka
Ponesite kućni WiFi sa sobom u automobil: Čak i ako nam se to sviđa ili ne, bili smo u poziciji da satima sjedimo u automobilu na dugim putovanjima. Kako biste potrošili vrijeme, izvadite nam telefon, ali prije ili kasnije od mobilne kompanije dobijete glupu poruku da vam je ponestalo podataka
Upravljanje pametnom sobom: 5 koraka
Kontrola pametne sobe: U ovom projektu želimo naučiti kako koristiti AWS i MQTT u našim postavkama. Budući da ste u svijetu tehnologije, koliko će biti sjajno moći kontrolirati svoju sobu samo sa svojim prijenosnim računarom! Zamislite sebe kako žurite s vremenom da dovršite svoje projekte, šetate
Upravljajte računarom sa sobom Iphone/ Ipod Touch V2: 3 koraka
Upravljajte računarom sa sobom Iphone/ Ipod Touch V2: U posljednjih nekoliko mjeseci ljudi su me pitali o problemima na koje su naišli sa softverom koji je ponuđen u mojoj zadnjoj Instrukciji za Apple na Windows. Pronašao sam neki novi softver pod nazivom Jaadu VNC, koji vam omogućava da učinite isto b