Sadržaj:
- Korak 1: Početno postavljanje
- Korak 2: Postavljanje Ngroka
- 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 upravljanje televizorom
- Korak 7: Prijavite se na AWS račun
- Korak 8: Postavljanje TV Alexa vještine
- Korak 9: Osvjetljava postavljanje Alexa vještine
- Korak 10: Postavljanje vještine Fan Alexa
- Korak 11: Izgradite Ciruit
- Korak 12: Alexa naredbe
Video: Upravljajte dnevnim boravkom s Alexa i Raspberry Pi: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
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 sliku Raspbian Jessie preuzetu sa
Nakon što se prijavite, unesite sljedeće naredbe za instaliranje potrebnih paketa i python knjižnica:
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: Postavljanje Ngroka
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 drugi 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 stvorite novu python datoteku imena light_control.py:
nano light_control.py
Kopirajte/zalijepite sljedeći kôd u novu datoteku:
iz flask import Flaskfrom flask_ask import Ask, statement, convert_errors uvoz RPi. GPIO kao GPIO uvoz log log 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', ' low ']: GPIO.output (pinNum, GPIO. HIGH) return statement (' Uključivanje {} svjetla dnevne sobe'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
Spremite i zatvorite datoteku.
Pokrenite poslužitelj flask 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 stvorite novu python datoteku pod nazivom fan_control.py:
nano fan_control.py
Kopirajte/zalijepite sljedeći kôd u novu datoteku:
iz tikvice uvoz 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 iznimke kao e: return naredba ('PIN broj nije važeća. ') 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) povratna naredba ('Uključivanje {} svjetla dnevne sobe'. Format (status)) ako je _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Spremite i zatvorite datoteku.
Pokrenite flask poslužitelj sa:
sudo python fan_control.py
Ostavite pokrenute i ngrok, light_control.py i fan_control.py
Korak 5: Instaliranje i konfiguriranje LIRC paketa
Da biste upravljali televizorom, morate konfigurirati pin na Raspberry Pi -u za generiranje infracrvenih (IR) 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 /moduli
Dodajte donje retke u datoteku (Pazite 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 Nanou kao i prije pomoću sudo:
sudo nano /etc/lirc/hardware.conf
Datoteci dodajte sljedeću konfiguraciju:
LIRCD_ARGS = "-uinput" LOAD_MODULES = istina
DRIVER = "zadano"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Sada ponovno pokrenite Raspberry Pi:
sudo ponovno podizanje sustava
Korak 6: Python skripta za upravljanje televizorom
Otvorite novu terminalsku sesiju i stvorite 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. Nakon što pronađete datoteku koja podržava vaš televizor, 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đer provjerite podržavaju li konfiguracijske datoteke televizora TV naredbe; Možda ćete morati izmijeniti naredbe KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN i KEY_MUTE za ispravan rad s konfiguracijskom datotekom televizora:
iz flask import Flaskfrom flask_ask import Ask, statement, convert_errors uvoz RPi. GPIO kao GPIO uvoz log log 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či"]: 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 glasnoću']: 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 glasnoće na televizoru ") elif status u ['smanjivanje glasnoće']: 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 ('Smanjivanje glasnoće 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 statement (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
Spremite i zatvorite datoteku.
Pokrenite poslužitelj flask 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 popis 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 upotrijebiti za aktiviranje vještine.
Pritisnite "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'.
U polje "Unesite vrijednosti" unesite sljedeće vrijednosti:
upaliti
isključiti promijeniti ulaz povećati jačinu zvuka smanjiti glasnoću utišati uključiti
Zatim kopirajte/zalijepite sljedeće u okvir "Primjeri izjava":
GPIOControlIntent {status}
GPIOControlIntent {status} prema {amount}
Pritisnite "Dalje" za nastavak.
Odaberite "HTTPS" kao vrstu krajnje točke usluge i odaberite regiju. Unesite URL ngrok 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štine
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 upotrijebiti za aktiviranje vještine.
Pritisnite "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 "Unesite vrstu".
U polje "Unesite vrijednosti" unesite sljedeće vrijednosti:
na
isključeno
Zatim kopirajte/zalijepite sljedeće u okvir "Primjeri izjava":
LightsControlIntent skrenite {status}
Pritisnite "Dalje" za nastavak. Odaberite "HTTPS" kao vrstu krajnje točke usluge i odaberite regiju. Unesite ngrok URL iz 2. koraka 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 Fan 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 upotrijebiti za aktiviranje vještine.
Pritisnite "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 "Unesite vrstu".
U polje "Unesite vrijednosti" unesite sljedeće vrijednosti:
na
isključeno
Zatim kopirajte/zalijepite sljedeće u okvir "Primjeri izjava":
FANControlIntent skrenite {status}
Pritisnite "Dalje" za nastavak. Odaberite "HTTPS" kao vrstu krajnje točke usluge i odaberite regiju. Unesite ngrok URL iz 2. koraka 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 s Alexa mogu izgovoriti sljedeće naredbe za kontrolu vaše dnevne sobe.
Preporučeni:
Upravljajte Raspberry Pi bez monitora .: 7 koraka
Upravljajte Raspberry Pi bez monitora. U prethodnim uputama podijelio sam vodič za početnike o Raspberry Pi. Tamo smo vidjeli kako podići Raspbian na Pi i koristiti ga kao radnu površinu. No za to postavljanje potrebno nam je mnogo perifernih uređaja poput monitora, HDMI kabela, bežične tipkovnice i OTG adaptera
Upravljajte svojim EV3 motorom pomoću Alexa: 9 koraka
Upravljajte svojim EV3 motorom pomoću Alexa: Želite li upravljati svojim LEGO EV3 glasovnim naredbama? U ovom projektu mogli biste pokušati premjestiti EV3 motor razgovarajući s Alexa. Sve što trebate je Amazon Echo Dot, Arduino Nano 33 IoT ploča i EV3 s WiFi ključem i motorom. Ideja je izgraditi
IoTyper - Upravljajte svojim računalom putem Alexa (IoT): 5 koraka (sa slikama)
IoTyper - Upravljajte svojim računalom putem Alexa (IoT): Jeste li ikada razmišljali o kontroliranju računala pomoću IoT -a? Naš svijet iz dana u dan postaje sve pametniji i danas pretvaramo naše računalo u još pametnije računalo nego što već jest. Počnimo! IoTyper se temelji na dva osnovna mikrokontrolera: ATMega 32U4 koji
Upravljajte svojim kaminom pomoću HomeKita i Alexa: 7 koraka
Upravljajte svojim kaminom pomoću programa HomeKit i Alexa: Nedavno sam instalirao plinski kamin s daljinskim upravljačem. I nakon što sam vidio nekoliko primjera ljudi koji integriraju svoje kamine u kućnu kontrolu, počeo sam ih tražiti. Moj kamin ima ovaj daljinski upravljač
Upravljajte labirintom ravnoteže pomoću Alexa: 6 koraka (sa slikama)
Upravljajte labirintom ravnoteže pomoću Alexa: Upravljajte labirintom ravnoteže pomoću AlexaMove labirinta glasom. Prije svega, pogledajte video. To je sažetak operacije. Razgovarajte s Alexa (Raspberry Pi + AVS) RECITE: Alexa Start SkillSAY: BARANSU MEIRO WO KIDOU SHITE Uputite SkillSAY: 1 DO, UE N