Përmbajtje:
- Hapi 1: Konfigurimi fillestar
- Hapi 2: Konfiguroni Ngrok
- Hapi 3: Python Script për Kontrollin e Ndërrimit të Dritës
- Hapi 4: Python Script për Kontrollin e Tifozëve
- Hapi 5: Instalimi dhe Konfigurimi i Pakos LIRC
- Hapi 6: Python Script për Kontrollin e TV
- Hapi 7: Hyni në llogarinë AWS
- Hapi 8: Konfigurimi i aftësive të TV Alexa
- Hapi 9: Lights Alexa Skill Setup
- Hapi 10: Konfigurimi i Aftësisë së Fan Alexa
- Hapi 11: Ndërtoni Ciruit
- Hapi 12: Komandat Alexa
Video: Kontrolloni dhomën e ndenjes me Alexa dhe Raspberry Pi: 12 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Kontrolloni televizorin, dritat dhe ventilatorin e dhomës tuaj të ndenjes me Alexa (Amazon Echo ose Dot) dhe Raspberry Pi GPIO.
Hapi 1: Konfigurimi fillestar
Kam përdorur një Raspberry Pi 2 dhe një imazh Raspbian Jessie të shkarkuar nga
Pasi të jeni regjistruar, futni komandat e mëposhtme për të instaluar paketat e kërkuara dhe bibliotekat python:
sudo apt-merrni përditësim && sudo apt-merrni azhurnim -ysudo apt-get instaloni python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc
Hapi 2: Konfiguroni Ngrok
Vizitoni https://ngrok.com/download dhe merrni versionin më të fundit të Linux ARM si zip dhe zbërtheni brenda direktorisë kryesore:
zbërtheni /home/pi/ngrok-stable-linux-arm.zip
Hapni një terminal të ri dhe futni komandën e mëposhtme:
sudo./ngrok http 4000
Hapni një terminal tjetër të ri dhe futni komandën e mëposhtme:
sudo./ngrok http 4500
Hapni terminalin e tretë të ri dhe futni komandën e mëposhtme:
sudo./ngrok http 5000
Hapi 3: Python Script për Kontrollin e Ndërrimit të Dritës
Hapni një sesion të ri terminali dhe krijoni një skedar të ri python të quajtur light_control.py:
nano light_control.py
Kopjoni/ngjisni kodin e mëposhtëm në skedarin e ri:
nga importi i shisheve Flaskfrom flask_ask import Pyetni, deklaratë, convert_errors importoni RPi. GPIO si import GPIO 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): provo: pinNum = 27 përveç Përjashtim si e: deklarata e kthimit ('Numri i kunjit nuk është i vlefshëm.') GPIO.setup (pinNum, GPIO. OUT) nëse statusi në ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) nëse statusi në ['off', ' i ulët ']: GPIO.output (pinNum, GPIO. HIGH) deklarata e kthimit (' Duke i kthyer {} dritat e dhomës së ndenjes '. format (statusi)) nëse _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', port = port)
Ruani dhe mbyllni skedarin.
Filloni serverin e shisheve me:
sudo python light_control.py
Lërini ngrohjen dhe light_control.py të funksionojnë
Hapi 4: Python Script për Kontrollin e Tifozëve
Hapni një sesion të ri terminali dhe krijoni një skedar të ri python të quajtur fan_control.py:
nano fan_control.py
Kopjoni/ngjisni kodin e mëposhtëm në skedarin e ri:
nga importi i balonës Flaska
nga flask_ask import Pyet, deklaratë, convert_errors import RPi. GPIO si GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Pyet (aplikacion, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 përveç Përjashtim si e: deklarata e kthimit ('Pin number e pavlefshme.: GPIO.output (pinNum, GPIO. HIGH) deklarata e kthimit ('Duke i kthyer {} dritat e dhomës së ndenjes'. Format (status)) nëse _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Ruani dhe mbyllni skedarin.
Filloni serverin e shisheve me:
sudo python fan_control.py
Lërini të dy ngrok, light_control.py dhe fan_control.py të funksionojnë
Hapi 5: Instalimi dhe Konfigurimi i Pakos LIRC
Për të kontrolluar televizorin, duhet të konfiguroni një kunj në Raspberry Pi për të gjeneruar sinjale infra të kuqe (IR) për televizorin tuaj specifik. Hapni terminalin dhe futni komandën e mëposhtme për të instaluar një paketë LIRC që imiton sinjalet infra të kuqe të shumë telekomandave.
sudo apt-get install lirc
Tjetra, duhet të aktivizoni dhe konfiguroni modulin e kernelit lirc_rpi. Për ta bërë këtë, hapni modulet në redaktuesin Nano
sudo nano /etc /module
Shtoni rreshtat më poshtë në skedar (Sigurohuni që parametri gpio_out_pin të tregojë në kunjin që kontrollon LED LED):
lirc_devlirc_rpi gpio_out_pin = 17
Tjetra, hapni skedarin hardware.conf në Nano si më parë me sudo:
sudo nano /etc/lirc/hardware.conf
Shtoni konfigurimin e mëposhtëm në skedar:
LIRCD_ARGS = "-uinput" LOAD_MODULES = e vërtetë
SHOFER = "parazgjedhje"
Pajisje = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Tani, rindizni Raspberry Pi:
rindez sudo
Hapi 6: Python Script për Kontrollin e TV
Hapni një sesion të ri terminali dhe krijoni një skedar të ri python të quajtur ir_control.py:
nano ir_control.py
Shkoni te
Gjeni një telekomandë që është në përputhje me televizorin tuaj. Në rastin tim kam një TV Sanyo që punon me skedarin e konfigurimit sanyo-tv01. Pasi të gjeni një skedar që mbështet televizorin tuaj, hapeni atë dhe shikoni opsionet e komandës.
Kopjoni/ngjisni kodin e mëposhtëm në skedarin e ri dhe zëvendësoni sanyo-tv01 me emrin e skedarit që punon me televizorin tuaj. Gjithashtu sigurohuni që komandat e televizorit të mbështeten nga skedari i konfigurimit të televizorëve tuaj; Mund t'ju duhet të modifikoni komandat KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN dhe KEY_MUTE për të punuar si duhet me skedarin e konfigurimit të televizorit tuaj:
nga importi i shisheve Flaskfrom flask_ask import Pyetni, deklaratë, convert_errors importoni RPi. GPIO si import GPIO 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): nëse statusi në ['ndizet']:: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") deklarata e kthimit ('Aktivizimi i televizorit') statusi elif në ['fikur']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") deklarata e kthimit ('Fikja e televizorit') statusi elif në ['ndrysho hyrjen']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") kthim deklarata ('Ndryshimi i hyrjes në TV') statusi elif në ['rrit volumin']: 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 ") deklarata e kthimit ('Rritja e volumit në TV') elif statusi në ['ul volumin']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMED sistemi 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_VOLUMEDOWNOYEDYONY" ") deklarata e kthimit ('Zvogëlimi i volumit në televizor') statusi elif në ['memec']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") deklarata e kthimit ('Mute TV')) statusi elif në ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") deklarata e kthimit (' Çaktivizimi i televizorit ') tjetër: deklarata e kthimit (' Funksioni në distancë nuk u gjet. ') nëse _name_ ==' _main_ ': port = 5000 aplikacion.run (host = '0.0.0.0', port = port)
Ruani dhe mbyllni skedarin.
Filloni serverin e shisheve me:
sudo python ir_control.py
Lërini të funksionojnë të tre dritaret e terminalit ngrok, light_control.py, fan_control.py dhe ir_control.py
Hapi 7: Hyni në llogarinë AWS
Së pari krijoni ose regjistrohuni në Llogarinë tuaj të Zhvilluesit AWS dhe hapni listën tuaj të Aftësive Alexa.
Hapi 8: Konfigurimi i aftësive të TV Alexa
Zgjidhni "Shto një aftësi të re".
Vendosni Emrin e Aftësisë në 'Trigger TV' dhe Emrin e Thirrjes në fjalën (et) që dëshironi të përdorni për të aktivizuar aftësinë.
Kliko 'Next' për të vazhduar.
Kopjoni/ngjisni sa vijon në kutinë "Skema e synimit":
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "shuma", "type": "AMAZON. NUMBER"}], "qëllim": "GPIOControlIntent "}]}
Tjetra, klikoni "Shto llojin e slotit"
Futni TV_Function në fushën 'Enter Type'.
Futni vlerat e mëposhtme në fushën "Fut vlerat":
ndez
çaktivizo ndryshimin e hyrjes rritjen e volumit zvogëlimin e volumit heshtje unmute
Tjetra, Kopjoni/ngjitni sa vijon në kutinë "Shembuj të Thënieve":
GPIOControlIntent {status}
GPIOControlIntent {status} sipas {amount}
Kliko 'Next' për të vazhduar.
Zgjidhni 'HTTPS' si Lloji i Pikës Fundore të Shërbimit dhe zgjidhni një rajon. Shkruani URL -në e ngroh nga hapi 2 dhe klikoni 'Tjetër'. URL -ja duhet të jetë diçka si:
ed6ea04d.ngrok.io
Klikoni "Tjetër" për të vazhduar dhe shtypni "Ruaj".
Hapi 9: Lights Alexa Skill Setup
Mbyllni aftësinë e hapur dhe zgjidhni "Shto një Aftësi të Re".
Vendosni Emrin e Aftësisë në 'Lights Control' dhe Emrin e Thirrjes në fjalën (et) që dëshironi të përdorni për të aktivizuar aftësinë.
Kliko 'Next' për të vazhduar. Kopjoni/ngjitni sa vijon në kutinë "Skema e synimit":
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "qëllim": "LightsControlIntent"}]}
Tjetra, klikoni "Shto llojin e slotit".
Shkruani "LIGHTS_CONTROL" në fushën "Enter Type".
Futni vlerat e mëposhtme në fushën "Fut vlerat":
më
fikur
Tjetra, Kopjoni/ngjitni sa vijon në kutinë "Shembuj të Thënieve":
Kthesa e LightsControlIntent {status}
Kliko 'Next' për të vazhduar. Zgjidhni 'HTTPS' si Lloji i Pikës Fundore të Shërbimit dhe zgjidhni një rajon. Shkruani URL -në e ngrok nga hapi 2 dhe klikoni 'Tjetër'. URL -ja duhet të jetë diçka si:
ed6ea04d.ngrok.io
Klikoni "Tjetër" për të vazhduar dhe shtypni "Ruaj".
Hapi 10: Konfigurimi i Aftësisë së Fan Alexa
Mbyllni aftësinë e hapur dhe zgjidhni "Shto një Aftësi të Re".
Vendosni Emrin e Aftësisë në 'Kontrolli i Tifozëve' dhe Emrin e Thirrjes në fjalën (et) që dëshironi të përdorni për të aktivizuar aftësinë.
Kliko 'Next' për të vazhduar.
Kopjoni/ngjitni sa vijon në kutinë "Skema e synimit":
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Tjetra, klikoni "Shto llojin e slotit".
Shkruani "FAN_CONTROL" në fushën "Enter Type".
Futni vlerat e mëposhtme në fushën "Fut vlerat":
më
fikur
Tjetra, Kopjoni/ngjitni sa vijon në kutinë "Shembuj të Thënieve":
Kthesa FANControlIntent {status}
Kliko 'Next' për të vazhduar. Zgjidhni 'HTTPS' si Lloji i Pikës Fundore të Shërbimit dhe zgjidhni një rajon. Shkruani URL -në e ngrok nga hapi 2 dhe klikoni 'Tjetër'. URL -ja duhet të jetë diçka si:
ed6ea04d.ngrok.io
Klikoni "Tjetër" për të vazhduar dhe shtypni "Ruaj".
Hapi 11: Ndërtoni Ciruit
Lidhni qarkun siç tregohet në diagram. Kam përdorur një modul stafetë JBtek 8 Channel DC 5V për t'u lidhur me linjat dhe tokën AC 120v të shtëpive të mia.
Hapi 12: Komandat Alexa
Tani komandat e mëposhtme mund t'i thuhen Alexa për të kontrolluar dhomën tuaj të jetesës.
Recommended:
Alarm për dhomën e gjumit me drita dhe tinguj !: 6 hapa
Alarm për dhomën e gjumit me drita dhe tinguj!: Përshëndetje, sot do t'ju tregoj se si të bëni një alarm për derën e dhomës tuaj të gjumit me Arduino UNO
Dhoma e ndenjes për filmin me Shelly: 4 hapa
Salla e jetesës për filmin me Shelly: Përmbledhje ekzekutive e projektit Si të krijoni një automatizim shumë të thjeshtë duke përdorur rutinat e shtëpisë së Google për ta bërë dhomën time të jetesës të rehatshme për të parë një film
Automatizoni të gjithë dhomën tuaj me Google Home + Arduino, NodeMCU dhe Ubidots: 5 hapa
Automatizoni dhomën tuaj të tërë me Google Home + Arduino, NodeMCU dhe Ubidots: Përshëndetje të gjithëve, këtu unë do t'ju tregoj një projekt që bëra.'Sshtë gati për të kontrolluar dhe automatizuar dhomën tuaj me arduino dhe nodemcu me një platformë IoT që filloj të përdor muaj më parë dhe mendoj se është e mahnitshme kështu që këtu po ndaj me ju përvojën time. Me këtë
Muzikë e zgjuar në dhomën e gjumit dhe banjës me mjedër Pi - Integrimi i shumë dhomave, alarmit, kontrollit të butonave dhe automatizimit të shtëpisë: 7 hapa
Muzikë e zgjuar në dhomë gjumi dhe banjë me mjedër Pi - Integrimi i Multiroom, Alarm, Kontrollit të Butonit dhe Automatizimit të Shtëpisë: Sot ne duam t'ju japim dy shembuj se si mund të përdorni Raspberry Pi me softuerin tonë Max2Play për automatizimin e shtëpisë: në banjo dhe dhomë gjumi Me Të dy projektet janë të ngjashëm në atë që muzika me besnikëri të lartë nga burime të ndryshme mund të transmetohet përmes
Si ta automatizoni dhomën tuaj me Google Assistant dhe Arduino?: 7 hapa
Si ta automatizoni dhomën tuaj me Google Assistant dhe Arduino?: Përshëndetje Komunitet i udhëzueshëm, këtu jam me një projekt tjetër automatizimi, veçanërisht një sistem të kontrolluar nga zëri me Google Assistant, Arduino dhe disa platforma në internet. Unë isha një nga njerëzit që nuk e bëjnë mbështesin kontrollin e pajisjeve me zë, sepse