Orodha ya maudhui:

Dhibiti Sebule Na Alexa na Raspberry Pi: Hatua 12
Dhibiti Sebule Na Alexa na Raspberry Pi: Hatua 12

Video: Dhibiti Sebule Na Alexa na Raspberry Pi: Hatua 12

Video: Dhibiti Sebule Na Alexa na Raspberry Pi: Hatua 12
Video: Автоматический календарь-планировщик смен в Excel 2024, Novemba
Anonim
Dhibiti Sebule Na Alexa na Raspberry Pi
Dhibiti Sebule Na Alexa na Raspberry Pi

Dhibiti Runinga yako ya sebuleni, taa, na Shabiki na Alexa (Amazon Echo au Dot) na Raspberry Pi GPIO.

Hatua ya 1: Usanidi wa Awali

Nilitumia Raspberry Pi 2 na picha ya Raspbian Jessie iliyopakuliwa kutoka

Mara baada ya kuingia, ingiza amri zifuatazo kusanikisha vifurushi vinavyohitajika na maktaba za chatu:

Sudo apt-pata sasisho && sudo apt-pata sasisho -sudo apt-get kufunga python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc

Hatua ya 2: Sanidi Ngrok

Sanidi Ngrok
Sanidi Ngrok

Tembelea https://ngrok.com/download na upate toleo la hivi karibuni la ARM ya Linux kama zip na unzip ndani ya saraka ya nyumbani:

unzip /home/pi/ngrok-stable-linux-arm.zip

Fungua kituo kipya na weka amri ifuatayo:

sudo./ngrok http 4000

Fungua kituo kingine kipya na weka amri ifuatayo:

sudo./ngrok http 4500

Fungua terminal mpya ya tatu na weka amri ifuatayo:

sudo./ngrok http 5000

Hatua ya 3: Hati ya Python ya Udhibiti wa Kubadilisha Nuru

Fungua kikao kipya cha wastaafu na unda faili mpya ya chatu inayoitwa light_control.py:

nano light_control.py

Nakili / weka nambari ifuatayo kwenye faili mpya:

kutoka kwa kuingiza chupa Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as 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', ramani = {'status': 'status'}) def light_control (status): jaribu: pinNum = 27 isipokuwa Isipokuwa kama e: taarifa ya kurudi (Nambari ya pini sio halali. ') GPIO.setup (pinNum, GPIO. OUT) ikiwa hali katika [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) ikiwa hali iko katika' 'off', ' low ']: GPIO.output (pinNum, GPIO. HIGH) taarifa ya kurudi (' Kugeuza {} Taa za Sebuleni '. format (hadhi)) ikiwa _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', bandari = bandari)

Hifadhi na funga faili.

Anza seva ya chupa na:

sudo chatu light_control.py

Acha kukimbia ngrok na light_control.py

Hatua ya 4: Hati ya Python ya Udhibiti wa Mashabiki

Fungua kikao kipya cha wastaafu na unda faili mpya ya chatu inayoitwa fan_control.py:

nano fan_control.py

Nakili / weka nambari ifuatayo kwenye faili mpya:

kutoka kwa chupa ya Flask

kutoka kwa uingizaji wa flask_ask Uliza, taarifa, ubadilishaji-ingiza RPi. GPIO kama kuagiza kuingiza magogo kwa GPIO 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): jaribu: pinNum = 22 isipokuwa Isipokuwa kama e: taarifa ya kurudi ('Nambari ya siri) sio halali. ') GPIO.setup (pinNum, GPIO. OUT) ikiwa hali katika [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) ikiwa hali iko katika' 'off', 'low'] GPIO.output (pinNum, GPIO. HIGH) taarifa ya kurudi, bandari = bandari)

Hifadhi na funga faili.

Anza seva ya chupa na:

sudo python fan_control.py

Acha ngrok, light_control.py, na fan_control.py inayoendesha

Hatua ya 5: Kuweka na kusanidi kifurushi cha LIRC

Ili kudhibiti TV lazima usanidi pini kwenye Raspberry Pi ili kutoa ishara za infrared (IR) kwa TV yako maalum. Fungua kituo na weka amri ifuatayo kusanikisha kifurushi cha LIRC ambacho huwasha ishara za infrared za vidhibiti vingi vya mbali.

sudo apt-kupata kufunga lirc

Ifuatayo, unahitaji kuwezesha na kusanidi moduli ya kernel ya lirc_rpi. Ili kufanya hivyo, fungua moduli katika mhariri wa Nano

Sudo nano / nk / moduli

Ongeza mistari hapa chini kwenye faili (Hakikisha kwamba parameter ya gpio_out_pin inaelekeza kwenye pini inayodhibiti IR LED):

lirc_devlirc_rpi gpio_out_pin = 17

Ifuatayo, fungua faili ya hardware.conf katika Nano kama hapo awali na Sudo:

Sudo nano /etc/lirc/hardware.conf

Ongeza usanidi ufuatao kwenye faili:

LIRCD_ARGS = "- uinput" LOAD_MODULES = kweli

DEREVA = "chaguo-msingi"

Kifaa = "/ dev / lirc0"

MODULE = "lirc_rpi"

LIRCD_CONF = ""

LIRCMD_CONF = ""

Sasa, fungua tena Raspberry Pi:

Sudo reboot

Hatua ya 6: Hati ya Python ya Udhibiti wa Runinga

Fungua kikao kipya cha wastaafu na unda faili mpya ya chatu iitwayo ir_control.py:

nano ir_control.py

Nenda kwa https://lirc-remotes.sourceforge.net/remotes-table …….

Pata kijijini ambacho kinaambatana na TV yako. Katika kesi yangu nina Sanyo TV ambayo inafanya kazi na sanyo-tv01 faili ya usanidi. Mara tu unapopata faili inayounga mkono TV yako ifungue na uangalie kupitia chaguo za amri.

Nakili / weka nambari ifuatayo kwenye faili mpya na ubadilishe sanyo-tv01 na jina la faili linalofanya kazi na TV yako. Pia hakikisha kwamba amri za tv zinaungwa mkono na faili yako ya usanidi wa TV; Itabidi ubadilishe KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, na KEY_MUTE amri za kufanya kazi kwa usahihi na faili ya usanidi wa TV yako:

kutoka kwa kuingiza chupa Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" " ['washa']: mfumo wa os. ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") taarifa ya kurudi ('Kuwasha TV') hali ya elif katika ['zima "): mfumo wa os. KEY_POWER ") taarifa ya kurudi ('Kuzima TV') hali ya Elif katika taarifa ('Kubadilisha pembejeo kwenye TV') hali ya elif katika ['ongeza sauti']: mfumo wa os. ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os. mfumo ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os. "irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") mfumo wa mfumo ("tuma tena SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") taarifa ya kurudisha ('Kuongeza Sauti kwenye TV') hali ya elif katika ['punguza ujazo']: mfumo wa os (mfumo wa" Ssend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN ") mfumo. "mfumo" taarifa ya kurudi ']: mfumo wa os. kukimbia (mwenyeji = '0.0.0.0', bandari = bandari)

Hifadhi na funga faili.

Anza seva ya chupa na:

Sudo chatu ir_control.py

Acha windows zote tatu za ngrok, light_control.py, fan_control.py, na ir_control.py inayoendesha

Hatua ya 7: Ingia kwenye Akaunti ya AWS

Ingia kwenye Akaunti ya AWS
Ingia kwenye Akaunti ya AWS

Kwanza tengeneza au ingia kwenye Akaunti yako ya Msanidi Programu wa AWS na ufungue orodha yako ya Ujuzi wa Alexa.

Hatua ya 8: Usanidi wa Ujuzi wa Televisheni ya Alexa

Usanidi wa Ujuzi wa Televisheni ya Alexa
Usanidi wa Ujuzi wa Televisheni ya Alexa

Chagua "Ongeza Ujuzi Mpya".

Weka Jina la Ujuzi kuwa 'Trigger TV' na Jina la Kuomba kwa neno (maneno) unayotaka kutumia kuamsha ustadi.

Bonyeza 'Next' kuendelea.

Nakili / weka zifuatazo kwenye sanduku la 'Nia ya Nia':

"inafaa": [{"jina": "hadhi", "aina": "TV_Function"}, {"jina": "kiasi", "aina": "AMAZON. NUMBER"}], "dhamira": "GPIOControlIntent "}]}

Ifuatayo, bonyeza 'Ongeza Aina ya Yanayopangwa'

Ingiza TV_Function kwenye uwanja wa 'Ingiza Aina'.

Ingiza maadili yafuatayo kwenye uwanja wa 'Ingiza Maadili':

washa

zima ubadilishaji wa pembejeo ongeza sauti punguza sauti nyamazisha sauti

Ifuatayo, Nakili / weka zifuatazo kwenye sanduku la 'Mfano wa Matamshi':

GPIOControlIntent {status}

GPIOControlIntent {status} kwa {kiasi}

Bonyeza 'Next' kuendelea.

Chagua 'HTTPS' kama Aina ya Mwisho wa Huduma na uchague mkoa Ingiza ngrok URL kutoka hatua ya 2 na bonyeza 'Next'. URL inapaswa kuwa kama:

ed6ea04d.ngrok.io

Bonyeza 'Next' ili kuendelea na bonyeza 'Hifadhi'.

Hatua ya 9: Usanidi wa Ujuzi wa Taa za Alexa

Taa Usanidi wa Ujuzi wa Alexa
Taa Usanidi wa Ujuzi wa Alexa

Funga ustadi wazi na uchague "Ongeza Ujuzi Mpya".

Weka Jina la Ujuzi kuwa 'Udhibiti wa Taa' na Jina la Kuomba kwa neno (maneno) unayotaka kutumia kuamsha ustadi.

Bonyeza 'Next' kuendelea. Nakili / weka zifuatazo kwenye sanduku la 'Nia ya Nia':

{

"dhamira": [{"nafasi": [{"jina": "hadhi", "aina": "LIGHTS_CONTROL"}], "dhamira": "LightsControlIntent"}]}

Ifuatayo, bonyeza 'Ongeza Aina ya Yanayopangwa'.

Ingiza "LIGHTS_CONTROL" katika sehemu ya 'Ingiza Aina'.

Ingiza maadili yafuatayo kwenye uwanja wa 'Ingiza Maadili':

kuwasha

imezimwa

Ifuatayo, Nakili / weka zifuatazo kwenye sanduku la 'Mfano wa Matamshi':

Taa za Udhibiti wa Taa {status}

Bonyeza 'Next' kuendelea. Chagua 'HTTPS' kama Aina ya Mwisho wa Huduma na uchague mkoa. Ingiza URL ya ngrok kutoka hatua ya 2 na bonyeza 'Next'. URL inapaswa kuwa kama:

ed6ea04d.ngrok.io

Bonyeza 'Next' ili kuendelea na bonyeza 'Hifadhi'.

Hatua ya 10: Usanidi wa Ujuzi wa Shabiki wa Alexa

Usanidi wa Ustadi wa Shabiki wa Alexa
Usanidi wa Ustadi wa Shabiki wa Alexa

Funga ustadi wazi na uchague "Ongeza Ujuzi Mpya".

Weka Jina la Ujuzi kwa 'Udhibiti wa Shabiki' na Jina la Kuomba kwa neno (maneno) unayotaka kutumia kuamsha ustadi.

Bonyeza 'Next' kuendelea.

Nakili / weka zifuatazo kwenye sanduku la 'Nia ya Nia':

{

"dhamira": [{"nafasi": [{"jina": "hadhi", "aina": "FAN_CONTROL"}], "dhamira": "FANControlIntent"}]}

Ifuatayo, bonyeza 'Ongeza Aina ya Yanayopangwa'.

Ingiza "FAN_CONTROL" katika sehemu ya 'Ingiza Aina'.

Ingiza maadili yafuatayo kwenye uwanja wa 'Ingiza Maadili':

kuwasha

imezimwa

Ifuatayo, Nakili / weka zifuatazo kwenye sanduku la 'Mfano wa Matamshi':

Zamu ya FANControlIntent {status}

Bonyeza 'Next' kuendelea. Chagua 'HTTPS' kama Aina ya Kituo cha Huduma na chagua mkoa. Ingiza URL ya ngrok kutoka hatua ya 2 na bonyeza 'Next'. URL inapaswa kuwa kama:

ed6ea04d.ngrok.io

Bonyeza 'Next' ili kuendelea na bonyeza 'Hifadhi'.

Hatua ya 11: Jenga Ciruit

Jenga Ciruit
Jenga Ciruit

Unganisha mzunguko kama inavyoonyeshwa kwenye mchoro. Nilitumia Moduli ya Kupitisha JBtek 8 Channel DC 5V kuungana na nyumba zangu AC 120v laini na ardhi.

Hatua ya 12: Amri za Alexa

Sasa amri zifuatazo zinaweza kuzungumzwa na Alexa kukudhibiti sebule.

Ilipendekeza: